no-OS
Loading...
Searching...
No Matches
ad405x.h
Go to the documentation of this file.
1/***************************************************************************/
35
36#ifndef __AD405X_H__
37#define __AD405X_H__
38
39#include <stdint.h>
40#include "no_os_util.h"
41#include "no_os_i3c.h"
42#include "no_os_spi.h"
43#include "no_os_gpio.h"
44
45/* Buffer set to ad405x_set_threshold() required size */
46#define AD405X_BUFF_SIZE 7
47
48/* SPI commands */
49#define AD405X_SPI_READ NO_OS_BIT(7)
50
51/* AD405X Register Map */
52#define AD405X_REG_INTF_CONFIG_A 0x00
53#define AD405X_REG_DEVICE_CONFIG 0x02
54#define AD405X_REG_PROD_ID_0 0x04
55#define AD405X_REG_PROD_ID_1 0x05
56#define AD405X_REG_SCRATCH_PAD 0x0A
57#define AD405X_REG_VENDOR_L 0x0C
58#define AD405X_REG_VENDOR_H 0x0D
59#define AD405X_REG_STREAM_MODE 0x0E
60#define AD405X_REG_INTF_STATUS 0x11
61#define AD405X_REG_ADC_MODES 0x21
62#define AD405X_REG_ADC_CONFIG 0x22
63#define AD405X_REG_AVG_CONFIG 0x23
64#define AD405X_REG_GPIO_CONFIG 0x24
65#define AD405X_REG_INTR_CONFIG 0x25
66#define AD405X_REG_CHOP_CONFIG 0x26
67#define AD405X_REG_TIMER_CONFIG 0x27
68#define AD405X_REG_MAX_THRESH_REG(x) (0x28 + x)
69#define AD405X_REG_MIN_THRESH_REG(x) (0x30 + x)
70#define AD405X_REG_MAX_HYST_REG 0x2C
71#define AD405X_REG_MIN_HYST_REG 0x2D
72#define AD405X_REG_MON_VAL_REG(x) (0x2E + x)
73#define AD405X_REG_FUSE_CRC 0x40
74#define AD405X_REG_DEVICE_STATUS 0x41
75#define AD405X_REG_MAX_INTR(x) (0x42 + x)
76#define AD405X_REG_MIN_INTR(x) (0x43 + x)
77/* AD405X SPI Only Register Map */
78#define AD405X_REG_MODE_SET 0x20
79/* AD405X I3C Only Register Map */
80#define AD405X_REG_INTF_IBI_EN 0x30
81#define AD405X_REG_ADC_IBI_EN 0x31
82#define AD405X_REG_TGT_ADDR 0x46
83#define AD405X_REG_GRP_ADDR 0x47
84#define AD405X_REG_IBI_STATUS 0x48
85#define AD405X_REG_CONV_READ(x) (0x50 + x)
86#define AD405X_REG_CONV_TRIGGER(x) (0x54 + x)
87#define AD405X_REG_CONV_AUTO 0x58
88
89/* AD405X_REG_INTF_STATUS/AD405X_REG_STATUS Bit definition */
90#define AD405X_STATUS_FLAGS_MSK(x) (0x2F & x)
91#define AD405X_INTF_STATUS_FLAGS_MSK(x) (0x9F & x)
92
93/* AD405X_REG_ADC_MODES Bit definition */
94#define AD405X_ADC_DATA_FORMAT_MSK NO_OS_BIT(7)
95#define AD405X_ADC_MODES_MSK NO_OS_GENMASK(1, 0)
96#define AD405X_ADC_MODE 0x00
97#define AD405X_BURST_AVERAGING_MODE NO_OS_BIT(0)
98#define AD405X_AVERAGING_MODE NO_OS_BIT(1)
99#define AD405X_PERSISTENT_AUTO_MODE NO_OS_GENMASK(1, 0)
100#define AD405X_NONPERSISTENT_AUTO_MODE NO_OS_GENMASK(1, 0)
101
102/* AD405X_REG_MODE_SET Bit definition */
103#define AD405X_ENTER_ADC_MODE_MSK NO_OS_BIT(0)
104#define AD405X_ENTER_ADC_MODE NO_OS_BIT(0)
105#define AD405X_ENTER_AUTO_MODE_MSK NO_OS_BIT(2)
106#define AD405X_ENTER_AUTO_MODE NO_OS_BIT(2)
107
108/* AD405X_REG_TIMER_CONFIG Bit Definitions */
109#define AD405X_FS_BURST_AUTO_MSK NO_OS_GENMASK(7, 4)
110#define AD405X_TIMER_PWR_ON_MSK NO_OS_GENMASK(3, 0)
111
112/* AD405X_REG_AVG_CONFIG Bit Definitions */
113#define AD405X_AVG_WIN_LEN_MSK NO_OS_GENMASK(3, 0)
114
115/* AD405X_REG_GPIO_CONFIG Bit Definitions */
116#define AD405X_DEV_EN_POL_MSK NO_OS_BIT(7)
117#define AD405X_GP1_MODE_MSK NO_OS_GENMASK(6, 4)
118#define AD405X_INVERT_ON_CHOP_MSK NO_OS_BIT(3)
119#define AD405X_GP0_MODE_MSK NO_OS_GENMASK(2, 0)
120
121#define AD405X_CLEAR_RESET_FLAG NO_OS_BIT(6)
122#define AD405X_CLEAR_NOT_RDY_FLAG NO_OS_BIT(7)
123
124/* Register reset values */
125#define AD405X_PROD_ID_0_RESET(x) (0x70 + x)
126#define AD405X_PROD_ID_1_RESET 0x00
127#define AD405X_VENDOR_SPI_L_RESET 0x56
128#define AD405X_VENDOR_SPI_H_RESET 0x04
129#define AD405X_VENDOR_I3C_L_RESET 0x77
130#define AD405X_VENDOR_I3C_H_RESET 0x01
131
132/* Reset code for AD405X_REG_INTF_CONFIG_A */
133#define AD405X_RESET_CODE 0x81
134
135#define AD405X_I3C_BCR 0x26
136#define AD405X_I3C_DCR 0x00
137/* Used on the common data */
138#define AD405X_I3C_PID_ 0x02ee00700000
139#define AD405X_I3C_PID_INSTANCE_ID(x) (((uint64_t)x & 0x7) << 12)
140#define AD405X_I3C_PID(x) (AD405X_I3C_PID_ | AD405X_I3C_PID_INSTANCE_ID(x))
141
142/* Getter for AD405X_REG_INTF_STATUS flags */
143#define AD405X_ISTS_NOT_RDY_ERROR(x) (((x) >> 7) & 1)
144/* Getters for AD405X_REG_STATUS flags */
145#define AD405X_STS_DEVICE_RESET(x) (((x) >> 6) & 1)
146#define AD405X_STS_DEVICE_READY(x) (((x) >> 7) & 1)
147/* Setters for AD405X_REG_*_IBI_EN flags */
148#define AD405X_IBI_STS_EN(x) ((x) & 1)
149#define AD405X_IBI_EN_MIN_SET(x) (((x) & 1) << 8)
150#define AD405X_IBI_EN_MAX_SET(x) (((x) & 1) << 9)
151#define AD405X_IBI_EN_CONV_TRIGGER(x) (((x) & 1) << 10)
152/* Getter for AD405X_REG_*_IBI_EN flags */
153#define AD405X_IBI_EN_CONV_TRIGGER_GET(x) (((x) >> 10) & 1)
154
164
170
178
184 /* Device Communication initialization structure: either SPI or I3C */
186 /* Device Communication type: AD405X_SPI_COMM, AD405X_I3C_COMM */
188 /* Device type */
196};
197
200 /* I3C Descriptor */
202 /* SPI Descriptor */
204};
205
215
235
255
271
277
283
295
301
307
314 /* Max threshold hyst */
316 /* Min threshold hyst */
318 /* Min threshold value */
320 /* Max threshold value */
322};
323
329 /* Current address */
330 uint8_t addr_ptr;
331 /* IBI Enable Flags */
332 uint16_t ibi_en_mask;
333 /* IBI Status Flags */
334 uint8_t ibi_sts;
335};
336
342 /* CNV GPIO descriptor */
344};
345
353
359 /* Device type */
361 /* Device communication descriptor */
363 /* Device communication type: AD405X_SPI_COMM, AD405X_I3C_COMM */
365 /* Mode of operations */
367 /* GPIO0 GPIO descriptor */
369 /* GPIO1 GPIO descriptor */
371 /* Sample rate for Burst and Autonomous Modes */
373 /* Averaging filter window length */
375 /* DEV_EN signal polarity */
377 /* DEV_EN power-on timer setting */
379 /* GP1 mode */
381 /* INVERT_ON_CHOP setting */
383 /* GP0 mode */
385 /* Output data format */
387 /* Variants extra structure */
389};
390
392int ad405x_init(struct ad405x_dev **device,
394
396int ad405x_remove(struct ad405x_dev *dev);
397
399int ad405x_soft_reset(struct ad405x_dev *dev);
400
402int ad405x_clear_reset_flags(struct ad405x_dev *dev);
403
405int ad405x_read(struct ad405x_dev *dev, uint8_t addr,
406 uint8_t *data, uint8_t size);
407
409int ad405x_write(struct ad405x_dev *dev, uint8_t addr,
410 uint8_t *data, uint8_t size);
411
413int ad405x_get_adc(struct ad405x_dev *dev, int32_t *value);
414
416int ad405x_get_raw(struct ad405x_dev *dev, uint32_t *raw);
417
419int ad405x_get_sts_reg(struct ad405x_dev *dev,
420 uint8_t *status_flags,
421 uint8_t *intf_status_flags);
422
424int ad405x_clear_sts_reg(struct ad405x_dev *dev,
425 uint8_t *status_flags,
426 uint8_t *intf_status_flags);
427
429int ad405x_test_scratch_pad(struct ad405x_dev *dev);
430
432int ad405x_set_adc_mode(struct ad405x_dev *dev);
433
436
439
442
445 enum ad405x_operation_mode mode);
446
448int ad405x_set_sample_rate(struct ad405x_dev *dev,
449 enum ad405x_sample_rate rate);
450
453
456 enum ad405x_avg_filter_l length);
457
460
463 enum ad405x_dev_en_polarity polarity);
464
467
471
474 struct ad405x_dev *dev);
475
478
481
484 struct ad405x_dev *dev);
485
487int ad405x_set_gp_mode(struct ad405x_dev *dev,
488 enum ad405x_gp_select gp, enum ad405x_gp_mode mode);
489
492 enum ad405x_gp_select gp);
493
495int ad405x_set_data_format(struct ad405x_dev *dev,
496 enum ad405x_out_data_format data_format);
497
500
503
506
508int ad405x_set_threshold(struct ad405x_dev *dev,
509 struct ad405x_thresh *thresh);
510
512int ad405x_get_threshold(struct ad405x_dev *dev,
513 struct ad405x_thresh *thresh);
514
516int ad405x_exit_command(struct ad405x_dev *dev);
517
519int ad405x_trigger_adc_conv(struct ad405x_dev *dev);
520
523
525int ad405x_set_config_mode(struct ad405x_dev *dev,
526 enum ad405x_operation_mode *mode);
527
529int ad405x_test_common_ccc(struct ad405x_dev *dev);
530
532int ad405x_pool_ibi_config(struct ad405x_dev *dev);
533
535int ad405x_set_ibi_enable(struct ad405x_dev *dev,
536 bool enable);
537
539int ad405x_set_ibi_mask(struct ad405x_dev *dev,
540 uint16_t en_mask);
541
542#endif /* __AD405X_H__ */
int ad405x_set_sample_rate(struct ad405x_dev *dev, enum ad405x_sample_rate rate)
Select sample rate for Burst and Autonomous Modes.
Definition ad405x.c:651
enum ad405x_out_data_format ad405x_get_data_format(struct ad405x_dev *dev)
Get output data format setting.
Definition ad405x.c:959
int ad405x_set_operation_mode(struct ad405x_dev *dev, enum ad405x_operation_mode mode)
Set operation mode.
Definition ad405x.c:608
int ad405x_init(struct ad405x_dev **device, struct ad405x_init_param init_param)
Initialize the communication device.
Definition ad405x.c:76
int ad405x_get_sts_reg(struct ad405x_dev *dev, uint8_t *status_flags, uint8_t *intf_status_flags)
Read the interface status and status registers.
Definition ad405x.c:476
int ad405x_disable_invert_on_chop(struct ad405x_dev *dev)
Disable INVERT_ON_CHOP.
Definition ad405x.c:818
ad405x_dev_en_polarity
Definition ad405x.h:273
@ AD405X_DEV_EN_ACTIVE_LOW
Definition ad405x.h:274
@ AD405X_DEV_EN_ACTIVE_HIGH
Definition ad405x.h:275
int ad405x_remove(struct ad405x_dev *dev)
Remove device and free the resources allocated by ad405x_init().
Definition ad405x.c:181
ad405x_type
Definition ad405x.h:156
@ ID_AD4052
Definition ad405x.h:158
@ ID_AD4056
Definition ad405x.h:159
@ ID_AD4062
Definition ad405x.h:162
@ ID_AD4050
Definition ad405x.h:157
@ ID_AD4060
Definition ad405x.h:161
@ ID_AD4058
Definition ad405x.h:160
ad405x_gp_select
Definition ad405x.h:297
@ AD405X_GP_0
Definition ad405x.h:298
@ AD405X_GP_1
Definition ad405x.h:299
int ad405x_soft_reset(struct ad405x_dev *dev)
Soft reset of the device. For I3C, the I3C peripheral is not reset, keeping its dynamic address and a...
Definition ad405x.c:217
int ad405x_set_burst_averaging_mode(struct ad405x_dev *dev)
Enter Burst Averaging Mode.
Definition ad405x.c:577
enum ad405x_sample_rate ad405x_get_sample_rate(struct ad405x_dev *dev)
Get sample rate for Burst and Autonomous Modes.
Definition ad405x.c:670
ad405x_out_data_format
Definition ad405x.h:303
@ AD405X_TWOS_COMPLEMENT
Definition ad405x.h:305
@ AD405X_STRAIGHT_BINARY
Definition ad405x.h:304
ad405x_sample_rate
Definition ad405x.h:217
@ AD405X_333_SPS
Definition ad405x.h:227
@ AD405X_333_KSPS
Definition ad405x.h:220
@ AD405X_10_KSPS
Definition ad405x.h:223
@ AD405X_3_KSPS
Definition ad405x.h:224
@ AD405X_1_MSPS
Definition ad405x.h:219
@ AD405X_200_SPS
Definition ad405x.h:229
@ AD405X_500_SPS
Definition ad405x.h:226
@ AD405X_125_SPS
Definition ad405x.h:232
@ AD405X_1_KSPS
Definition ad405x.h:225
@ AD405X_166_SPS
Definition ad405x.h:230
@ AD405X_250_SPS
Definition ad405x.h:228
@ AD405X_2_MSPS
Definition ad405x.h:218
@ AD405X_100_KSPS
Definition ad405x.h:221
@ AD405X_140_SPS
Definition ad405x.h:231
@ AD405X_111_SPS
Definition ad405x.h:233
@ AD405X_33_KSPS
Definition ad405x.h:222
ad405x_comm_type
Definition ad405x.h:166
@ AD405X_SPI_COMM
Definition ad405x.h:167
@ AD405X_I3C_COMM
Definition ad405x.h:168
enum ad405x_gp_mode ad405x_get_gp_mode(struct ad405x_dev *dev, enum ad405x_gp_select gp)
Get GP mode setting.
Definition ad405x.c:896
ad405x_dev_en_timer_pwr_on
Definition ad405x.h:237
@ AD405X_DEV_EN_TIME_5_MS
Definition ad405x.h:249
@ AD405X_DEV_EN_TIME_8_MS
Definition ad405x.h:252
@ AD405X_DEV_EN_TIME_250_NS
Definition ad405x.h:238
@ AD405X_DEV_EN_TIME_1_MS
Definition ad405x.h:245
@ AD405X_DEV_EN_TIME_3_3_US
Definition ad405x.h:240
@ AD405X_DEV_EN_TIME_7_MS
Definition ad405x.h:251
@ AD405X_DEV_EN_TIME_9_MS
Definition ad405x.h:253
@ AD405X_DEV_EN_TIME_10_US
Definition ad405x.h:241
@ AD405X_DEV_EN_TIME_2_MS
Definition ad405x.h:246
@ AD405X_DEV_EN_TIME_6_MS
Definition ad405x.h:250
@ AD405X_DEV_EN_TIME_4_MS
Definition ad405x.h:248
@ AD405X_DEV_EN_TIME_100_US
Definition ad405x.h:243
@ AD405X_DEV_EN_TIME_33_US
Definition ad405x.h:242
@ AD405X_DEV_EN_TIME_1_US
Definition ad405x.h:239
@ AD405X_DEV_EN_TIME_3_MS
Definition ad405x.h:247
@ AD405X_DEV_EN_TIME_333_US
Definition ad405x.h:244
int ad405x_test_scratch_pad(struct ad405x_dev *dev)
Test the scratch pad register. A pseudo-random value to test against is defined at compile time.
Definition ad405x.c:541
int ad405x_exit_command(struct ad405x_dev *dev)
Send EXIT command (SPI only).
Definition ad405x.c:1026
int ad405x_set_data_format_twos_complement(struct ad405x_dev *dev)
Set ADC output data format as two's complement.
Definition ad405x.c:949
int ad405x_set_dev_en_timer_pwr_on(struct ad405x_dev *dev, enum ad405x_dev_en_timer_pwr_on time)
Set DEV_EN TIMER_PWR_ON.
Definition ad405x.c:766
ad405x_invert_on_chop
Definition ad405x.h:279
@ AD405X_INVERT_ON_CHOP_ENABLED
Definition ad405x.h:281
@ AD405X_INVERT_ON_CHOP_DISABLED
Definition ad405x.h:280
int ad405x_clear_reset_flags(struct ad405x_dev *dev)
Clear reset flags.
Definition ad405x.c:280
int ad405x_set_persistent_auto_mode(struct ad405x_dev *dev)
Enter Persistent Auto Mode.
Definition ad405x.c:587
int ad405x_set_nonpersistent_auto_mode(struct ad405x_dev *dev)
Enter Non-Persistent Auto Mode.
Definition ad405x.c:597
int ad405x_set_dev_en_polarity(struct ad405x_dev *dev, enum ad405x_dev_en_polarity polarity)
Set DEV_EN signal polarity.
Definition ad405x.c:732
int ad405x_test_common_ccc(struct ad405x_dev *dev)
Test the GETBCR, GETDCR, GETPID, AND GETSTATUS CCCs (I3C only). Compare received BCR and DCR against ...
Definition ad405x.c:1117
int ad405x_get_adc(struct ad405x_dev *dev, int32_t *value)
Get formatted ADC reading. If gp0 is set as data ready, will be used to delay the acquisition until t...
Definition ad405x.c:390
ad405x_avg_filter_l
Definition ad405x.h:257
@ AD405X_LENGTH_2
Definition ad405x.h:258
@ AD405X_LENGTH_1024
Definition ad405x.h:267
@ AD405X_LENGTH_8
Definition ad405x.h:260
@ AD405X_LENGTH_64
Definition ad405x.h:263
@ AD405X_LENGTH_32
Definition ad405x.h:262
@ AD405X_LENGTH_4096
Definition ad405x.h:269
@ AD405X_LENGTH_128
Definition ad405x.h:264
@ AD405X_LENGTH_512
Definition ad405x.h:266
@ AD405X_LENGTH_256
Definition ad405x.h:265
@ AD405X_LENGTH_4
Definition ad405x.h:259
@ AD405X_LENGTH_16
Definition ad405x.h:261
@ AD405X_LENGTH_2048
Definition ad405x.h:268
int ad405x_trigger_adc_conv(struct ad405x_dev *dev)
Trigger an ADC conversion (SPI only). Toggle the CNV pin to start the conversion.
Definition ad405x.c:1053
int ad405x_enable_invert_on_chop(struct ad405x_dev *dev)
Enable INVERT_ON_CHOP.
Definition ad405x.c:799
int ad405x_read(struct ad405x_dev *dev, uint8_t addr, uint8_t *data, uint8_t size)
Read device registers.
Definition ad405x.c:317
int ad405x_set_gp_mode(struct ad405x_dev *dev, enum ad405x_gp_select gp, enum ad405x_gp_mode mode)
Set GP mode.
Definition ad405x.c:853
int ad405x_pool_ibi_config(struct ad405x_dev *dev)
Pool IBI status and config registers (I3C only). Values are updated on the device descriptor.
Definition ad405x.c:1156
enum ad405x_dev_en_timer_pwr_on ad405x_get_dev_en_timer_pwr_on(struct ad405x_dev *dev)
Get DEV_EN TIMER_PWR_ON.
Definition ad405x.c:785
ad405x_operation_mode
Definition ad405x.h:207
@ AD405X_PERSISTENT_AUTO_MODE_OP
Definition ad405x.h:212
@ AD405X_ADC_MODE_OP
Definition ad405x.h:208
@ AD405X_CONFIG_MODE_OP
Definition ad405x.h:211
@ AD405X_NONPERSISTENT_AUTO_MODE_OP
Definition ad405x.h:213
@ AD405X_AVERAGING_MODE_OP
Definition ad405x.h:210
@ AD405X_BURST_AVERAGING_MODE_OP
Definition ad405x.h:209
enum ad405x_dev_en_polarity ad405x_get_dev_en_polarity(struct ad405x_dev *dev)
Get DEV_EN signal polarity.
Definition ad405x.c:751
int ad405x_set_averaging_mode(struct ad405x_dev *dev)
Enter Averaging Mode (SPI only).
Definition ad405x.c:1084
int ad405x_set_data_format_straight_binary(struct ad405x_dev *dev)
Set ADC output data format as straight binary.
Definition ad405x.c:939
int ad405x_set_ibi_mask(struct ad405x_dev *dev, uint16_t en_mask)
Set IBI mask (I3C only).
Definition ad405x.c:1221
ad405x_gp_mode
Definition ad405x.h:285
@ AD405X_GP_MODE_HIGH
Definition ad405x.h:292
@ AD405X_GP_MODE_LOW
Definition ad405x.h:291
@ AD405X_GP_MODE_DEV_EN
Definition ad405x.h:289
@ AD405X_GP_MODE_CHOP
Definition ad405x.h:290
@ AD405X_GP_MODE_INTR
Definition ad405x.h:287
@ AD405X_GP_MODE_DRDY
Definition ad405x.h:288
@ AD405X_GP_MODE_HIGH_Z
Definition ad405x.h:286
@ AD405X_GP_MODE_DEV_RDY
Definition ad405x.h:293
int ad405x_get_threshold(struct ad405x_dev *dev, struct ad405x_thresh *thresh)
Get threshold configuration.
Definition ad405x.c:1003
int ad405x_write(struct ad405x_dev *dev, uint8_t addr, uint8_t *data, uint8_t size)
Write registers.
Definition ad405x.c:355
int ad405x_get_raw(struct ad405x_dev *dev, uint32_t *raw)
Get raw ADC reading.
Definition ad405x.c:429
int ad405x_set_data_format(struct ad405x_dev *dev, enum ad405x_out_data_format data_format)
Set output data format.
Definition ad405x.c:918
int ad405x_set_avg_filter_length(struct ad405x_dev *dev, enum ad405x_avg_filter_l length)
Set averaging filter window length.
Definition ad405x.c:684
int ad405x_set_threshold(struct ad405x_dev *dev, struct ad405x_thresh *thresh)
Set threshold configuration. A simple memory swap puts the ad405x_thresh strict into format to write ...
Definition ad405x.c:976
int ad405x_set_config_mode(struct ad405x_dev *dev, enum ad405x_operation_mode *mode)
Enter Configuration Mode (SPI only).
Definition ad405x.c:1098
enum ad405x_invert_on_chop ad405x_get_invert_on_chop_state(struct ad405x_dev *dev)
Get INVERT_ON_CHOP setting.
Definition ad405x.c:837
enum ad405x_avg_filter_l ad405x_get_avg_filter_length(struct ad405x_dev *dev)
Get averaging filter window length.
Definition ad405x.c:718
int ad405x_set_ibi_enable(struct ad405x_dev *dev, bool enable)
Enable/disable IBI (I3C only).
Definition ad405x.c:1190
int ad405x_clear_sts_reg(struct ad405x_dev *dev, uint8_t *status_flags, uint8_t *intf_status_flags)
Write to clear the interface status and status registers.
Definition ad405x.c:508
int ad405x_set_adc_mode(struct ad405x_dev *dev)
Enter ADC Mode.
Definition ad405x.c:567
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
Header file of GPIO Interface.
Header file of I3C Interface.
Header file of SPI Interface.
Header file of utility functions.
AD405X Device structure.
Definition ad405x.h:358
struct no_os_gpio_desc * gpio_gpio1
Definition ad405x.h:370
enum ad405x_type dev_type
Definition ad405x.h:360
enum ad405x_avg_filter_l filter_length
Definition ad405x.h:374
enum ad405x_sample_rate rate
Definition ad405x.h:372
enum ad405x_gp_mode gp0_mode
Definition ad405x.h:384
enum ad405x_dev_en_timer_pwr_on timer_pwr_on
Definition ad405x.h:378
enum ad405x_gp_mode gp1_mode
Definition ad405x.h:380
enum ad405x_out_data_format data_format
Definition ad405x.h:386
enum ad405x_comm_type comm_type
Definition ad405x.h:364
enum ad405x_operation_mode operation_mode
Definition ad405x.h:366
union ad405x_comm_desc com_desc
Definition ad405x.h:362
struct no_os_gpio_desc * gpio_gpio0
Definition ad405x.h:368
enum ad405x_invert_on_chop invert_on_chop_status
Definition ad405x.h:382
enum ad405x_dev_en_polarity polarity
Definition ad405x.h:376
union ad405x_extra extra
Definition ad405x.h:388
AD405X Device I3C structure.
Definition ad405x.h:328
uint8_t addr_ptr
Definition ad405x.h:330
uint8_t ibi_sts
Definition ad405x.h:334
uint16_t ibi_en_mask
Definition ad405x.h:332
Structure holding the parameters for AD405X device initialization.
Definition ad405x.h:183
enum ad405x_type dev_type
Definition ad405x.h:189
struct no_os_gpio_init_param * gpio_cnv
Definition ad405x.h:191
struct no_os_gpio_init_param * gpio_gpio1
Definition ad405x.h:195
union ad405x_comm_init_param comm_init
Definition ad405x.h:185
enum ad405x_comm_type comm_type
Definition ad405x.h:187
struct no_os_gpio_init_param * gpio_gpio0
Definition ad405x.h:193
AD405X Device SPI structure.
Definition ad405x.h:341
struct no_os_gpio_desc * gpio_cnv
Definition ad405x.h:343
AD405X threshold configuration values. Entry positions matter.
Definition ad405x.h:313
uint8_t max_thresh_hyst
Definition ad405x.h:315
uint16_t min_thresh_val
Definition ad405x.h:319
uint16_t max_thresh_val
Definition ad405x.h:321
uint8_t min_thresh_hyst
Definition ad405x.h:317
Definition ad9361_util.h:63
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 I3C device descriptor.
Definition no_os_i3c.h:282
Structure holding the parameters for I3C initialization. Works like a device tree,...
Definition no_os_i3c.h:265
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Definition ad405x.h:199
struct no_os_spi_desc * spi_desc
Definition ad405x.h:203
struct no_os_i3c_desc * i3c_desc
Definition ad405x.h:201
Definition ad405x.h:172
struct no_os_spi_init_param * spi_init
Definition ad405x.h:176
struct no_os_i3c_init_param * i3c_init
Definition ad405x.h:174
Definition ad405x.h:347
struct ad405x_i3c_extra i3c_extra
Definition ad405x.h:349
struct ad405x_spi_extra spi_extra
Definition ad405x.h:351