Go to the documentation of this file.
53 #define AD7124_MAX_SETUPS 8
55 #define AD7124_MAX_CHANNELS 16
58 #define AD7124_4_STD_ID 0x04
60 #define AD7124_4_B_GRADE_ID 0x06
62 #define AD7124_4_NEW_ID 0x07
65 #define AD7124_8_STD_ID 0x14
67 #define AD7124_8_B_W_GRADE_ID 0x16
69 #define AD7124_8_NEW_ID 0x17
72 #define AD7124_COMM_REG 0x00
73 #define AD7124_STATUS_REG 0x00
74 #define AD7124_ADC_CTRL_REG 0x01
75 #define AD7124_DATA_REG 0x02
76 #define AD7124_IO_CTRL1_REG 0x03
77 #define AD7124_IO_CTRL2_REG 0x04
78 #define AD7124_ID_REG 0x05
79 #define AD7124_ERR_REG 0x06
80 #define AD7124_ERREN_REG 0x07
81 #define AD7124_CH0_MAP_REG 0x09
82 #define AD7124_CH1_MAP_REG 0x0A
83 #define AD7124_CH2_MAP_REG 0x0B
84 #define AD7124_CH3_MAP_REG 0x0C
85 #define AD7124_CH4_MAP_REG 0x0D
86 #define AD7124_CH5_MAP_REG 0x0E
87 #define AD7124_CH6_MAP_REG 0x0F
88 #define AD7124_CH7_MAP_REG 0x10
89 #define AD7124_CH8_MAP_REG 0x11
90 #define AD7124_CH9_MAP_REG 0x12
91 #define AD7124_CH10_MAP_REG 0x13
92 #define AD7124_CH11_MAP_REG 0x14
93 #define AD7124_CH12_MAP_REG 0x15
94 #define AD7124_CH13_MAP_REG 0x16
95 #define AD7124_CH14_MAP_REG 0x17
96 #define AD7124_CH15_MAP_REG 0x18
97 #define AD7124_CFG0_REG 0x19
98 #define AD7124_CFG1_REG 0x1A
99 #define AD7124_CFG2_REG 0x1B
100 #define AD7124_CFG3_REG 0x1C
101 #define AD7124_CFG4_REG 0x1D
102 #define AD7124_CFG5_REG 0x1E
103 #define AD7124_CFG6_REG 0x1F
104 #define AD7124_CFG7_REG 0x20
105 #define AD7124_FILT0_REG 0x21
106 #define AD7124_FILT1_REG 0x22
107 #define AD7124_FILT2_REG 0x23
108 #define AD7124_FILT3_REG 0x24
109 #define AD7124_FILT4_REG 0x25
110 #define AD7124_FILT5_REG 0x26
111 #define AD7124_FILT6_REG 0x27
112 #define AD7124_FILT7_REG 0x28
113 #define AD7124_OFFS0_REG 0x29
114 #define AD7124_OFFS1_REG 0x2A
115 #define AD7124_OFFS2_REG 0x2B
116 #define AD7124_OFFS3_REG 0x2C
117 #define AD7124_OFFS4_REG 0x2D
118 #define AD7124_OFFS5_REG 0x2E
119 #define AD7124_OFFS6_REG 0x2F
120 #define AD7124_OFFS7_REG 0x30
121 #define AD7124_GAIN0_REG 0x31
122 #define AD7124_GAIN1_REG 0x32
123 #define AD7124_GAIN2_REG 0x33
124 #define AD7124_GAIN3_REG 0x34
125 #define AD7124_GAIN4_REG 0x35
126 #define AD7124_GAIN5_REG 0x36
127 #define AD7124_GAIN6_REG 0x37
128 #define AD7124_GAIN7_REG 0x38
131 #define AD7124_COMM_REG_WEN (0 << 7)
132 #define AD7124_COMM_REG_WR (0 << 6)
133 #define AD7124_COMM_REG_RD (1 << 6)
134 #define AD7124_COMM_REG_RA(x) ((x) & 0x3F)
137 #define AD7124_STATUS_REG_RDY (1 << 7)
138 #define AD7124_STATUS_REG_ERROR_FLAG (1 << 6)
139 #define AD7124_STATUS_REG_POR_FLAG (1 << 4)
140 #define AD7124_STATUS_REG_CH_ACTIVE(x) ((x) & 0xF)
143 #define AD7124_ADC_CTRL_REG_DOUT_RDY_DEL (1 << 12)
144 #define AD7124_ADC_CTRL_REG_CONT_READ (1 << 11)
145 #define AD7124_ADC_CTRL_REG_DATA_STATUS (1 << 10)
146 #define AD7124_ADC_CTRL_REG_CS_EN (1 << 9)
147 #define AD7124_ADC_CTRL_REG_REF_EN (1 << 8)
148 #define AD7124_ADC_CTRL_REG_POWER_MODE(x) (((x) & 0x3) << 6)
149 #define AD7124_ADC_CTRL_REG_MODE(x) (((x) & 0xF) << 2)
150 #define AD7124_ADC_CTRL_REG_CLK_SEL(x) (((x) & 0x3) << 0)
153 #define AD7124_IO_CTRL1_REG_GPIO_DAT2 (1 << 23)
154 #define AD7124_IO_CTRL1_REG_GPIO_DAT1 (1 << 22)
155 #define AD7124_IO_CTRL1_REG_GPIO_CTRL2 (1 << 19)
156 #define AD7124_IO_CTRL1_REG_GPIO_CTRL1 (1 << 18)
157 #define AD7124_IO_CTRL1_REG_PDSW (1 << 15)
158 #define AD7124_IO_CTRL1_REG_IOUT1(x) (((x) & 0x7) << 11)
159 #define AD7124_IO_CTRL1_REG_IOUT0(x) (((x) & 0x7) << 8)
160 #define AD7124_IO_CTRL1_REG_IOUT_CH1(x) (((x) & 0xF) << 4)
161 #define AD7124_IO_CTRL1_REG_IOUT_CH0(x) (((x) & 0xF) << 0)
164 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT4 (1 << 23)
165 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT3 (1 << 22)
166 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT2 (1 << 21)
167 #define AD7124_8_IO_CTRL1_REG_GPIO_DAT1 (1 << 20)
168 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL4 (1 << 19)
169 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL3 (1 << 18)
170 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL2 (1 << 17)
171 #define AD7124_8_IO_CTRL1_REG_GPIO_CTRL1 (1 << 16)
174 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS7 (1 << 15)
175 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS6 (1 << 14)
176 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS5 (1 << 11)
177 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS4 (1 << 10)
178 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS3 (1 << 5)
179 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS2 (1 << 4)
180 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS1 (1 << 1)
181 #define AD7124_IO_CTRL2_REG_GPIO_VBIAS0 (1 << 0)
184 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS15 (1 << 15)
185 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS14 (1 << 14)
186 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS13 (1 << 13)
187 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS12 (1 << 12)
188 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS11 (1 << 11)
189 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS10 (1 << 10)
190 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS9 (1 << 9)
191 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS8 (1 << 8)
192 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS7 (1 << 7)
193 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS6 (1 << 6)
194 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS5 (1 << 5)
195 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS4 (1 << 4)
196 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS3 (1 << 3)
197 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS2 (1 << 2)
198 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS1 (1 << 1)
199 #define AD7124_8_IO_CTRL2_REG_GPIO_VBIAS0 (1 << 0)
202 #define AD7124_ID_REG_DEVICE_ID(x) (((x) & 0xF) << 4)
203 #define AD7124_ID_REG_SILICON_REV(x) (((x) & 0xF) << 0)
206 #define AD7124_ERR_REG_LDO_CAP_ERR (1 << 19)
207 #define AD7124_ERR_REG_ADC_CAL_ERR (1 << 18)
208 #define AD7124_ERR_REG_ADC_CONV_ERR (1 << 17)
209 #define AD7124_ERR_REG_ADC_SAT_ERR (1 << 16)
210 #define AD7124_ERR_REG_AINP_OV_ERR (1 << 15)
211 #define AD7124_ERR_REG_AINP_UV_ERR (1 << 14)
212 #define AD7124_ERR_REG_AINM_OV_ERR (1 << 13)
213 #define AD7124_ERR_REG_AINM_UV_ERR (1 << 12)
214 #define AD7124_ERR_REG_REF_DET_ERR (1 << 11)
215 #define AD7124_ERR_REG_DLDO_PSM_ERR (1 << 9)
216 #define AD7124_ERR_REG_ALDO_PSM_ERR (1 << 7)
217 #define AD7124_ERR_REG_SPI_IGNORE_ERR (1 << 6)
218 #define AD7124_ERR_REG_SPI_SLCK_CNT_ERR (1 << 5)
219 #define AD7124_ERR_REG_SPI_READ_ERR (1 << 4)
220 #define AD7124_ERR_REG_SPI_WRITE_ERR (1 << 3)
221 #define AD7124_ERR_REG_SPI_CRC_ERR (1 << 2)
222 #define AD7124_ERR_REG_MM_CRC_ERR (1 << 1)
223 #define AD7124_ERR_REG_ROM_CRC_ERR (1 << 0)
226 #define AD7124_ERREN_REG_MCLK_CNT_EN (1 << 22)
227 #define AD7124_ERREN_REG_LDO_CAP_CHK_TEST_EN (1 << 21)
228 #define AD7124_ERREN_REG_LDO_CAP_CHK(x) (((x) & 0x3) << 19)
229 #define AD7124_ERREN_REG_ADC_CAL_ERR_EN (1 << 18)
230 #define AD7124_ERREN_REG_ADC_CONV_ERR_EN (1 << 17)
231 #define AD7124_ERREN_REG_ADC_SAT_ERR_EN (1 << 16)
232 #define AD7124_ERREN_REG_AINP_OV_ERR_EN (1 << 15)
233 #define AD7124_ERREN_REG_AINP_UV_ERR_EN (1 << 14)
234 #define AD7124_ERREN_REG_AINM_OV_ERR_EN (1 << 13)
235 #define AD7124_ERREN_REG_AINM_UV_ERR_EN (1 << 12)
236 #define AD7124_ERREN_REG_REF_DET_ERR_EN (1 << 11)
237 #define AD7124_ERREN_REG_DLDO_PSM_TRIP_TEST_EN (1 << 10)
238 #define AD7124_ERREN_REG_DLDO_PSM_ERR_ERR (1 << 9)
239 #define AD7124_ERREN_REG_ALDO_PSM_TRIP_TEST_EN (1 << 8)
240 #define AD7124_ERREN_REG_ALDO_PSM_ERR_EN (1 << 7)
241 #define AD7124_ERREN_REG_SPI_IGNORE_ERR_EN (1 << 6)
242 #define AD7124_ERREN_REG_SPI_SCLK_CNT_ERR_EN (1 << 5)
243 #define AD7124_ERREN_REG_SPI_READ_ERR_EN (1 << 4)
244 #define AD7124_ERREN_REG_SPI_WRITE_ERR_EN (1 << 3)
245 #define AD7124_ERREN_REG_SPI_CRC_ERR_EN (1 << 2)
246 #define AD7124_ERREN_REG_MM_CRC_ERR_EN (1 << 1)
247 #define AD7124_ERREN_REG_ROM_CRC_ERR_EN (1 << 0)
250 #define AD7124_CH_MAP_REG_CH_ENABLE (1 << 15)
251 #define AD7124_CH_MAP_REG_SETUP(x) (((x) & 0x7) << 12)
252 #define AD7124_CH_MAP_REG_AINP(x) (((x) & 0x1F) << 5)
253 #define AD7124_CH_MAP_REG_AINM(x) (((x) & 0x1F) << 0)
256 #define AD7124_CFG_REG_BIPOLAR (1 << 11)
257 #define AD7124_CFG_REG_BURNOUT(x) (((x) & 0x3) << 9)
258 #define AD7124_CFG_REG_REF_BUFP (1 << 8)
259 #define AD7124_CFG_REG_REF_BUFM (1 << 7)
260 #define AD7124_CFG_REG_AIN_BUFP (1 << 6)
261 #define AD7124_CFG_REG_AINN_BUFM (1 << 5)
262 #define AD7124_CFG_REG_REF_SEL(x) ((x) & 0x3) << 3
263 #define AD7124_CFG_REG_PGA(x) (((x) & 0x7) << 0)
266 #define AD7124_FILT_REG_FILTER(x) (((x) & 0x7) << 21)
267 #define AD7124_FILT_REG_REJ60 (1 << 20)
268 #define AD7124_FILT_REG_POST_FILTER(x) (((x) & 0x7) << 17)
269 #define AD7124_FILT_REG_SINGLE_CYCLE (1 << 16)
270 #define AD7124_FILT_REG_FS(x) (((x) & 0x7FF) << 0)
272 #define AD7124_CRC8_POLYNOMIAL_REPRESENTATION 0x07
273 #define AD7124_DISABLE_CRC 0
274 #define AD7124_USE_CRC 1
275 #define AD7124_CHMAP_REG_SETUP_SEL_MSK NO_OS_GENMASK(14,12)
276 #define AD7124_CHMAP_REG_AINPOS_MSK NO_OS_GENMASK(9,5)
277 #define AD7124_CHMAP_REG_AINNEG_MSK NO_OS_GENMASK(4,0)
278 #define AD7124_ADC_CTRL_REG_MODE_MSK NO_OS_GENMASK(5,2)
279 #define AD7124_SETUP_CONF_REG_REF_SEL_MSK NO_OS_GENMASK(4,3)
280 #define AD7124_REF_BUF_MSK NO_OS_GENMASK(8,7)
281 #define AD7124_AIN_BUF_MSK NO_OS_GENMASK(6,5)
282 #define AD7124_POWER_MODE_MSK NO_OS_GENMASK(7,6)
616 bool channel_status);
enum ad7124_device_type active_device
Definition: ad7124.h:491
@ AD7124_AIN9
Definition: ad7124.h:327
struct no_os_spi_desc * spi_desc
Definition: ad7124.h:483
int16_t use_crc
Definition: ad7124.h:486
@ AD7124_ADC_Control
Definition: ad7124.h:418
@ ADC_MAX_MODES
Definition: ad7124.h:310
#define AD7124_REF_BUF_MSK
Definition: ad7124.h:280
@ AD7124_Config_6
Definition: ad7124.h:448
uint32_t timeout
Definition: ad413x.c:49
int32_t value
Definition: ad7124.h:410
#define AD7124_8_NEW_ID
Definition: ad7124.h:69
#define AD7124_8_B_W_GRADE_ID
Definition: ad7124.h:67
Header file for iio_trigger.
int32_t ad7124_reset(struct ad7124_dev *dev)
Resets the device.
Definition: ad7124.c:258
@ AD7124_Config_1
Definition: ad7124.h:443
@ AD7124_IN_FULL_SCALE_GAIN
Definition: ad7124.h:307
@ AD7124_Filter_6
Definition: ad7124.h:456
struct ad7124_channel_setup setups[AD7124_MAX_SETUPS]
Definition: ad7124.h:518
int16_t use_crc
Definition: ad7124.h:507
@ AD7124_IDLE
Definition: ad7124.h:305
int32_t ad7124_remove(struct ad7124_dev *dev)
Free the resources allocated by ad7124_setup().
Definition: ad7124.c:1126
@ AD7124_IOCon2
Definition: ad7124.h:421
@ AD7124_DLDO_DGND_P
Definition: ad7124.h:344
#define AD7124_4_NEW_ID
Definition: ad7124.h:62
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:694
#define AD7124_STATUS_REG_POR_FLAG
Definition: ad7124.h:139
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:159
#define AD7124_COMM_REG_WEN
Definition: ad7124.h:131
#define AD7124_FILT_REG_FS(x)
Definition: ad7124.h:270
Device Structure.
Definition: ad7124.h:481
@ AD7124_ALDO_AVSS_M
Definition: ad7124.h:343
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:326
Header file of IIO AD7091R8 driver header file.
Channel setup.
Definition: ad7124.h:390
#define AD7124_MAX_CHANNELS
Definition: ad7124.h:55
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:870
Header file of SPI Interface.
@ AD7124_IOVDD_DGND_P
Definition: ad7124.h:340
#define AD7124_MAX_SETUPS
Definition: ad7124.h:53
@ AD7124_AIN7
Definition: ad7124.h:325
int16_t check_ready
Definition: ad7124.h:487
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:221
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:694
#define AD7124_FILT_REG_POST_FILTER(x)
Definition: ad7124.h:268
#define AD7124_ERR_REG
Definition: ad7124.h:79
@ AD7124_Gain_0
Definition: ad7124.h:466
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:362
#define AD7124_STATUS_REG_CH_ACTIVE(x)
Definition: ad7124.h:140
@ AD7124_Offset_0
Definition: ad7124.h:458
@ EXTERNAL_REFIN1
Definition: ad7124.h:375
@ AD7124_IOVDD_DGND_M
Definition: ad7124.h:341
struct ad7124_channel_map chan_map[AD7124_MAX_CHANNELS]
Definition: ad7124.h:499
#define AD7124_CFG_REG_AINN_BUFM
Definition: ad7124.h:261
int iio_trig_disable(void *trig)
Disable system interrupt which is linked to the given trigger.
Definition: iio_trigger.c:127
int ad7124_assign_setup(struct ad7124_dev *device, uint8_t ch_no, uint8_t setup)
Assign Setup to Channel.
Definition: ad7124.c:812
@ AD7124_AIN15
Definition: ad7124.h:333
Header file of Delay functions.
@ AD7124_Channel_12
Definition: ad7124.h:438
#define AD7124_COMM_REG_WR
Definition: ad7124.h:132
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:775
@ AD7124_STANDBY
Definition: ad7124.h:303
void ad7124_update_dev_spi_settings(struct ad7124_dev *dev)
Updates the device SPI interface settings.
Definition: ad7124.c:492
#define AD7124_CFG_REG_BIPOLAR
Definition: ad7124.h:256
@ AD7124_ALDO_AVSS_P
Definition: ad7124.h:342
ad7124_analog_input
ADC input sources for each channel.
Definition: ad7124.h:317
#define AD7124_CH0_MAP_REG
Definition: ad7124.h:81
@ AD7124_Mclk_Count
Definition: ad7124.h:425
Definition: ad9361_util.h:69
@ AD7124_AIN13
Definition: ad7124.h:331
@ AD7124_Channel_8
Definition: ad7124.h:434
@ AD7124_Gain_1
Definition: ad7124.h:467
@ AD7124_Data
Definition: ad7124.h:419
ad7124_registers
Definition: ad7124.h:416
@ AD7124_Offset_5
Definition: ad7124.h:463
void ad7124_update_crcsetting(struct ad7124_dev *dev)
Updates the CRC settings.
Definition: ad7124.c:471
#define AD7124_USE_CRC
Definition: ad7124.h:274
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:129
@ AD7124_AVDD_AVSS_P
Definition: ad7124.h:338
@ AD7124_AIN12
Definition: ad7124.h:330
@ AD7124_Filter_5
Definition: ad7124.h:455
@ AD7124_Filter_3
Definition: ad7124.h:453
ad7124_reference_source
Type of ADC Reference.
Definition: ad7124.h:373
@ AD7124_POWER_DOWN
Definition: ad7124.h:304
bool bi_unipolar
Definition: ad7124.h:391
@ AD7124_AIN6
Definition: ad7124.h:324
enum ad7616_mode mode
Definition: ad7616.h:226
@ AD7124_Filter_1
Definition: ad7124.h:451
struct ad7124_analog_inputs ain
Definition: ad7124.h:366
@ AD7124_Gain_3
Definition: ad7124.h:469
int32_t ad7124_read_data(struct ad7124_dev *dev, int32_t *p_data)
Reads the conversion result from the device.
Definition: ad7124.c:396
@ AD7124_MID_POWER
Definition: ad7124.h:403
#define AD7124_CHMAP_REG_AINNEG_MSK
Definition: ad7124.h:277
void ad7124_update_crcsetting(struct ad7124_dev *dev)
Updates the CRC settings.
Definition: ad7124.c:471
@ AD7124_Offset_3
Definition: ad7124.h:461
bool ref_en
Definition: ad7124.h:514
#define AD7124_CFG0_REG
Definition: ad7124.h:97
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:129
#define AD7124_ADC_CTRL_REG
Definition: ad7124.h:74
@ AD7124_Error_En
Definition: ad7124.h:424
@ AD7124_AIN1
Definition: ad7124.h:319
enum ad7124_reference_source ref_source
Definition: ad7124.h:394
@ AD7124_Channel_11
Definition: ad7124.h:437
enum ad7124_device_type active_device
Definition: ad7124.h:512
@ AD7124_Channel_4
Definition: ad7124.h:430
@ AD7124_Channel_0
Definition: ad7124.h:426
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:290
@ AD7124_SINGLE
Definition: ad7124.h:302
@ AD7124_AIN5
Definition: ad7124.h:323
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
#define AD7124_CFG_REG_REF_BUFP
Definition: ad7124.h:258
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
enum ad7124_mode mode
Definition: ad7124.h:489
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:174
enum ad7124_mode mode
Definition: ad7124.h:510
#define AD7124_8_STD_ID
Definition: ad7124.h:65
#define AD7124_ERREN_REG_SPI_CRC_ERR_EN
Definition: ad7124.h:245
int32_t addr
Definition: ad7124.h:409
@ AD7124_V_20MV_P
Definition: ad7124.h:346
struct iio_trigger ad7091r8_iio_timer_trig_desc
Definition: iio_ad7091r8_trig.c:48
@ AD7124_Config_7
Definition: ad7124.h:449
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:550
@ AD7124_LOW_POWER
Definition: ad7124.h:402
struct ad7124_channel_map chan_map[AD7124_MAX_CHANNELS]
Definition: ad7124.h:520
#define AD7124_FILT_REG_FILTER(x)
Definition: ad7124.h:266
#define AD7124_ADC_CTRL_REG_REF_EN
Definition: ad7124.h:147
@ AD7124_Gain_2
Definition: ad7124.h:468
@ AD7124_Offset_6
Definition: ad7124.h:464
enum ad7124_power_mode power_mode
Definition: ad7124.h:495
enum ad7124_power_mode power_mode
Definition: ad7124.h:516
@ AD7124_AVSS
Definition: ad7124.h:335
@ AD7124_AIN0
Definition: ad7124.h:318
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:244
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:550
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:60
int iio_trig_enable(void *trig)
Enable system interrupt which is linked to the given trigger.
Definition: iio_trigger.c:110
Channel mapping.
Definition: ad7124.h:363
@ AD7124_Channel_10
Definition: ad7124.h:436
int ad7124_set_channel_status(struct ad7124_dev *device, uint8_t chn_num, bool channel_status)
Definition: ad7124.c:744
@ AD7124_Config_0
Definition: ad7124.h:442
#define AD7124_SETUP_CONF_REG_REF_SEL_MSK
Definition: ad7124.h:279
int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode adc_mode)
Set ADC Mode.
Definition: ad7124.c:718
ad7124_mode
ADC Modes of Operation.
Definition: ad7124.h:300
int ad7124_set_power_mode(struct ad7124_dev *device, enum ad7124_power_mode mode)
Select the Power Mode.
Definition: ad7124.c:966
int16_t spi_rdy_poll_cnt
Definition: ad7124.h:509
#define AD7124_COMM_REG_RD
Definition: ad7124.h:133
@ ID_AD7124_4
Definition: ad7124.h:292
struct no_os_spi_init_param * spi_init
Definition: ad7124.h:504
#define AD7124_STATUS_REG_RDY
Definition: ad7124.h:137
@ ID_AD7124_8
Definition: ad7124.h:293
@ AD7124_Filter_4
Definition: ad7124.h:454
#define AD7124_CH_MAP_REG_CH_ENABLE
Definition: ad7124.h:250
int32_t ad7124_setup(struct ad7124_dev **device, struct ad7124_init_param *init_param)
Initializes the AD7124.
Definition: ad7124.c:990
@ AD7124_DLDO_DGND_M
Definition: ad7124.h:345
@ AD7124_Channel_2
Definition: ad7124.h:428
void ad7124_update_dev_spi_settings(struct ad7124_dev *dev)
Updates the device SPI interface settings.
Definition: ad7124.c:492
int ad7124_set_adc_mode(struct ad7124_dev *device, enum ad7124_mode mode)
Set ADC Mode.
Definition: ad7124.c:718
@ AD7124_Filter_2
Definition: ad7124.h:452
@ AD7124_ID
Definition: ad7124.h:422
int32_t ad7124_reset(struct ad7124_dev *dev)
Resets the device.
Definition: ad7124.c:258
@ AD7124_HIGH_POWER
Definition: ad7124.h:404
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk)
Get the AD7124 reference clock.
Definition: ad7124.c:513
bool ref_buff
Definition: ad7124.h:392
bool ref_en
Definition: ad7124.h:493
int ad7124_set_power_mode(struct ad7124_dev *device, enum ad7124_power_mode mode)
Select the Power Mode.
Definition: ad7124.c:966
@ AD7124_Config_2
Definition: ad7124.h:444
@ AD7124_Offset_7
Definition: ad7124.h:465
int16_t check_ready
Definition: ad7124.h:508
@ AD7124_IN_REF
Definition: ad7124.h:336
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:775
#define AD7124_4_B_GRADE_ID
Definition: ad7124.h:60
int32_t ad7124_remove(struct ad7124_dev *dev)
Free the resources allocated by ad7124_setup().
Definition: ad7124.c:1126
#define AD7124_ADC_CTRL_REG_MODE_MSK
Definition: ad7124.h:278
#define AD7124_CFG_REG_REF_BUFM
Definition: ad7124.h:259
@ AD7124_Offset_4
Definition: ad7124.h:462
uint8_t AD7124_ComputeXOR8(uint8_t *p_buf, uint8_t buf_size)
@ AD7124_Channel_5
Definition: ad7124.h:431
@ AD7124_AIN11
Definition: ad7124.h:329
#define AD7124_AIN_BUF_MSK
Definition: ad7124.h:281
@ AD7124_DGND
Definition: ad7124.h:337
@ AD7124_Filter_7
Definition: ad7124.h:457
#define AD7124_FILT_REG_SINGLE_CYCLE
Definition: ad7124.h:269
@ AD7124_SYS_ZERO_SCALE_GAIN
Definition: ad7124.h:309
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:870
struct ad7124_st_reg * regs
Definition: ad7124.h:506
#define AD7124_4_STD_ID
Definition: ad7124.h:58
#define AD7124_CHMAP_REG_AINPOS_MSK
Definition: ad7124.h:276
#define AD7124_ERREN_REG_SPI_IGNORE_ERR_EN
Definition: ad7124.h:241
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
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:362
#define AD7124_DATA_REG
Definition: ad7124.h:75
@ INTERNAL_REF
Definition: ad7124.h:379
@ AD7124_Channel_7
Definition: ad7124.h:433
int32_t ad7124_setup(struct ad7124_dev **device, struct ad7124_init_param *init_param)
Initializes the AD7124.
Definition: ad7124.c:990
@ AD7124_Error
Definition: ad7124.h:423
bool ain_buff
Definition: ad7124.h:393
@ AD7124_Channel_6
Definition: ad7124.h:432
@ AD7124_REG_NO
Definition: ad7124.h:474
@ AD7124_Gain_7
Definition: ad7124.h:473
@ AD7124_Gain_4
Definition: ad7124.h:470
@ AD7124_Channel_1
Definition: ad7124.h:427
uint8_t ad7124_compute_crc8(uint8_t *p_buf, uint8_t buf_size)
Computes the CRC checksum for a data buffer.
Definition: ad7124.c:442
@ AD7124_V_20MV_M
Definition: ad7124.h:347
@ AD7124_SYS_ZERO_SCALE_OFF
Definition: ad7124.h:308
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:69
int ad7124_enable_buffers(struct ad7124_dev *device, bool ain_buff, bool ref_buff, uint8_t setup_id)
Enable Input Buffer.
Definition: ad7124.c:918
@ AD7124_Channel_3
Definition: ad7124.h:429
@ AD7124_CONTINUOUS
Definition: ad7124.h:301
@ AD7124_IOCon1
Definition: ad7124.h:420
#define AD7124_DISABLE_CRC
Definition: ad7124.h:273
Definition: iio_types.h:231
@ AD7124_TEMP_SENSOR
Definition: ad7124.h:334
uint8_t setup_sel
Definition: ad7124.h:365
@ EXTERNAL_REFIN2
Definition: ad7124.h:377
int32_t ad7124_set_odr(struct ad7124_dev *dev, float odr, int16_t chn_num)
Set ODR of the device.
Definition: ad7124.c:651
@ AD7124_Offset_1
Definition: ad7124.h:459
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
float ad7124_get_odr(struct ad7124_dev *dev, int16_t ch_no)
Calculate ODR of the device.
Definition: ad7124.c:602
@ AD7124_Offset_2
Definition: ad7124.h:460
struct ad7124_channel_setup setups[AD7124_MAX_SETUPS]
Definition: ad7124.h:497
@ AD7124_Config_4
Definition: ad7124.h:446
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:197
#define AD7124_POWER_MODE_MSK
Definition: ad7124.h:282
@ bipolar
Definition: ad5446.h:71
int ad7124_enable_buffers(struct ad7124_dev *device, bool inbuf_en, bool refbuf_en, uint8_t setup_id)
Enable Input Buffer.
Definition: ad7124.c:918
@ AD7124_Gain_6
Definition: ad7124.h:472
int32_t ad7124_read_data(struct ad7124_dev *dev, int32_t *p_data)
Reads the conversion result from the device.
Definition: ad7124.c:396
int ad7124_set_polarity(struct ad7124_dev *device, bool bipolar, uint8_t setup_id)
Set Polarity.
Definition: ad7124.c:839
@ AD7124_AIN8
Definition: ad7124.h:326
@ MAX_REF_SOURCES
Definition: ad7124.h:383
bool channel_enable
Definition: ad7124.h:364
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:116
uint8_t ad7124_compute_crc8(uint8_t *p_buf, uint8_t buf_size)
Computes the CRC checksum for a data buffer.
Definition: ad7124.c:442
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:812
#define AD7124_COMM_REG_RA(x)
Definition: ad7124.h:134
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:422
#define AD7124_CHMAP_REG_SETUP_SEL_MSK
Definition: ad7124.h:275
ad7124_power_mode
Power modes.
Definition: ad7124.h:401
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:290
@ AD7124_AIN3
Definition: ad7124.h:321
#define AD7124_POST_RESET_DELAY
Definition: ad7124.c:49
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:174
float ad7124_get_odr(struct ad7124_dev *dev, int16_t chn_num)
Calculate ODR of the device.
Definition: ad7124.c:602
@ AD7124_Channel_13
Definition: ad7124.h:439
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:52
int32_t ad7124_fclk_get(struct ad7124_dev *dev, float *f_clk)
Get the AD7124 reference clock.
Definition: ad7124.c:513
#define AD7124_ERR_REG_SPI_IGNORE_ERR
Definition: ad7124.h:217
@ AD7124_Channel_15
Definition: ad7124.h:441
@ AD7124_AIN14
Definition: ad7124.h:332
bool is_synchronous
Definition: iio_types.h:234
int32_t rw
Definition: ad7124.h:412
ad7124_device_type
Definition: ad7124.h:291
#define AD7124_CFG_REG_AIN_BUFP
Definition: ad7124.h:260
@ AD7124_Channel_9
Definition: ad7124.h:435
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:221
@ AD7124_AVDD_AVSS_M
Definition: ad7124.h:339
#define AD7124_ID_REG
Definition: ad7124.h:78
@ AD7124_AIN4
Definition: ad7124.h:322
@ AD7124_AIN10
Definition: ad7124.h:328
int32_t size
Definition: ad7124.h:411
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:197
int ad7124_set_channel_status(struct ad7124_dev *device, uint8_t chn_no, bool channel_status)
Definition: ad7124.c:744
@ AD7124_Gain_5
Definition: ad7124.h:471
@ AD7124_Channel_14
Definition: ad7124.h:440
struct ad7124_st_reg * regs
Definition: ad7124.h:485
@ AD7124_Status
Definition: ad7124.h:417
int16_t spi_rdy_poll_cnt
Definition: ad7124.h:488
#define AD7124_CRC8_POLYNOMIAL_REPRESENTATION
Definition: ad7124.h:272
#define AD7124_STATUS_REG
Definition: ad7124.h:73
@ AD7124_Filter_0
Definition: ad7124.h:450
int ad7124_set_polarity(struct ad7124_dev *device, bool bipolar, uint8_t setup_id)
Set Polarity.
Definition: ad7124.c:839
#define AD7124_ADC_CTRL_REG_DATA_STATUS
Definition: ad7124.h:145
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:60
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:244
@ AD7124_Config_3
Definition: ad7124.h:445
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:326
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:422
@ AD7124_AIN2
Definition: ad7124.h:320
@ AD7124_Config_5
Definition: ad7124.h:447
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
int32_t ad7124_set_odr(struct ad7124_dev *dev, float odr, int16_t chn_no)
Set ODR of the device.
Definition: ad7124.c:651
@ AVDD_AVSS
Definition: ad7124.h:381
@ AD7124_IN_ZERO_SCALE_OFF
Definition: ad7124.h:306