42#define MAX22200_FRAME_SIZE 4
44#define MAX22200_CHANNELS 8
45#define MAX22200_CHANNELS_CONFIG 4
46#define MAX22200_MAX_CHN_IDX 7
47#define MAX22200_HIT_MAX_VAL 0x7F
48#define MAX22200_HIT_NO_TIME 0x00
50#define MAX22200_R1B NO_OS_BIT(0)
52#define MAX22200_STATUS_REG 0x00
53#define MAX22200_CFG_CH(x) (0x01 + (0x01 * (x)))
54#define MAX22200_FAULT_REG 0x09
55#define MAX22200_CFG_DPM_REG 0x0A
58#define MAX22200_RW_MASK NO_OS_BIT(7)
59#define MAX22200_ADDR_MASK NO_OS_GENMASK(6, 0)
62#define MAX22200_ONCH_MASK(x) NO_OS_BIT((x) + 24)
63#define MAX22200_STATUS_ONCH_MASK NO_OS_GENMASK(31, 24)
64#define MAX22200_STATUS_FREQ_MASK NO_OS_BIT(16)
65#define MAX22200_STATUS_FAULT_MASK(x) NO_OS_BIT(x)
66#define MAX22200_STATUS_MODE_MASK NO_OS_GENMASK(15, 8)
67#define MAX22200_CH_MODE_MASK(x) NO_OS_GENMASK(8 + (2 * (x)), 9 + (2 * (x)))
68#define MAX22200_STATUS_FLAG_MASK NO_OS_GENMASK(7, 0)
69#define MAX22200_ACTIVE_MASK NO_OS_BIT(0)
72#define MAX22200_HFS_MASK NO_OS_BIT(31)
73#define MAX22200_HOLD_MASK NO_OS_GENMASK(30, 24)
74#define MAX22200_TRGNSP_IO_MASK NO_OS_BIT(23)
75#define MAX22200_HIT_MASK NO_OS_GENMASK(22, 16)
76#define MAX22200_HIT_T_MASK NO_OS_GENMASK(15, 8)
77#define MAX22200_VDRNCDR_MASK NO_OS_BIT(7)
78#define MAX22200_HSNLS_MASK NO_OS_BIT(6)
79#define MAX22200_FREQ_CFG_MASK NO_OS_GENMASK(5, 4)
80#define MAX22200_CH_ENABLE_MASK(x) NO_OS_BIT(x)
83#define MAX22200_DPM_ISTART_MASK NO_OS_GENMASK(14, 8)
84#define MAX22200_DPM_TDEB_MASK NO_OS_GENMASK(7, 4)
85#define MAX22200_DPM_IPTH_MASK NO_OS_GENMASK(3, 0)
int max22200_get_chop_freq(struct max22200_desc *, enum max22200_chopping_freq *)
Read chopping frequency.
Definition max22200.c:481
int max22200_get_ch_scale(struct max22200_desc *, uint32_t, enum max22200_scale *)
Read channel's scale.
Definition max22200.c:555
#define MAX22200_CHANNELS_CONFIG
Definition max22200.h:45
int max22200_init(struct max22200_desc **, struct max22200_init_param *)
MAX22200 descriptor initialization function.
Definition max22200.c:724
int max22200_set_trig_state(struct max22200_desc *, bool)
Set external trigger's state of the MAX22200.
Definition max22200.c:164
int max22200_set_ch_scale(struct max22200_desc *, uint32_t, enum max22200_scale)
Set channel's scale to fullscale or half fullscale.
Definition max22200.c:280
int max22200_reg_read(struct max22200_desc *, uint32_t, uint32_t *)
Read data from desired register for MAX22200.
Definition max22200.c:48
int max22200_set_chop_freq(struct max22200_desc *, enum max22200_chopping_freq)
Set chopping frequency value.
Definition max22200.c:214
int max22200_get_ch_freq(struct max22200_desc *, uint32_t, enum max22200_ch_freq *)
Read channel's frequency.
Definition max22200.c:644
int max22200_set_cfg_dpm(struct max22200_desc *, uint8_t, uint8_t)
Set configuration DPM.
Definition max22200.c:409
int max22200_get_cfg_dpm(struct max22200_desc *, uint8_t *, uint8_t *)
Read configuration for the detection of the plunger movement of the device.
Definition max22200.c:700
int max22200_get_ch_state(struct max22200_desc *, uint32_t, bool *)
Read the state of a channel.
Definition max22200.c:456
int max22200_set_ch_freq(struct max22200_desc *, uint32_t, enum max22200_ch_freq)
Set channel's frequency.
Definition max22200.c:372
int max22200_remove(struct max22200_desc *)
Deallocates all the resources used at initialization.
Definition max22200.c:866
max22200_ch_freq
Definition max22200.h:128
@ MAX22200_FREQMAIN_DIV_4
Definition max22200.h:129
@ MAX22200_FREQMAIN
Definition max22200.h:132
@ MAX22200_FREQMAIN_DIV_3
Definition max22200.h:130
@ MAX22200_FREQMAIN_DIV_2
Definition max22200.h:131
int max22200_get_ch_hold(struct max22200_desc *, uint32_t, uint8_t *)
Read channel HOLD configuration.
Definition max22200.c:530
int max22200_fault_mask_set(struct max22200_desc *, enum max22200_fault_mask, bool)
Set fault mask bits in the status register.
Definition max22200.c:197
int max22200_get_ch_mode(struct max22200_desc *, uint32_t, enum max22200_ch_drive *, enum max22200_ch_side *, enum max22200_ch_op_mode *)
Read channel's mode configuration.
Definition max22200.c:609
int max22200_set_ch_trig(struct max22200_desc *, uint32_t, enum max22200_trig)
Set channel's trigger to be either SPI or external trigger.
Definition max22200.c:302
int max22200_set_ch_enable(struct max22200_desc *, uint32_t, enum max22200_ch_enable, bool)
Set channel's enables for different checks, detection and functions.
Definition max22200.c:391
max22200_ch_op_mode
Definition max22200.h:102
@ MAX22200_PARALLEL_MODE
Definition max22200.h:104
@ MAX22200_INDEPENDENT_MODE
Definition max22200.h:103
@ MAX22200_HALF_BRIDGE_MODE
Definition max22200.h:105
int max22200_get_ch_trig(struct max22200_desc *, uint32_t, enum max22200_trig *)
Read channel's selected trigger for specific channel.
Definition max22200.c:581
max22200_ch_enable
Definition max22200.h:135
@ MAX22200_DPM_ENABLE
Definition max22200.h:137
@ MAX22200_OL_ENABLE
Definition max22200.h:138
@ MAX22200_SRC
Definition max22200.h:139
@ MAX22200_HHF_ENABLE
Definition max22200.h:136
max22200_trig
Definition max22200.h:113
@ MAX22200_ONCH_SPI
Definition max22200.h:114
@ MAX22200_TRIG
Definition max22200.h:115
int max22200_get_ch_hit(struct max22200_desc *, uint32_t, uint8_t *, uint8_t *)
Read channel HIT configuration.
Definition max22200.c:504
int max22200_set_ch_hit(struct max22200_desc *, uint32_t, uint8_t, uint8_t)
Set channel HIT time and HIT current.
Definition max22200.c:231
max22200_scale
Definition max22200.h:108
@ MAX22200_FULLSCALE
Definition max22200.h:109
@ MAX22200_HALF_FULL_SCALE
Definition max22200.h:110
#define MAX22200_FRAME_SIZE
Definition max22200.h:42
int max22200_set_ch_state(struct max22200_desc *, uint32_t, bool)
Set channel state for specific channel.
Definition max22200.c:180
max22200_chopping_freq
Definition max22200.h:97
@ MAX22200_FREQ_80KHZ
Definition max22200.h:99
@ MAX22200_FREQ_100KHZ
Definition max22200.h:98
int max22200_set_ch_mode(struct max22200_desc *, uint32_t, enum max22200_ch_drive, enum max22200_ch_side, enum max22200_ch_op_mode)
Set chanmel operation mode, high-side/low-side and drive.
Definition max22200.c:324
int max22200_set_ch_hold(struct max22200_desc *, uint32_t, uint8_t)
Set channel hold current.
Definition max22200.c:260
int max22200_fault_mask_get(struct max22200_desc *, enum max22200_fault_mask, bool *)
Fault mask bit get function.
Definition max22200.c:433
int max22200_reg_update(struct max22200_desc *, uint32_t, uint32_t, uint32_t)
Update data in the desired register.
Definition max22200.c:142
max22200_ch_drive
Definition max22200.h:118
@ MAX22200_VOLTAGE_DRIVE
Definition max22200.h:120
@ MAX22200_CURRENT_DRIVE
Definition max22200.h:119
max22200_ch_side
Definition max22200.h:123
@ MAX22200_HIGH_SIDE
Definition max22200.h:125
@ MAX22200_LOW_SIDE
Definition max22200.h:124
int max22200_reg_write(struct max22200_desc *, uint32_t, uint32_t)
Write data to desired register for MAX22200.
Definition max22200.c:95
int max22200_get_ch_enable(struct max22200_desc *, uint32_t, enum max22200_ch_enable, bool *)
Read channel's enable bits state.
Definition max22200.c:670
max22200_fault_mask
Definition max22200.h:87
@ MAX22200_M_OLF
Definition max22200.h:92
@ MAX22200_M_HHF
Definition max22200.h:91
@ MAX22200_M_OCP
Definition max22200.h:93
@ MAX22200_M_OVT
Definition max22200.h:94
@ MAX22200_M_COMF
Definition max22200.h:89
@ MAX22200_M_DPM
Definition max22200.h:90
@ MAX22200_M_UVM
Definition max22200.h:88
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Definition max22200.h:151
struct no_os_gpio_desc * cmd_desc
Definition max22200.h:155
struct no_os_gpio_desc * trig_desc
Definition max22200.h:156
uint8_t buff[MAX22200_FRAME_SIZE]
Definition max22200.h:157
enum max22200_ch_drive chan_drive
Definition max22200.h:160
struct no_os_gpio_desc * enable_desc
Definition max22200.h:154
struct no_os_gpio_desc * fault_desc
Definition max22200.h:153
enum max22200_ch_op_mode ch_config[MAX22200_CHANNELS_CONFIG]
Definition max22200.h:158
enum max22200_ch_side chan_side
Definition max22200.h:159
struct no_os_spi_desc * comm_desc
Definition max22200.h:152
Definition max22200.h:142
struct no_os_gpio_init_param * trig_param
Definition max22200.h:147
enum max22200_ch_op_mode ch_config[MAX22200_CHANNELS_CONFIG]
Definition max22200.h:148
struct no_os_gpio_init_param * fault_param
Definition max22200.h:144
struct no_os_spi_init_param * comm_param
Definition max22200.h:143
struct no_os_gpio_init_param * enable_param
Definition max22200.h:145
struct no_os_gpio_init_param * cmd_param
Definition max22200.h:146
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