Go to the documentation of this file.
60 #define AD7124_MAX_SETUPS 8
62 #define AD7124_MAX_CHANNELS 16
65 #define AD7124_4_STD_ID 0x04
67 #define AD7124_4_B_GRADE_ID 0x06
69 #define AD7124_4_NEW_ID 0x07
72 #define AD7124_8_STD_ID 0x14
74 #define AD7124_8_B_W_GRADE_ID 0x16
76 #define AD7124_8_NEW_ID 0x17
79 #define AD7124_COMM_REG 0x00
80 #define AD7124_STATUS_REG 0x00
81 #define AD7124_ADC_CTRL_REG 0x01
82 #define AD7124_DATA_REG 0x02
83 #define AD7124_IO_CTRL1_REG 0x03
84 #define AD7124_IO_CTRL2_REG 0x04
85 #define AD7124_ID_REG 0x05
86 #define AD7124_ERR_REG 0x06
87 #define AD7124_ERREN_REG 0x07
88 #define AD7124_CH0_MAP_REG 0x09
89 #define AD7124_CH1_MAP_REG 0x0A
90 #define AD7124_CH2_MAP_REG 0x0B
91 #define AD7124_CH3_MAP_REG 0x0C
92 #define AD7124_CH4_MAP_REG 0x0D
93 #define AD7124_CH5_MAP_REG 0x0E
94 #define AD7124_CH6_MAP_REG 0x0F
95 #define AD7124_CH7_MAP_REG 0x10
96 #define AD7124_CH8_MAP_REG 0x11
97 #define AD7124_CH9_MAP_REG 0x12
98 #define AD7124_CH10_MAP_REG 0x13
99 #define AD7124_CH11_MAP_REG 0x14
100 #define AD7124_CH12_MAP_REG 0x15
101 #define AD7124_CH13_MAP_REG 0x16
102 #define AD7124_CH14_MAP_REG 0x17
103 #define AD7124_CH15_MAP_REG 0x18
104 #define AD7124_CFG0_REG 0x19
105 #define AD7124_CFG1_REG 0x1A
106 #define AD7124_CFG2_REG 0x1B
107 #define AD7124_CFG3_REG 0x1C
108 #define AD7124_CFG4_REG 0x1D
109 #define AD7124_CFG5_REG 0x1E
110 #define AD7124_CFG6_REG 0x1F
111 #define AD7124_CFG7_REG 0x20
112 #define AD7124_FILT0_REG 0x21
113 #define AD7124_FILT1_REG 0x22
114 #define AD7124_FILT2_REG 0x23
115 #define AD7124_FILT3_REG 0x24
116 #define AD7124_FILT4_REG 0x25
117 #define AD7124_FILT5_REG 0x26
118 #define AD7124_FILT6_REG 0x27
119 #define AD7124_FILT7_REG 0x28
120 #define AD7124_OFFS0_REG 0x29
121 #define AD7124_OFFS1_REG 0x2A
122 #define AD7124_OFFS2_REG 0x2B
123 #define AD7124_OFFS3_REG 0x2C
124 #define AD7124_OFFS4_REG 0x2D
125 #define AD7124_OFFS5_REG 0x2E
126 #define AD7124_OFFS6_REG 0x2F
127 #define AD7124_OFFS7_REG 0x30
128 #define AD7124_GAIN0_REG 0x31
129 #define AD7124_GAIN1_REG 0x32
130 #define AD7124_GAIN2_REG 0x33
131 #define AD7124_GAIN3_REG 0x34
132 #define AD7124_GAIN4_REG 0x35
133 #define AD7124_GAIN5_REG 0x36
134 #define AD7124_GAIN6_REG 0x37
135 #define AD7124_GAIN7_REG 0x38
138 #define AD7124_COMM_REG_WEN (0 << 7)
139 #define AD7124_COMM_REG_WR (0 << 6)
140 #define AD7124_COMM_REG_RD (1 << 6)
141 #define AD7124_COMM_REG_RA(x) ((x) & 0x3F)
144 #define AD7124_STATUS_REG_RDY (1 << 7)
145 #define AD7124_STATUS_REG_ERROR_FLAG (1 << 6)
146 #define AD7124_STATUS_REG_POR_FLAG (1 << 4)
147 #define AD7124_STATUS_REG_CH_ACTIVE(x) ((x) & 0xF)
150 #define AD7124_ADC_CTRL_REG_DOUT_RDY_DEL (1 << 12)
151 #define AD7124_ADC_CTRL_REG_CONT_READ (1 << 11)
152 #define AD7124_ADC_CTRL_REG_DATA_STATUS (1 << 10)
153 #define AD7124_ADC_CTRL_REG_CS_EN (1 << 9)
154 #define AD7124_ADC_CTRL_REG_REF_EN (1 << 8)
155 #define AD7124_ADC_CTRL_REG_POWER_MODE(x) (((x) & 0x3) << 6)
156 #define AD7124_ADC_CTRL_REG_MODE(x) (((x) & 0xF) << 2)
157 #define AD7124_ADC_CTRL_REG_CLK_SEL(x) (((x) & 0x3) << 0)
160 #define AD7124_IO_CTRL1_REG_GPIO_DAT2 (1 << 23)
161 #define AD7124_IO_CTRL1_REG_GPIO_DAT1 (1 << 22)
162 #define AD7124_IO_CTRL1_REG_GPIO_CTRL2 (1 << 19)
163 #define AD7124_IO_CTRL1_REG_GPIO_CTRL1 (1 << 18)
164 #define AD7124_IO_CTRL1_REG_PDSW (1 << 15)
165 #define AD7124_IO_CTRL1_REG_IOUT1(x) (((x) & 0x7) << 11)
166 #define AD7124_IO_CTRL1_REG_IOUT0(x) (((x) & 0x7) << 8)
167 #define AD7124_IO_CTRL1_REG_IOUT_CH1(x) (((x) & 0xF) << 4)
168 #define AD7124_IO_CTRL1_REG_IOUT_CH0(x) (((x) & 0xF) << 0)
171 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT4 (1 << 23)
172 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT3 (1 << 22)
173 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT2 (1 << 21)
174 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT1 (1 << 20)
175 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL4 (1 << 19)
176 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL3 (1 << 18)
177 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL2 (1 << 17)
178 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL1 (1 << 16)
181 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS7 (1 << 15)
182 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS6 (1 << 14)
183 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS5 (1 << 11)
184 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS4 (1 << 10)
185 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS3 (1 << 5)
186 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS2 (1 << 4)
187 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS1 (1 << 1)
188 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS0 (1 << 0)
191 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS15 (1 << 15)
192 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS14 (1 << 14)
193 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS13 (1 << 13)
194 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS12 (1 << 12)
195 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS11 (1 << 11)
196 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS10 (1 << 10)
197 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS9 (1 << 9)
198 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS8 (1 << 8)
199 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS7 (1 << 7)
200 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS6 (1 << 6)
201 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS5 (1 << 5)
202 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS4 (1 << 4)
203 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS3 (1 << 3)
204 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS2 (1 << 2)
205 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS1 (1 << 1)
206 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS0 (1 << 0)
209 #define AD7124_ID_REG_DEVICE_ID(x) (((x) & 0xF) << 4)
210 #define AD7124_ID_REG_SILICON_REV(x) (((x) & 0xF) << 0)
213 #define AD7124_ERR_REG_LDO_CAP_ERR (1 << 19)
214 #define AD7124_ERR_REG_ADC_CAL_ERR (1 << 18)
215 #define AD7124_ERR_REG_ADC_CONV_ERR (1 << 17)
216 #define AD7124_ERR_REG_ADC_SAT_ERR (1 << 16)
217 #define AD7124_ERR_REG_AINP_OV_ERR (1 << 15)
218 #define AD7124_ERR_REG_AINP_UV_ERR (1 << 14)
219 #define AD7124_ERR_REG_AINM_OV_ERR (1 << 13)
220 #define AD7124_ERR_REG_AINM_UV_ERR (1 << 12)
221 #define AD7124_ERR_REG_REF_DET_ERR (1 << 11)
222 #define AD7124_ERR_REG_DLDO_PSM_ERR (1 << 9)
223 #define AD7124_ERR_REG_ALDO_PSM_ERR (1 << 7)
224 #define AD7124_ERR_REG_SPI_IGNORE_ERR (1 << 6)
225 #define AD7124_ERR_REG_SPI_SLCK_CNT_ERR (1 << 5)
226 #define AD7124_ERR_REG_SPI_READ_ERR (1 << 4)
227 #define AD7124_ERR_REG_SPI_WRITE_ERR (1 << 3)
228 #define AD7124_ERR_REG_SPI_CRC_ERR (1 << 2)
229 #define AD7124_ERR_REG_MM_CRC_ERR (1 << 1)
230 #define AD7124_ERR_REG_ROM_CRC_ERR (1 << 0)
233 #define AD7124_ERREN_REG_MCLK_CNT_EN (1 << 22)
234 #define AD7124_ERREN_REG_LDO_CAP_CHK_TEST_EN (1 << 21)
235 #define AD7124_ERREN_REG_LDO_CAP_CHK(x) (((x) & 0x3) << 19)
236 #define AD7124_ERREN_REG_ADC_CAL_ERR_EN (1 << 18)
237 #define AD7124_ERREN_REG_ADC_CONV_ERR_EN (1 << 17)
238 #define AD7124_ERREN_REG_ADC_SAT_ERR_EN (1 << 16)
239 #define AD7124_ERREN_REG_AINP_OV_ERR_EN (1 << 15)
240 #define AD7124_ERREN_REG_AINP_UV_ERR_EN (1 << 14)
241 #define AD7124_ERREN_REG_AINM_OV_ERR_EN (1 << 13)
242 #define AD7124_ERREN_REG_AINM_UV_ERR_EN (1 << 12)
243 #define AD7124_ERREN_REG_REF_DET_ERR_EN (1 << 11)
244 #define AD7124_ERREN_REG_DLDO_PSM_TRIP_TEST_EN (1 << 10)
245 #define AD7124_ERREN_REG_DLDO_PSM_ERR_ERR (1 << 9)
246 #define AD7124_ERREN_REG_ALDO_PSM_TRIP_TEST_EN (1 << 8)
247 #define AD7124_ERREN_REG_ALDO_PSM_ERR_EN (1 << 7)
248 #define AD7124_ERREN_REG_SPI_IGNORE_ERR_EN (1 << 6)
249 #define AD7124_ERREN_REG_SPI_SCLK_CNT_ERR_EN (1 << 5)
250 #define AD7124_ERREN_REG_SPI_READ_ERR_EN (1 << 4)
251 #define AD7124_ERREN_REG_SPI_WRITE_ERR_EN (1 << 3)
252 #define AD7124_ERREN_REG_SPI_CRC_ERR_EN (1 << 2)
253 #define AD7124_ERREN_REG_MM_CRC_ERR_EN (1 << 1)
254 #define AD7124_ERREN_REG_ROM_CRC_ERR_EN (1 << 0)
257 #define AD7124_CH_MAP_REG_CH_ENABLE (1 << 15)
258 #define AD7124_CH_MAP_REG_SETUP(x) (((x) & 0x7) << 12)
259 #define AD7124_CH_MAP_REG_AINP(x) (((x) & 0x1F) << 5)
260 #define AD7124_CH_MAP_REG_AINM(x) (((x) & 0x1F) << 0)
263 #define AD7124_CFG_REG_BIPOLAR (1 << 11)
264 #define AD7124_CFG_REG_BURNOUT(x) (((x) & 0x3) << 9)
265 #define AD7124_CFG_REG_REF_BUFP (1 << 8)
266 #define AD7124_CFG_REG_REF_BUFM (1 << 7)
267 #define AD7124_CFG_REG_AIN_BUFP (1 << 6)
268 #define AD7124_CFG_REG_AINN_BUFM (1 << 5)
269 #define AD7124_CFG_REG_REF_SEL(x) ((x) & 0x3) << 3
270 #define AD7124_CFG_REG_PGA(x) (((x) & 0x7) << 0)
273 #define AD7124_FILT_REG_FILTER(x) (((x) & 0x7) << 21)
274 #define AD7124_FILT_REG_REJ60 (1 << 20)
275 #define AD7124_FILT_REG_POST_FILTER(x) (((x) & 0x7) << 17)
276 #define AD7124_FILT_REG_SINGLE_CYCLE (1 << 16)
277 #define AD7124_FILT_REG_FS(x) (((x) & 0x7FF) << 0)
279 #define AD7124_CRC8_POLYNOMIAL_REPRESENTATION 0x07
280 #define AD7124_DISABLE_CRC 0
281 #define AD7124_USE_CRC 1
282 #define AD7124_CHMAP_REG_SETUP_SEL_MSK NO_OS_GENMASK(14,12)
283 #define AD7124_CHMAP_REG_AINPOS_MSK NO_OS_GENMASK(9,5)
284 #define AD7124_CHMAP_REG_AINNEG_MSK NO_OS_GENMASK(4,0)
285 #define AD7124_ADC_CTRL_REG_MODE_MSK NO_OS_GENMASK(5,2)
286 #define AD7124_SETUP_CONF_REG_REF_SEL_MSK NO_OS_GENMASK(4,3)
287 #define AD7124_REF_BUF_MSK NO_OS_GENMASK(8,7)
288 #define AD7124_AIN_BUF_MSK NO_OS_GENMASK(6,5)
289 #define AD7124_POWER_MODE_MSK NO_OS_GENMASK(7,6)
623 bool channel_status);
enum ad7124_device_type active_device
Definition: ad7124.h:498
@ AD7124_AIN9
Definition: ad7124.h:334
struct no_os_spi_desc * spi_desc
Definition: ad7124.h:490
int16_t use_crc
Definition: ad7124.h:493
@ AD7124_ADC_Control
Definition: ad7124.h:425
@ ADC_MAX_MODES
Definition: ad7124.h:317
#define AD7124_REF_BUF_MSK
Definition: ad7124.h:287
@ AD7124_Config_6
Definition: ad7124.h:455
uint32_t timeout
Definition: ad413x.c:55
int32_t value
Definition: ad7124.h:417
#define AD7124_8_NEW_ID
Definition: ad7124.h:76
#define AD7124_8_B_W_GRADE_ID
Definition: ad7124.h:74
Header file for iio_trigger.
int32_t ad7124_reset(struct ad7124_dev *dev)
Resets the device.
Definition: ad7124.c:265
@ AD7124_Config_1
Definition: ad7124.h:450
@ AD7124_IN_FULL_SCALE_GAIN
Definition: ad7124.h:314
@ AD7124_Filter_6
Definition: ad7124.h:463
struct ad7124_channel_setup setups[AD7124_MAX_SETUPS]
Definition: ad7124.h:525
int16_t use_crc
Definition: ad7124.h:514
@ AD7124_IDLE
Definition: ad7124.h:312
int32_t ad7124_remove(struct ad7124_dev *dev)
Free the resources allocated by ad7124_setup().
Definition: ad7124.c:1133
@ AD7124_IOCon2
Definition: ad7124.h:428
@ AD7124_DLDO_DGND_P
Definition: ad7124.h:351
#define AD7124_4_NEW_ID
Definition: ad7124.h:69
int ad7124_reg_write_msk(struct ad7124_dev *dev, uint32_t reg_addr, uint32_t data, uint32_t mask)
SPI internal register write to device using a mask.
Definition: ad7124.c:701
#define AD7124_STATUS_REG_POR_FLAG
Definition: ad7124.h:146
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:165
#define AD7124_COMM_REG_WEN
Definition: ad7124.h:138
#define AD7124_FILT_REG_FS(x)
Definition: ad7124.h:277
Device Structure.
Definition: ad7124.h:488
@ AD7124_ALDO_AVSS_M
Definition: ad7124.h:350
int32_t ad7124_wait_to_power_on(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device finishes the power-on reset operation.
Definition: ad7124.c:333
Header file of IIO AD7091R8 driver header file.
Channel setup.
Definition: ad7124.h:397
#define AD7124_MAX_CHANNELS
Definition: ad7124.h:62
int ad7124_set_reference_source(struct ad7124_dev *device, enum ad7124_reference_source ref_source, uint8_t setup_id, bool ref_en)
Definition: ad7124.c:877
Header file of SPI Interface.
@ AD7124_IOVDD_DGND_P
Definition: ad7124.h:347
#define AD7124_MAX_SETUPS
Definition: ad7124.h:60
@ AD7124_AIN7
Definition: ad7124.h:332
int16_t check_ready
Definition: ad7124.h:494
int32_t ad7124_write_register(struct ad7124_dev *dev, struct ad7124_st_reg reg)
Writes the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:228
int ad7124_reg_write_msk(struct ad7124_dev *dev, uint32_t reg_addr, uint32_t data, uint32_t mask)
SPI internal register write to device using a mask.
Definition: ad7124.c:701
#define AD7124_FILT_REG_POST_FILTER(x)
Definition: ad7124.h:275
#define AD7124_ERR_REG
Definition: ad7124.h:86
@ AD7124_Gain_0
Definition: ad7124.h:473
int32_t ad7124_wait_for_conv_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until a new conversion result is available.
Definition: ad7124.c:369
#define AD7124_STATUS_REG_CH_ACTIVE(x)
Definition: ad7124.h:147
@ AD7124_Offset_0
Definition: ad7124.h:465
@ EXTERNAL_REFIN1
Definition: ad7124.h:382
@ AD7124_IOVDD_DGND_M
Definition: ad7124.h:348
struct ad7124_channel_map chan_map[AD7124_MAX_CHANNELS]
Definition: ad7124.h:506
#define AD7124_CFG_REG_AINN_BUFM
Definition: ad7124.h:268
int iio_trig_disable(void *trig)
Disable system interrupt which is linked to the given trigger.
Definition: iio_trigger.c:133
int ad7124_assign_setup(struct ad7124_dev *device, uint8_t ch_no, uint8_t setup)
Assign Setup to Channel.
Definition: ad7124.c:819
@ AD7124_AIN15
Definition: ad7124.h:340
Header file of Delay functions.
@ AD7124_Channel_12
Definition: ad7124.h:445
#define AD7124_COMM_REG_WR
Definition: ad7124.h:139
int ad7124_connect_analog_input(struct ad7124_dev *device, uint8_t chn_no, struct ad7124_analog_inputs analog_input)
Set Analog Inputs to channel.
Definition: ad7124.c:782
@ AD7124_STANDBY
Definition: ad7124.h:310
void ad7124_update_dev_spi_settings(struct ad7124_dev *dev)
Updates the device SPI interface settings.
Definition: ad7124.c:499
#define AD7124_CFG_REG_BIPOLAR
Definition: ad7124.h:263
@ AD7124_ALDO_AVSS_P
Definition: ad7124.h:349
ad7124_analog_input
ADC input sources for each channel.
Definition: ad7124.h:324
#define AD7124_CH0_MAP_REG
Definition: ad7124.h:88
@ AD7124_Mclk_Count
Definition: ad7124.h:432
Definition: ad9361_util.h:75
@ AD7124_AIN13
Definition: ad7124.h:338
@ AD7124_Channel_8
Definition: ad7124.h:441
@ AD7124_Gain_1
Definition: ad7124.h:474
@ AD7124_Data
Definition: ad7124.h:426
ad7124_registers
Definition: ad7124.h:423
@ AD7124_Offset_5
Definition: ad7124.h:470
void ad7124_update_crcsetting(struct ad7124_dev *dev)
Updates the CRC settings.
Definition: ad7124.c:478
#define AD7124_USE_CRC
Definition: ad7124.h:281
int32_t ad7124_no_check_write_register(struct ad7124_dev *dev, struct ad7124_st_reg reg)
Writes the value of the specified register without checking if the device is ready to accept user req...
Definition: ad7124.c:136
@ AD7124_AVDD_AVSS_P
Definition: ad7124.h:345
@ AD7124_AIN12
Definition: ad7124.h:337
@ AD7124_Filter_5
Definition: ad7124.h:462
@ AD7124_Filter_3
Definition: ad7124.h:460
ad7124_reference_source
Type of ADC Reference.
Definition: ad7124.h:380
@ AD7124_POWER_DOWN
Definition: ad7124.h:311
bool bi_unipolar
Definition: ad7124.h:398
@ AD7124_AIN6
Definition: ad7124.h:331
enum ad7616_mode mode
Definition: ad7616.h:232
@ AD7124_Filter_1
Definition: ad7124.h:458
struct ad7124_analog_inputs ain
Definition: ad7124.h:373
@ AD7124_Gain_3
Definition: ad7124.h:476
int32_t ad7124_read_data(struct ad7124_dev *dev, int32_t *p_data)
Reads the conversion result from the device.
Definition: ad7124.c:403
@ AD7124_MID_POWER
Definition: ad7124.h:410
#define AD7124_CHMAP_REG_AINNEG_MSK
Definition: ad7124.h:284
void ad7124_update_crcsetting(struct ad7124_dev *dev)
Updates the CRC settings.
Definition: ad7124.c:478
@ AD7124_Offset_3
Definition: ad7124.h:468
bool ref_en
Definition: ad7124.h:521
#define AD7124_CFG0_REG
Definition: ad7124.h:104
int32_t ad7124_no_check_write_register(struct ad7124_dev *dev, struct ad7124_st_reg reg)
Writes the value of the specified register without checking if the device is ready to accept user req...
Definition: ad7124.c:136
#define AD7124_ADC_CTRL_REG
Definition: ad7124.h:81
@ AD7124_Error_En
Definition: ad7124.h:431
@ AD7124_AIN1
Definition: ad7124.h:326
enum ad7124_reference_source ref_source
Definition: ad7124.h:401
@ AD7124_Channel_11
Definition: ad7124.h:444
enum ad7124_device_type active_device
Definition: ad7124.h:519
@ AD7124_Channel_4
Definition: ad7124.h:437
@ AD7124_Channel_0
Definition: ad7124.h:433
int32_t ad7124_wait_for_spi_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device can accept read and write user actions.
Definition: ad7124.c:297
@ AD7124_SINGLE
Definition: ad7124.h:309
@ AD7124_AIN5
Definition: ad7124.h:330
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:132
#define AD7124_CFG_REG_REF_BUFP
Definition: ad7124.h:265
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
enum ad7124_mode mode
Definition: ad7124.h:496
int32_t ad7124_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:181
enum ad7124_mode mode
Definition: ad7124.h:517
#define AD7124_8_STD_ID
Definition: ad7124.h:72
#define AD7124_ERREN_REG_SPI_CRC_ERR_EN
Definition: ad7124.h:252
int32_t addr
Definition: ad7124.h:416
@ AD7124_V_20MV_P
Definition: ad7124.h:353
struct iio_trigger ad7091r8_iio_timer_trig_desc
Definition: iio_ad7091r8_trig.c:54
@ AD7124_Config_7
Definition: ad7124.h:456
int32_t ad7124_fltcoff_get(struct ad7124_dev *dev, int16_t chn_num, uint16_t *flt_coff)
Get the filter coefficient for the sample rate.
Definition: ad7124.c:557
@ AD7124_LOW_POWER
Definition: ad7124.h:409
struct ad7124_channel_map chan_map[AD7124_MAX_CHANNELS]
Definition: ad7124.h:527
#define AD7124_FILT_REG_FILTER(x)
Definition: ad7124.h:273
#define AD7124_ADC_CTRL_REG_REF_EN
Definition: ad7124.h:154
@ AD7124_Gain_2
Definition: ad7124.h:475
@ AD7124_Offset_6
Definition: ad7124.h:471
enum ad7124_power_mode power_mode
Definition: ad7124.h:502
enum ad7124_power_mode power_mode
Definition: ad7124.h:523
@ AD7124_AVSS
Definition: ad7124.h:341
@ AD7124_AIN0
Definition: ad7124.h:325
int32_t ad7124_write_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t writeval)
Wrap the write register function to give it a modern signature.
Definition: ad7124.c:251
int32_t ad7124_fltcoff_get(struct ad7124_dev *dev, int16_t chn_no, uint16_t *flt_coff)
Get the filter coefficient for the sample rate.
Definition: ad7124.c:557
int32_t ad7124_no_check_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register without checking if the device is ready to accept user requ...
Definition: ad7124.c:67
int iio_trig_enable(void *trig)
Enable system interrupt which is linked to the given trigger.
Definition: iio_trigger.c:116
Channel mapping.
Definition: ad7124.h:370
@ AD7124_Channel_10
Definition: ad7124.h:443
int ad7124_set_channel_status(struct ad7124_dev *device, uint8_t chn_num, bool channel_status)
Definition: ad7124.c:751
@ AD7124_Config_0
Definition: ad7124.h:449
#define AD7124_SETUP_CONF_REG_REF_SEL_MSK
Definition: ad7124.h:286
int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode adc_mode)
Set ADC Mode.
Definition: ad7124.c:725
ad7124_mode
ADC Modes of Operation.
Definition: ad7124.h:307
int ad7124_set_power_mode(struct ad7124_dev *device, enum ad7124_power_mode mode)
Select the Power Mode.
Definition: ad7124.c:973
int16_t spi_rdy_poll_cnt
Definition: ad7124.h:516
#define AD7124_COMM_REG_RD
Definition: ad7124.h:140
@ ID_AD7124_4
Definition: ad7124.h:299
struct no_os_spi_init_param * spi_init
Definition: ad7124.h:511
#define AD7124_STATUS_REG_RDY
Definition: ad7124.h:144
@ ID_AD7124_8
Definition: ad7124.h:300
@ AD7124_Filter_4
Definition: ad7124.h:461
#define AD7124_CH_MAP_REG_CH_ENABLE
Definition: ad7124.h:257
int32_t ad7124_setup(struct ad7124_dev **device, struct ad7124_init_param *init_param)
Initializes the AD7124.
Definition: ad7124.c:997
@ AD7124_DLDO_DGND_M
Definition: ad7124.h:352
@ AD7124_Channel_2
Definition: ad7124.h:435
void ad7124_update_dev_spi_settings(struct ad7124_dev *dev)
Updates the device SPI interface settings.
Definition: ad7124.c:499
int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode mode)
Set ADC Mode.
Definition: ad7124.c:725
@ AD7124_Filter_2
Definition: ad7124.h:459
@ AD7124_ID
Definition: ad7124.h:429
int32_t ad7124_reset(struct ad7124_dev *dev)
Resets the device.
Definition: ad7124.c:265
@ AD7124_HIGH_POWER
Definition: ad7124.h:411
Structure holding SPI descriptor.
Definition: no_os_spi.h:177
int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk)
Get the AD7124 reference clock.
Definition: ad7124.c:520
bool ref_buff
Definition: ad7124.h:399
bool ref_en
Definition: ad7124.h:500
int ad7124_set_power_mode(struct ad7124_dev *device, enum ad7124_power_mode mode)
Select the Power Mode.
Definition: ad7124.c:973
@ AD7124_Config_2
Definition: ad7124.h:451
@ AD7124_Offset_7
Definition: ad7124.h:472
int16_t check_ready
Definition: ad7124.h:515
@ AD7124_IN_REF
Definition: ad7124.h:343
int ad7124_connect_analog_input(struct ad7124_dev *device, uint8_t chn_num, struct ad7124_analog_inputs analog_input)
Set Analog Inputs to channel.
Definition: ad7124.c:782
#define AD7124_4_B_GRADE_ID
Definition: ad7124.h:67
int32_t ad7124_remove(struct ad7124_dev *dev)
Free the resources allocated by ad7124_setup().
Definition: ad7124.c:1133
#define AD7124_ADC_CTRL_REG_MODE_MSK
Definition: ad7124.h:285
#define AD7124_CFG_REG_REF_BUFM
Definition: ad7124.h:266
@ AD7124_Offset_4
Definition: ad7124.h:469
uint8_t AD7124_ComputeXOR8(uint8_t *p_buf, uint8_t buf_size)
@ AD7124_Channel_5
Definition: ad7124.h:438
@ AD7124_AIN11
Definition: ad7124.h:336
#define AD7124_AIN_BUF_MSK
Definition: ad7124.h:288
@ AD7124_DGND
Definition: ad7124.h:344
@ AD7124_Filter_7
Definition: ad7124.h:464
#define AD7124_FILT_REG_SINGLE_CYCLE
Definition: ad7124.h:276
@ AD7124_SYS_ZERO_SCALE_GAIN
Definition: ad7124.h:316
int ad7124_set_reference_source(struct ad7124_dev *device, enum ad7124_reference_source ref_source, uint8_t setup_id, bool ref_en)
Definition: ad7124.c:877
struct ad7124_st_reg * regs
Definition: ad7124.h:513
#define AD7124_4_STD_ID
Definition: ad7124.h:65
#define AD7124_CHMAP_REG_AINPOS_MSK
Definition: ad7124.h:283
#define AD7124_ERREN_REG_SPI_IGNORE_ERR_EN
Definition: ad7124.h:248
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:49
int32_t ad7124_wait_for_conv_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until a new conversion result is available.
Definition: ad7124.c:369
#define AD7124_DATA_REG
Definition: ad7124.h:82
@ INTERNAL_REF
Definition: ad7124.h:386
@ AD7124_Channel_7
Definition: ad7124.h:440
int32_t ad7124_setup(struct ad7124_dev **device, struct ad7124_init_param *init_param)
Initializes the AD7124.
Definition: ad7124.c:997
@ AD7124_Error
Definition: ad7124.h:430
bool ain_buff
Definition: ad7124.h:400
@ AD7124_Channel_6
Definition: ad7124.h:439
@ AD7124_REG_NO
Definition: ad7124.h:481
@ AD7124_Gain_7
Definition: ad7124.h:480
@ AD7124_Gain_4
Definition: ad7124.h:477
@ AD7124_Channel_1
Definition: ad7124.h:434
uint8_t ad7124_compute_crc8(uint8_t *p_buf, uint8_t buf_size)
Computes the CRC checksum for a data buffer.
Definition: ad7124.c:449
@ AD7124_V_20MV_M
Definition: ad7124.h:354
@ AD7124_SYS_ZERO_SCALE_OFF
Definition: ad7124.h:315
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:75
int ad7124_enable_buffers(struct ad7124_dev *device, bool ain_buff, bool ref_buff, uint8_t setup_id)
Enable Input Buffer.
Definition: ad7124.c:925
@ AD7124_Channel_3
Definition: ad7124.h:436
@ AD7124_CONTINUOUS
Definition: ad7124.h:308
@ AD7124_IOCon1
Definition: ad7124.h:427
#define AD7124_DISABLE_CRC
Definition: ad7124.h:280
Definition: iio_types.h:236
@ AD7124_TEMP_SENSOR
Definition: ad7124.h:342
uint8_t setup_sel
Definition: ad7124.h:372
@ EXTERNAL_REFIN2
Definition: ad7124.h:384
int32_t ad7124_set_odr(struct ad7124_dev *dev, float odr, int16_t chn_num)
Set ODR of the device.
Definition: ad7124.c:658
@ AD7124_Offset_1
Definition: ad7124.h:466
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:119
float ad7124_get_odr(struct ad7124_dev *dev, int16_t ch_no)
Calculate ODR of the device.
Definition: ad7124.c:609
@ AD7124_Offset_2
Definition: ad7124.h:467
struct ad7124_channel_setup setups[AD7124_MAX_SETUPS]
Definition: ad7124.h:504
@ AD7124_Config_4
Definition: ad7124.h:453
int32_t ad7124_read_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t *readval)
Wrap the read register function to give it a modern signature.
Definition: ad7124.c:204
#define AD7124_POWER_MODE_MSK
Definition: ad7124.h:289
@ bipolar
Definition: ad5446.h:79
int ad7124_enable_buffers(struct ad7124_dev *device, bool inbuf_en, bool refbuf_en, uint8_t setup_id)
Enable Input Buffer.
Definition: ad7124.c:925
@ AD7124_Gain_6
Definition: ad7124.h:479
int32_t ad7124_read_data(struct ad7124_dev *dev, int32_t *p_data)
Reads the conversion result from the device.
Definition: ad7124.c:403
int ad7124_set_polarity(struct ad7124_dev *device, bool bipolar, uint8_t setup_id)
Set Polarity.
Definition: ad7124.c:846
@ AD7124_AIN8
Definition: ad7124.h:333
@ MAX_REF_SOURCES
Definition: ad7124.h:390
bool channel_enable
Definition: ad7124.h:371
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:122
uint8_t ad7124_compute_crc8(uint8_t *p_buf, uint8_t buf_size)
Computes the CRC checksum for a data buffer.
Definition: ad7124.c:449
AD7124 header file. Devices: AD7124-4, AD7124-8.
int ad7124_assign_setup(struct ad7124_dev *device, uint8_t chn_num, uint8_t setup)
Assign Setup to Channel.
Definition: ad7124.c:819
#define AD7124_COMM_REG_RA(x)
Definition: ad7124.h:141
int32_t ad7124_get_read_chan_id(struct ad7124_dev *dev, uint32_t *status)
Get the ID of the channel of the latest conversion.
Definition: ad7124.c:429
#define AD7124_CHMAP_REG_SETUP_SEL_MSK
Definition: ad7124.h:282
ad7124_power_mode
Power modes.
Definition: ad7124.h:408
int32_t ad7124_wait_for_spi_ready(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device can accept read and write user actions.
Definition: ad7124.c:297
@ AD7124_AIN3
Definition: ad7124.h:328
#define AD7124_POST_RESET_DELAY
Definition: ad7124.c:56
int32_t ad7124_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:181
float ad7124_get_odr(struct ad7124_dev *dev, int16_t chn_num)
Calculate ODR of the device.
Definition: ad7124.c:609
@ AD7124_Channel_13
Definition: ad7124.h:446
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:58
int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk)
Get the AD7124 reference clock.
Definition: ad7124.c:520
#define AD7124_ERR_REG_SPI_IGNORE_ERR
Definition: ad7124.h:224
@ AD7124_Channel_15
Definition: ad7124.h:448
@ AD7124_AIN14
Definition: ad7124.h:339
bool is_synchronous
Definition: iio_types.h:239
int32_t rw
Definition: ad7124.h:419
ad7124_device_type
Definition: ad7124.h:298
#define AD7124_CFG_REG_AIN_BUFP
Definition: ad7124.h:267
@ AD7124_Channel_9
Definition: ad7124.h:442
Header file of utility functions.
int32_t ad7124_write_register(struct ad7124_dev *dev, struct ad7124_st_reg p_reg)
Writes the value of the specified register only when the device is ready to accept user requests....
Definition: ad7124.c:228
@ AD7124_AVDD_AVSS_M
Definition: ad7124.h:346
#define AD7124_ID_REG
Definition: ad7124.h:85
@ AD7124_AIN4
Definition: ad7124.h:329
@ AD7124_AIN10
Definition: ad7124.h:335
int32_t size
Definition: ad7124.h:418
int32_t ad7124_read_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t *readval)
Wrap the read register function to give it a modern signature.
Definition: ad7124.c:204
int ad7124_set_channel_status(struct ad7124_dev *device, uint8_t chn_no, bool channel_status)
Definition: ad7124.c:751
@ AD7124_Gain_5
Definition: ad7124.h:478
@ AD7124_Channel_14
Definition: ad7124.h:447
struct ad7124_st_reg * regs
Definition: ad7124.h:492
@ AD7124_Status
Definition: ad7124.h:424
int16_t spi_rdy_poll_cnt
Definition: ad7124.h:495
#define AD7124_CRC8_POLYNOMIAL_REPRESENTATION
Definition: ad7124.h:279
#define AD7124_STATUS_REG
Definition: ad7124.h:80
@ AD7124_Filter_0
Definition: ad7124.h:457
int ad7124_set_polarity(struct ad7124_dev *device, bool bipolar, uint8_t setup_id)
Set Polarity.
Definition: ad7124.c:846
#define AD7124_ADC_CTRL_REG_DATA_STATUS
Definition: ad7124.h:152
int32_t ad7124_no_check_read_register(struct ad7124_dev *dev, struct ad7124_st_reg *p_reg)
Reads the value of the specified register without checking if the device is ready to accept user requ...
Definition: ad7124.c:67
int32_t ad7124_write_register2(struct ad7124_dev *dev, uint32_t reg, uint32_t writeval)
Wrap the write register function to give it a modern signature.
Definition: ad7124.c:251
@ AD7124_Config_3
Definition: ad7124.h:452
int32_t ad7124_wait_to_power_on(struct ad7124_dev *dev, uint32_t timeout)
Waits until the device finishes the power-on reset operation.
Definition: ad7124.c:333
int32_t ad7124_get_read_chan_id(struct ad7124_dev *dev, uint32_t *status)
Get the ID of the channel of the latest conversion.
Definition: ad7124.c:429
@ AD7124_AIN2
Definition: ad7124.h:327
@ AD7124_Config_5
Definition: ad7124.h:454
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:131
int32_t ad7124_set_odr(struct ad7124_dev *dev, float odr, int16_t chn_no)
Set ODR of the device.
Definition: ad7124.c:658
@ AVDD_AVSS
Definition: ad7124.h:388
@ AD7124_IN_ZERO_SCALE_OFF
Definition: ad7124.h:313