Go to the documentation of this file.
56 #define AD738X_REG_NOP 0x00
57 #define AD738X_REG_CONFIG1 0x01
58 #define AD738X_REG_CONFIG2 0x02
59 #define AD738X_REG_ALERT 0x03
60 #define AD738X_REG_ALERT_LOW_TH 0x04
61 #define AD738X_REG_ALERT_HIGH_TH 0x05
66 #define AD738X_CONFIG1_OS_MODE_MSK NO_OS_BIT(9)
67 #define AD738X_CONFIG1_OS_MODE(x) (((x) & 0x1) << 9)
68 #define AD738X_CONFIG1_OSR_MSK NO_OS_GENMASK(8, 6)
69 #define AD738X_CONFIG1_OSR(x) (((x) & 0x7) << 6)
70 #define AD738X_CONFIG1_CRC_W_MSK NO_OS_BIT(5)
71 #define AD738X_CONFIG1_CRC_W(x) (((x) & 0x1) << 5)
72 #define AD738X_CONFIG1_CRC_R_MSK NO_OS_BIT(4)
73 #define AD738X_CONFIG1_CRC_R(x) (((x) & 0x1) << 4)
74 #define AD738X_CONFIG1_ALERTEN_MSK NO_OS_BIT(3)
75 #define AD738X_CONFIG1_ALERTEN(x) (((x) & 0x1) << 3)
76 #define AD738X_CONFIG1_RES_MSK NO_OS_BIT(2)
77 #define AD738X_CONFIG1_RES(x) (((x) & 0x1) << 2)
78 #define AD738X_CONFIG1_REFSEL_MSK NO_OS_BIT(1)
79 #define AD738X_CONFIG1_REFSEL(x) (((x) & 0x1) << 1)
80 #define AD738X_CONFIG1_PMODE_MSK NO_OS_BIT(0)
81 #define AD738X_CONFIG1_PMODE(x) (((x) & 0x1) << 0)
86 #define AD738X_CONFIG2_SDO2_MSK NO_OS_BIT(8)
87 #define AD738X_CONFIG2_SDO2(x) (((x) & 0x1) << 8)
88 #define AD738X_CONFIG2_SDO4_MSK NO_OS_GENMASK(9, 8)
89 #define AD738X_CONFIG2_SDO4(x) (((x) & 0x3) << 8)
90 #define AD738X_CONFIG2_RESET_MSK NO_OS_GENMASK(7, 0)
91 #define AD738X_CONFIG2_RESET(x) (((x) & 0xFF) << 0)
96 #define AD738X_ALERT_LOW_MSK NO_OS_GENMASK(11, 0)
97 #define AD738X_ALERT_LOW(x) (((x) & 0xFFF) << 0)
102 #define AD738X_ALERT_HIGH_MSK NO_OS_GENMASK(11, 0)
103 #define AD738X_ALERT_HIGH(x) (((x) & 0xFFF) << 0)
106 #define AD738X_REG_WRITE(x) ((1 << 7) | ((x & 0x7) << 4))
108 #define AD738X_REG_READ(x) ((x & 0x7) << 4)
int32_t ad738x_init(struct ad738x_dev **device, struct ad738x_init_param *init_param)
Definition: ad738x.c:318
Definition: ad77681.h:496
@ OSR_X32
Definition: ad738x.h:129
uint32_t no_commands
Definition: spi_engine.h:167
enum ad738x_ref_sel ref_sel
Definition: ad738x.h:172
#define AD738X_CONFIG1_OSR(x)
Definition: ad738x.h:69
int32_t ad738x_oversampling_config(struct ad738x_dev *dev, enum ad738x_os_mode os_mode, enum ad738x_os_ratio os_ratio, enum ad738x_resolution res)
Definition: ad738x.c:207
void(* dcache_invalidate_range)(uint32_t address, uint32_t bytes_count)
Definition: ad738x.h:162
#define AD738X_REG_CONFIG2
Definition: ad738x.h:58
#define AD738X_CONFIG1_PMODE_MSK
Definition: ad738x.h:80
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:82
#define CS_LOW
Definition: spi_engine.h:79
int32_t ad738x_reset(struct ad738x_dev *dev, enum ad738x_reset_type reset)
Definition: ad738x.c:179
@ FULL_PWDM
Definition: ad738x.h:144
int32_t spi_engine_offload_init(struct no_os_spi_desc *desc, const struct spi_engine_offload_init_param *param)
Initialize the SPI engine's offload module.
Definition: spi_engine.c:757
#define AD738X_CONFIG1_OS_MODE_MSK
Definition: ad738x.h:66
@ NORMAL_OS_MODE
Definition: ad738x.h:119
ad738x_os_mode
Definition: ad738x.h:118
#define AD738X_CONFIG2_RESET(x)
Definition: ad738x.h:91
int32_t ad738x_reference_sel(struct ad738x_dev *dev, enum ad738x_ref_sel ref_sel)
Definition: ad738x.c:261
uint32_t * commands_data
Definition: spi_engine.h:169
Header file of Delay functions.
ad738x_conv_mode
Definition: ad738x.h:113
ad738x_reset_type
Definition: ad738x.h:137
enum ad738x_conv_mode conv_mode
Definition: ad738x.h:158
no_os_spi_desc * spi_desc
Definition: ad738x.h:154
#define AD738X_CONFIG1_OS_MODE(x)
Definition: ad738x.h:67
#define AD738X_REG_CONFIG1
Definition: ad738x.h:57
int32_t ad738x_reference_sel(struct ad738x_dev *dev, enum ad738x_ref_sel ref_sel)
Definition: ad738x.c:261
Structure representing an offload message.
Definition: spi_engine.h:160
Definition: ad9361_util.h:75
int32_t ad738x_spi_write_mask(struct ad738x_dev *dev, uint8_t reg_addr, uint32_t mask, uint16_t data)
Definition: ad738x.c:105
#define AD738X_CONFIG1_REFSEL_MSK
Definition: ad738x.h:78
int32_t ad738x_spi_single_conversion(struct ad738x_dev *dev, uint16_t *adc_data)
Definition: ad738x.c:127
int32_t ad738x_spi_reg_read(struct ad738x_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
Definition: ad738x.c:62
#define NO_OS_ARRAY_SIZE(x)
Definition: no_os_util.h:53
@ OSR_X16
Definition: ad738x.h:128
#define AD738X_CONFIG1_PMODE(x)
Definition: ad738x.h:81
@ EXT_REF
Definition: ad738x.h:149
#define WRITE_READ(no_bytes)
Definition: spi_engine.h:71
int32_t ad738x_init(struct ad738x_dev **device, struct ad738x_init_param *init_param)
Definition: ad738x.c:318
@ NORMAL_PWDM
Definition: ad738x.h:143
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: delay.c:130
Header file for AD738x Driver.
#define CS_HIGH
Definition: spi_engine.h:78
#define AD738X_CONFIG1_RES_MSK
Definition: ad738x.h:76
@ OSR_X4
Definition: ad738x.h:126
@ SOFT_RESET
Definition: ad738x.h:138
#define AD738X_CONFIG1_OSR_MSK
Definition: ad738x.h:68
no_os_spi_init_param * spi_param
Definition: ad738x.h:167
@ RES_18_BIT
Definition: ad738x.h:134
#define AD738X_CONFIG2_SDO2(x)
Definition: ad738x.h:87
@ HARD_RESET
Definition: ad738x.h:139
struct spi_engine_offload_init_param * offload_init_param
Definition: ad7616.h:168
#define AD738X_CONFIG1_REFSEL(x)
Definition: ad738x.h:79
struct spi_engine_offload_init_param * offload_init_param
Definition: ad738x.h:156
int32_t ad738x_spi_reg_write(struct ad738x_dev *dev, uint8_t reg_addr, uint16_t reg_data)
Definition: ad738x.c:85
@ INT_REF
Definition: ad738x.h:148
@ OSR_X2
Definition: ad738x.h:125
Structure holding SPI descriptor.
Definition: no_os_spi.h:132
void(* dcache_invalidate_range)(uint32_t address, uint32_t bytes_count)
Definition: ad738x.h:174
int32_t ad738x_spi_write_mask(struct ad738x_dev *dev, uint8_t reg_addr, uint32_t mask, uint16_t data)
Definition: ad738x.c:105
int32_t ad738x_read_data(struct ad738x_dev *dev, uint32_t *buf, uint16_t samples)
Read from device. Enter register mode to read/write registers.
Definition: ad738x.c:278
ad738x_ref_sel
Definition: ad738x.h:147
ad738x_pwd_mode
Definition: ad738x.h:142
int32_t ad738x_remove(struct ad738x_dev *dev)
Free the resources allocated by ad738x_init().
Definition: ad738x.c:355
ad738x_os_ratio
Definition: ad738x.h:123
uint32_t * commands
Definition: spi_engine.h:165
#define AD738X_CONFIG2_RESET_MSK
Definition: ad738x.h:90
#define AD738X_CONFIG1_RES(x)
Definition: ad738x.h:77
void(* dcache_invalidate_range)(uint32_t address, uint32_t bytes_count)
Definition: ad7616.h:184
int32_t ad738x_spi_reg_write(struct ad738x_dev *dev, uint8_t reg_addr, uint16_t reg_data)
Definition: ad738x.c:85
@ ONE_WIRE_MODE
Definition: ad738x.h:115
enum ad738x_ref_sel ref_sel
Definition: ad738x.h:159
int32_t ad738x_read_data(struct ad738x_dev *dev, uint32_t *buf, uint16_t samples)
Read from device. Enter register mode to read/write registers.
Definition: ad738x.c:278
#define AD738X_REG_WRITE(x)
Definition: ad738x.h:106
#define AD738X_REG_READ(x)
Definition: ad738x.h:108
int32_t ad738x_oversampling_config(struct ad738x_dev *dev, enum ad738x_os_mode os_mode, enum ad738x_os_ratio os_ratio, enum ad738x_resolution res)
Definition: ad738x.c:207
int32_t ad738x_remove(struct ad738x_dev *dev)
Free the resources allocated by ad738x_init().
Definition: ad738x.c:355
struct spi_engine_offload_init_param * offload_init_param
Definition: ad738x.h:169
#define AD738X_CONFIG2_SDO2_MSK
Definition: ad738x.h:86
@ RES_16_BIT
Definition: ad738x.h:133
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:96
int32_t ad738x_set_conversion_mode(struct ad738x_dev *dev, enum ad738x_conv_mode mode)
Definition: ad738x.c:162
int32_t ad738x_spi_reg_read(struct ad738x_dev *dev, uint8_t reg_addr, uint16_t *reg_data)
Definition: ad738x.c:62
enum ad738x_conv_mode conv_mode
Definition: ad738x.h:171
int32_t spi_engine_offload_transfer(struct no_os_spi_desc *desc, struct spi_engine_offload_message msg, uint32_t no_samples)
Initiate a SPI transfer in offload mode.
Definition: spi_engine.c:803
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:70
int32_t ad738x_power_down_mode(struct ad738x_dev *dev, enum ad738x_pwd_mode pmode)
Definition: ad738x.c:244
@ OSR_DISABLED
Definition: ad738x.h:124
Structure containing the init parameters needed by the offload module.
Definition: spi_engine.h:145
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:51
@ OSR_X8
Definition: ad738x.h:127
Implementation of utility functions.
@ ROLLING_OS_MODE
Definition: ad738x.h:120
enum ad738x_resolution resolution
Definition: ad738x.h:160
int32_t ad738x_set_conversion_mode(struct ad738x_dev *dev, enum ad738x_conv_mode mode)
Definition: ad738x.c:162
@ TWO_WIRE_MODE
Definition: ad738x.h:114
uint32_t rx_addr
Definition: spi_engine.h:173
ad738x_resolution
Definition: ad738x.h:132
int32_t ad738x_spi_single_conversion(struct ad738x_dev *dev, uint16_t *adc_data)
Definition: ad738x.c:127
struct no_os_spi_init_param * spi_param
Definition: ad7616.h:167
int32_t ad738x_power_down_mode(struct ad738x_dev *dev, enum ad738x_pwd_mode pmode)
Definition: ad738x.c:244
int32_t ad738x_reset(struct ad738x_dev *dev, enum ad738x_reset_type reset)
Definition: ad738x.c:179
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:112