42#define MAX22196_FRAME_SIZE 2
44#define MAX22196_CHANNELS 8
45#define MAX22194_CHANNELS 4
47#define MAX22196_CHN_CNT_RESET 0
49#define MAX22196_DI_STATE_REG 0x00
50#define MAX22196_FAULT1_REG 0x01
51#define MAX22196_F1MASK_REG 0x02
52#define MAX22196_CFG_REG(x) (0x03 + (x))
53#define MAX22196_GLOBALCFG_REG 0x0B
54#define MAX22196_LED_REG 0x0C
55#define MAX22196_FAULT2_REG 0x0D
56#define MAX22196_F2MASK_REG 0x0E
57#define MAX22196_START_STOP_REG 0x0F
58#define MAX22196_CNT_LSB_REG(x) (0x10 + 2 * (x))
59#define MAX22196_CNT_MSB_REG(x) (0x11 + 2 * (x))
61#define MAX22196_ADDR_MASK NO_OS_GENMASK(7, 6)
62#define MAX22196_REG_ADDR_MASK NO_OS_GENMASK(5, 1)
63#define MAX22196_RW_MASK NO_OS_BIT(0)
65#define MAX22196_DI_STATE_MASK(x) NO_OS_BIT(x)
66#define MAX22196_HITHR_MASK NO_OS_BIT(7)
67#define MAX22196_SOURCE_MASK NO_OS_BIT(6)
68#define MAX22196_CURR_MASK NO_OS_GENMASK(5, 4)
69#define MAX22196_FLTEN_MASK NO_OS_BIT(3)
70#define MAX22196_DELAY_MASK NO_OS_GENMASK(2, 0)
71#define MAX22196_CNT_MASK(x) NO_OS_BIT(x)
72#define MAX22196_CFG_MASK (NO_OS_BIT(7) | NO_OS_GENMASK(5, 4))
73#define MAX22196_LSB_MASK NO_OS_GENMASK(7, 0)
74#define MAX22196_MSB_MASK NO_OS_GENMASK(15, 8)
75#define MAX22196_CNT_BYTE_MASK NO_OS_GENMASK(7, 0)
77#define MAX22196_FAULT_MASK(x) NO_OS_BIT(x)
78#define MAX22196_GLOBAL_MASK(x) NO_OS_BIT(x)
79#define MAX22196_FAULT2_MASK NO_OS_GENMASK(4, 0)
81#define MAX22196_FILTER_CLRFLT_MASK NO_OS_BIT(3)
max22196_global_cfg
Definition max22196.h:102
@ MAX22196_GLOBAL_LED9
Definition max22196.h:104
@ MAX22196_GLOBAL_LEDINT
Definition max22196.h:105
@ MAX22196_GLOBAL_FSPICLR
Definition max22196.h:103
@ MAX22196_GLOBAL_GPO
Definition max22196.h:106
int max22196_set_chan_cnt(struct max22196_desc *, uint32_t, uint16_t)
MAX22196 channel counter set function
Definition max22196.c:413
int max22196_filter_get(struct max22196_desc *, uint32_t, uint32_t *, uint32_t *, enum max22196_delay *)
MAX22196 filter get function
Definition max22196.c:262
int max22196_fault_mask_get(struct max22196_desc *, enum max22196_fault_mask, bool *)
Get fault mask bits from the fault mask registers.
Definition max22196.c:346
int max22196_reg_read(struct max22196_desc *, uint32_t, uint32_t *)
MAX22196 register read function.
Definition max22196.c:121
max22196_chip_id
Definition max22196.h:83
@ ID_MAX22194
Definition max22196.h:84
@ ID_MAX22196
Definition max22196.h:85
int max22196_reg_write(struct max22196_desc *, uint32_t, uint32_t)
MAX22196 register write function.
Definition max22196.c:93
int max22196_chan_cfg(struct max22196_desc *, uint32_t, uint32_t, enum max22196_curr)
MAX22196 channel configuration function
Definition max22196.c:208
int max22196_fault_mask_set(struct max22196_desc *, enum max22196_fault_mask, bool)
Set fault mask bits in the fault mask registers.
Definition max22196.c:295
int max22196_get_chan_cnt(struct max22196_desc *, uint32_t, uint16_t *)
MAX22196 channel counter get function.
Definition max22196.c:460
#define MAX22196_FRAME_SIZE
Definition max22196.h:42
max22196_curr
Definition max22196.h:125
@ MAX22196_1X_CURRENT
Definition max22196.h:127
@ MAX22196_3X_CURRENT
Definition max22196.h:128
@ MAX22196_TTL_OP_OFF
Definition max22196.h:129
@ MAX22196_HTL_MODE
Definition max22196.h:126
int max22196_set_mode(struct max22196_desc *, uint32_t, enum max22196_mode)
MAX22196 function that helps setting the mode of the device.
Definition max22196.c:189
int max22196_reg_update(struct max22196_desc *, uint32_t, uint32_t, uint32_t)
MAX22196 register update function
Definition max22196.c:166
max22196_fault_mask
Definition max22196.h:88
@ MAX22196_FAULT2_RFDIS
Definition max22196.h:95
@ MAX22196_FAULT2_VAUV
Definition max22196.h:99
@ MAX22196_FAULT1_OTSHDN1
Definition max22196.h:93
@ MAX22196_FAULT2_OTSHDN2
Definition max22196.h:97
@ MAX22196_FAULT2_RFDIO
Definition max22196.h:96
@ MAX22196_FAULT1_TEMPALM
Definition max22196.h:92
@ MAX22196_FAULT2_SPI8CLK
Definition max22196.h:98
@ MAX22196_FAULT1_FAULT2
Definition max22196.h:94
@ MAX22196_FAULT1_VMLOW
Definition max22196.h:90
@ MAX22196_GLOBAL_REFDISHTCFG
Definition max22196.h:89
@ MAX22196_FAULT1_V24UV
Definition max22196.h:91
max22196_delay
Definition max22196.h:114
@ MAX22196_DELAY_100US
Definition max22196.h:116
@ MAX22196_DELAY_3200US
Definition max22196.h:120
@ MAX22196_DELAY_50US
Definition max22196.h:115
@ MAX22196_DELAY_128000US
Definition max22196.h:121
@ MAX22196_DELAY_800US
Definition max22196.h:118
@ MAX22196_DELAY_400US
Definition max22196.h:117
@ MAX22196_DELAY_1600US
Definition max22196.h:119
@ MAX22196_DELAY_20MS
Definition max22196.h:122
int max22196_init(struct max22196_desc **, struct max22196_init_param *)
Initialize and configure the MAX22196 device.
Definition max22196.c:501
int max22196_filter_set(struct max22196_desc *, uint32_t, uint32_t, uint32_t, enum max22196_delay)
MAX22196 filter set function
Definition max22196.c:230
int max22196_remove(struct max22196_desc *)
Free the resources allocated during init.
Definition max22196.c:557
max22196_mode
Definition max22196.h:109
@ MAX22196_SOURCE_MODE
Definition max22196.h:111
@ MAX22196_SINK_MODE
Definition max22196.h:110
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Definition max22196.h:140
uint8_t buff[MAX22196_FRAME_SIZE+1]
Definition max22196.h:144
uint32_t chip_address
Definition max22196.h:141
struct no_os_gpio_desc * crc_desc
Definition max22196.h:143
bool crc_en
Definition max22196.h:146
struct no_os_spi_desc * comm_desc
Definition max22196.h:142
uint8_t fault2en
Definition max22196.h:145
enum max22196_chip_id chip_id
Definition max22196.h:147
uint8_t max_chn_nb
Definition max22196.h:148
Definition max22196.h:132
enum max22196_chip_id chip_id
Definition max22196.h:137
uint32_t chip_address
Definition max22196.h:133
bool crc_en
Definition max22196.h:136
struct no_os_spi_init_param * comm_param
Definition max22196.h:134
struct no_os_gpio_init_param * crc_param
Definition max22196.h:135
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128