41#define MAX22915_MAX_CHANNELS 8
42#define MAX22915_ADDR_MASK NO_OS_GENMASK(5, 1)
43#define MAX22915_RW_MASK NO_OS_BIT(0)
44#define MAX22915_CHIP_ADDR_MASK NO_OS_GENMASK(7, 6)
46#define MAX22915_REG_SET_OUTPUT 0x00
47#define MAX22915_REG_SET_FLED 0x01
48#define MAX22915_REG_SET_SLED 0x02
49#define MAX22915_REG_INTERRUPT 0x03
50#define MAX22915_REG_OVL_FLT 0x04
51#define MAX22915_REG_CL_FLT 0x05
52#define MAX22915_REG_OWOFF_FLT 0x06
53#define MAX22915_REG_OWON_FLT 0x07
54#define MAX22915_REG_SHTVDD_FLT 0x08
55#define MAX22915_REG_GLOBAL_ERR 0x09
56#define MAX22915_REG_OWOFF_ENABLE 0x0A
57#define MAX22915_REG_OWON_ENABLE 0x0B
58#define MAX22915_REG_SHTVDD_ENABLE 0x0C
59#define MAX22915_REG_CONFIG1 0x0D
60#define MAX22915_REG_CONFIG2 0x0E
61#define MAX22915_REG_MASK 0x0F
62#define MAX22915_REG_CONFIG3 0x10
63#define MAX22915_REG_THERM_WARN_THR 0x11
64#define MAX22915_REG_CURR_MEAS_ENABLE 0x12
65#define MAX22915_REG_ADC_CONFIG1 0x13
66#define MAX22915_REG_ADC_CONFIG2 0x14
67#define MAX22915_REG_ADC_CONFIG3 0x15
68#define MAX22915_REG_ADC_DATA 0x16
69#define MAX22915_REG_OWON_FILTER 0x17
71#define MAX22915_CH_MASK(channel) NO_OS_BIT(channel)
72#define MAX22915_SLED_SET_MASK NO_OS_BIT(1)
73#define MAX22915_FLED_SET_MASK NO_OS_BIT(0)
74#define MAX22915_CURR_AVG_MASK NO_OS_GENMASK(6, 4)
75#define MAX22915_CURR_SINGLE_MASK NO_OS_BIT(3)
76#define MAX22915_CURR_CONT_MASK NO_OS_BIT(2)
77#define MAX22915_TEMP_AVG_MASK NO_OS_GENMASK(6, 4)
78#define MAX22915_THERM_WARN_EN_MASK NO_OS_BIT(3)
79#define MAX22915_TEMP_CONT_MASK NO_OS_BIT(2)
80#define MAX22915_SPI_FRAME_SIZE 2
struct ad7616_init_param init_param
Definition ad7616_sdz.c:106
int max22915_reg_write(struct max22915_desc *desc, uint8_t reg_addr, uint8_t reg_data)
Write register data to MAX22915.
Definition max22915.c:144
int max22915_reg_read(struct max22915_desc *desc, uint8_t reg_addr, uint8_t *reg_data)
Read register data from MAX22915.
Definition max22915.c:96
#define MAX22915_SPI_FRAME_SIZE
Definition max22915.h:80
int max22915_set_temperature_config(struct max22915_desc *dev, struct max22915_temp_config *config)
Set the temperature measurement configuration.
Definition max22915.c:339
max22915_led_state
Definition max22915.h:87
@ LED_ON
Definition max22915.h:88
@ LED_OFF
Definition max22915.h:89
#define MAX22915_MAX_CHANNELS
Definition max22915.h:41
int max22915_reg_write_mask(struct max22915_desc *desc, uint8_t reg_addr, uint8_t mask, uint8_t reg_data)
Write register data to MAX22915 with mask.
Definition max22915.c:178
int max22915_set_shvdd_config(struct max22915_desc *dev, uint8_t channel, bool shtvdd_enable)
Set the short to VDD detection configuration for a channel.
Definition max22915.c:287
int max22915_set_current_config(struct max22915_desc *dev, struct max22915_current_config *config)
Set the current measurement configuration.
Definition max22915.c:314
int max22915_set_owon_config(struct max22915_desc *dev, uint8_t channel, bool owon_enable)
Set the open-wire on detection configuration for a channel.
Definition max22915.c:231
int max22915_set_owoff_config(struct max22915_desc *dev, uint8_t channel, bool owoff_enable)
Set the open-wire off detection configuration for a channel.
Definition max22915.c:259
int max22915_init(struct max22915_desc **desc, struct max22915_init_param *init_param)
Initialize and configure the MAX22915 device.
Definition max22915.c:364
int max22915_set_sw_state(struct max22915_desc *dev, uint8_t channel, enum max22915_sw_state state)
Set the switch state of a channel.
Definition max22915.c:203
max22915_sw_state
Definition max22915.h:82
@ SWITCH_CLOSE
Definition max22915.h:84
@ SWITCH_OPEN
Definition max22915.h:83
int max22915_remove(struct max22915_desc *desc)
Remove resources allocated for MAX22915.
Definition max22915.c:448
Header file of SPI Interface.
Header file of utility functions.
bool curr_one_shot_en
Definition max22915.h:94
bool curr_cont
Definition max22915.h:95
uint8_t curr_average
Definition max22915.h:93
Definition max22915.h:109
enum max22915_sw_state sw_state[MAX22915_MAX_CHANNELS]
Definition max22915.h:113
bool shtvdd_enable[MAX22915_MAX_CHANNELS]
Definition max22915.h:114
bool crc_en
Definition max22915.h:112
struct max22915_ow_config ow_config[MAX22915_MAX_CHANNELS]
Definition max22915.h:115
uint8_t buff[MAX22915_SPI_FRAME_SIZE+1]
Definition max22915.h:116
struct no_os_spi_desc * spi_desc
Definition max22915.h:110
uint8_t chip_address
Definition max22915.h:111
Definition max22915.h:119
uint8_t chip_address
Definition max22915.h:121
enum max22915_sw_state sw_state[MAX22915_MAX_CHANNELS]
Definition max22915.h:122
struct max22915_temp_config temp_config
Definition max22915.h:126
struct max22915_ow_config ow_config[MAX22915_MAX_CHANNELS]
Definition max22915.h:123
struct no_os_spi_init_param * spi_init
Definition max22915.h:120
struct max22915_current_config curr_config
Definition max22915.h:125
bool crc_en
Definition max22915.h:127
bool shtvdd_enable[MAX22915_MAX_CHANNELS]
Definition max22915.h:124
Definition max22915.h:104
bool owon_enable
Definition max22915.h:106
bool owoff_enable
Definition max22915.h:105
bool temp_cont
Definition max22915.h:101
bool therm_warn_en
Definition max22915.h:100
uint8_t temp_average
Definition max22915.h:99
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128