44#define AD5754R_MAX_RESOLUTION 16
47#define AD5754R_NUM_CHANNELS 4
50#define AD5754R_REG_DAC 0
51#define AD5754R_REG_OUTPUT_RANGE_SEL 1
52#define AD5754R_REG_PWR_CTRL 2
53#define AD5754R_REG_CONTROL 3
56#define AD5754R_DAC_CH_A_ADDR 0
57#define AD5754R_DAC_CH_B_ADDR 1
58#define AD5754R_DAC_CH_C_ADDR 2
59#define AD5754R_DAC_CH_D_ADDR 3
60#define AD5754R_DAC_CH_ALL_ADDR 4
63#define AD5754R_ADDR_REG_MASK NO_OS_GENMASK(5, 3)
64#define AD5754R_ADDR_REG(x) no_os_field_prep(AD5754R_ADDR_REG_MASK, x)
65#define AD5754R_ADDR_DAC_CH_MASK NO_OS_GENMASK(2, 0)
66#define AD5754R_ADDR_DAC_CH(x) no_os_field_prep(AD5754R_ADDR_DAC_CH_MASK, x)
67#define AD5754R_PREP_INSTR_ADDR(reg, dac_ch) (AD5754R_ADDR_REG(reg) | \
68 AD5754R_ADDR_DAC_CH(dac_ch))
67#define AD5754R_PREP_INSTR_ADDR(reg, dac_ch) (AD5754R_ADDR_REG(reg) | \ …
71#define AD5754R_OUTPUT_RANGE_SEL_MASK NO_OS_GENMASK(2,0)
74#define AD5754R_CTRL_NOP 0
75#define AD5754R_CTRL_TSD_EN(x) no_os_field_prep(NO_OS_BIT(3), x)
76#define AD5754R_CTRL_TSD_EN_MASK NO_OS_BIT(3)
77#define AD5754R_CTRL_CLAMP_EN(X) no_os_field_prep(NO_OS_BIT(2), x)
78#define AD5754R_CTRL_CLAMP_EN_MASK NO_OS_BIT(2)
79#define AD5754R_CTRL_CLR_SEL(x) no_os_field_prep(NO_OS_BIT(1), x)
80#define AD5754R_CTRL_CLR_SEL_MASK NO_OS_BIT(1)
81#define AD5754R_CTRL_SDO_DISABLE(x) (x)
82#define AD5754R_CTRL_SDO_DISABLE_MASK NO_OS_BIT(0)
83#define AD5754R_CTRL_CLEAR 0
84#define AD5754R_CTRL_LOAD 0
87#define AD5754R_PWR_UP_DAC_CH_MASK(x) NO_OS_BIT(x)
88#define AD5754R_PWR_UP_INT_REF_MASK NO_OS_BIT(4)
89#define AD5754R_PWR_OC_ALERT_MASK NO_OS_GENMASK(10,7)
90#define AD5754R_PWR_OC_ALERT_CH_MASK(x) no_os_field_prep(AD5754R_PWR_OC_ALERT_MASK, \
90#define AD5754R_PWR_OC_ALERT_CH_MASK(x) no_os_field_prep(AD5754R_PWR_OC_ALERT_MASK, \ …
92#define AD5754R_PWR_TSD_ALERT_MASK NO_OS_BIT(5)
94#define AD5754R_BYTE_H NO_OS_GENMASK(15, 8)
95#define AD5754R_BYTE_L NO_OS_GENMASK(7, 0)
97#define AD5754R_READ NO_OS_BIT(7)
98#define AD5754R_WRITE 0
100#define AD5754R_INSTR_NOP 0x18
101#define AD5754R_INSTR_CLEAR 0x1C
102#define AD5754R_INSTR_LOAD 0x1D
104#define AD5754R_GAIN_SCALE 1000
327 uint16_t mvolts, uint16_t *code);
const unsigned int ad5754r_gain_values_scaled[AD5754R_SPAN_M10V8_TO_10V8+1]
Definition ad5754r.c:41
ad5754r_encoding_scheme
DAC encoding scheme: Binary/2sComplement.
Definition ad5754r.h:217
@ AD5754R_ENCODING_TWOSCOMPLEMENT
Definition ad5754r.h:218
@ AD5754R_ENCODING_BINARY
Definition ad5754r.h:219
int ad5754r_dac_code_to_mvolts(struct ad5754r_dev *dev, uint8_t chn, uint16_t code, uint16_t *value)
Convert DAC code to millivolts for specific channel.
Definition ad5754r.c:282
ad5754r_pwr_int_ref_pwrup
Internal Reference Powerup Modes.
Definition ad5754r.h:190
@ AD5754R_PWR_INT_REF_POWERUP
Definition ad5754r.h:192
@ AD5754R_PWR_INT_REF_POWERDOWN
Definition ad5754r.h:191
ad5754r_pwr_tsd_alert
Thermal Shutdown Alert State.
Definition ad5754r.h:199
@ AD5754R_PWR_TSD_DETECTED
Definition ad5754r.h:201
@ AD5754R_PWR_TSD_NOT_DETECTED
Definition ad5754r.h:200
ad5754r_ctrl_current_clamp_en
Current Clamp EN/DIS Modes.
Definition ad5754r.h:145
@ AD5754R_CTRL_CLAMP_DIS
Definition ad5754r.h:146
int ad5754r_spi_verify(struct ad5754r_dev *dev)
Write to and read back a register to verify SPI.
Definition ad5754r.c:609
int ad5754r_clear_async(struct ad5754r_dev *dev)
Clear DAC output for all channels.
Definition ad5754r.c:236
int ad5754r_get_tsd_alert(struct ad5754r_dev *dev, enum ad5754r_pwr_tsd_alert *tsd_alert)
Get Thermal Shutdown status bit.
Definition ad5754r.c:581
int ad5754r_get_oc_ch_alert(struct ad5754r_dev *dev, uint8_t chn, enum ad5754r_pwr_oc_ch_alert *oc_ch_alert)
Get Over-current status bit for specific channel.
Definition ad5754r.c:553
ad5754r_ctrl_sdo_dis
SDO EN/DIS Modes.
Definition ad5754r.h:172
@ AD5754R_CTRL_SDO_EN
Definition ad5754r.h:173
@ AD5754R_CTRL_SDO_DIS
Definition ad5754r.h:174
ad5754r_ctrl_tsd_en
TSD EN/DIS Modes.
Definition ad5754r.h:154
@ AD5754R_CTRL_TSD_DIS
Definition ad5754r.h:155
ad5754r_pwr_oc_ch_alert
DAC Channel Overcurrent Alert State.
Definition ad5754r.h:208
@ AD5754R_PWR_OC_CH_NOT_DETECTED
Definition ad5754r.h:209
@ AD5754R_PWR_OC_CH_DETECTED
Definition ad5754r.h:210
int ad5754r_set_int_ref_pwrup(struct ad5754r_dev *dev, enum ad5754r_pwr_int_ref_pwrup int_ref_pwrup)
Set Internal Reference Enable/Disable state for device.
Definition ad5754r.c:523
ad5754r_dac_ch_range
DAC Channel Output Ranges.
Definition ad5754r.h:121
@ AD5754R_SPAN_M10V_TO_10V
Definition ad5754r.h:126
@ AD5754R_SPAN_0V_TO_5V
Definition ad5754r.h:122
@ AD5754R_SPAN_0V_TO_10V8
Definition ad5754r.h:124
@ AD5754R_SPAN_M5V_TO_5V
Definition ad5754r.h:125
@ AD5754R_SPAN_0V_TO_10V
Definition ad5754r.h:123
@ AD5754R_SPAN_M10V8_TO_10V8
Definition ad5754r.h:127
ad5754r_dac_channels
DAC Channels.
Definition ad5754r.h:110
@ AD5754R_DAC_CH_C
Definition ad5754r.h:113
@ AD5754R_DAC_CH_D
Definition ad5754r.h:114
@ AD5754R_DAC_CH_B
Definition ad5754r.h:112
@ AD5754R_DAC_CH_A
Definition ad5754r.h:111
int ad5754r_update_bits(struct ad5754r_dev *dev, uint8_t instr_addr, uint16_t mask, uint16_t reg_val)
Update specific register bits.
Definition ad5754r.c:130
int ad5754r_remove_gpios(struct ad5754r_dev *dev)
Remove GPIOs and free resources.
Definition ad5754r.c:800
int ad5754r_update_dac_all_ch_registers(struct ad5754r_dev *dev, uint16_t value)
Update DAC register value for all channels.
Definition ad5754r.c:182
int ad5754r_set_ch_pwrup(struct ad5754r_dev *dev, uint8_t chn, enum ad5754r_pwr_dac_ch_pwrup ch_pwrup)
Set power-up state for specific channel.
Definition ad5754r.c:385
ad5754r_ctrl_clear_sel
Clear Mode Options.
Definition ad5754r.h:163
@ AD5754R_CTRL_CLEAR_MIDSCALE_CODE
Definition ad5754r.h:165
@ AD5754R_CTRL_CLEAR_0V
Definition ad5754r.h:164
int ad5754r_set_current_clamp_en(struct ad5754r_dev *dev, enum ad5754r_ctrl_current_clamp_en clamp_en)
Apply current clamp setting for device.
Definition ad5754r.c:415
int ad5754r_set_ch_range(struct ad5754r_dev *dev, uint8_t chn, enum ad5754r_dac_ch_range ch_range)
Set output range for specific channel.
Definition ad5754r.c:359
int ad5754r_set_clear_mode(struct ad5754r_dev *dev, enum ad5754r_ctrl_clear_sel clear_sel)
Set clear mode setting for device.
Definition ad5754r.c:469
int ad5754r_reg_init(struct ad5754r_dev *dev, struct ad5754r_init_param *init_param)
Initialize registers based on init parameters.
Definition ad5754r.c:688
int ad5754r_dac_mvolts_to_code(struct ad5754r_dev *dev, uint8_t chn, uint16_t mvolts, uint16_t *code)
Convert DAC millivolts to code for specific channel.
Definition ad5754r.c:323
int ad5754r_update_dac_ch_register(struct ad5754r_dev *dev, uint8_t chn, uint16_t value)
Update DAC register value for specific channel.
Definition ad5754r.c:155
#define AD5754R_NUM_CHANNELS
Definition ad5754r.h:47
int ad5754r_ldac_trigger(struct ad5754r_dev *dev)
Trigger LDAC.
Definition ad5754r.c:209
int ad5754r_init(struct ad5754r_dev **device, struct ad5754r_init_param *init_param)
Initialize the device.
Definition ad5754r.c:741
ad5754r_pwr_dac_ch_pwrup
DAC Channel Powerup Modes.
Definition ad5754r.h:181
@ AD5754R_PWR_DAC_CH_POWERDOWN
Definition ad5754r.h:182
@ AD5754R_PWR_DAC_CH_POWERUP
Definition ad5754r.h:183
#define AD5754R_CTRL_TSD_EN(x)
Definition ad5754r.h:75
int ad5754r_gpio_init(struct ad5754r_dev *dev, struct ad5754r_init_param *init_param)
Do GPIO initialization and config for AD5754R.
Definition ad5754r.c:648
ad5754r_dac_addr_for_ctrl_settings
DAC Addresses for Control Register Settings.
Definition ad5754r.h:134
@ AD5754R_TSD_CLAMP_CLR_SDO_DAC_ADDR
Definition ad5754r.h:136
@ AD5754R_CLEAR_DAC_ADDR
Definition ad5754r.h:137
@ AD5754R_NOP_DAC_ADDR
Definition ad5754r.h:135
@ AD5754R_LOAD_DAC_ADDR
Definition ad5754r.h:138
int ad5754r_remove(struct ad5754r_dev *dev)
Remove the device and release resources.
Definition ad5754r.c:827
int ad5754r_read_dac_ch_register(struct ad5754r_dev *dev, uint8_t chn, uint16_t *value)
Read DAC register value for specific channel.
Definition ad5754r.c:262
int ad5754r_set_tsd_en(struct ad5754r_dev *dev, enum ad5754r_ctrl_tsd_en tsd_en)
Apply TSD setting for device.
Definition ad5754r.c:442
int ad5754r_read(struct ad5754r_dev *dev, uint8_t instr_addr, uint16_t *reg_val)
Read device register.
Definition ad5754r.c:88
int ad5754r_set_sdo_disable(struct ad5754r_dev *dev, enum ad5754r_ctrl_sdo_dis sdo_dis)
Set SDO Enable/Disable state for device.
Definition ad5754r.c:496
int ad5754r_write(struct ad5754r_dev *dev, uint8_t instr_addr, uint16_t reg_val)
Write device register.
Definition ad5754r.c:61
#define AD5754R_CTRL_CLAMP_EN(X)
Definition ad5754r.h:77
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
ad5754r Device structure.
Definition ad5754r.h:257
struct no_os_gpio_desc * gpio_clear
Definition ad5754r.h:261
struct no_os_spi_desc * spi_desc
Definition ad5754r.h:259
enum ad5754r_ctrl_sdo_dis sdo_dis
Definition ad5754r.h:273
enum ad5754r_encoding_scheme encoding
Definition ad5754r.h:279
enum ad5754r_pwr_dac_ch_pwrup dac_ch_pwr_states[AD5754R_NUM_CHANNELS]
Definition ad5754r.h:275
enum ad5754r_pwr_int_ref_pwrup int_ref_pwrup
Definition ad5754r.h:277
enum ad5754r_dac_ch_range dac_ch_range[AD5754R_NUM_CHANNELS]
Definition ad5754r.h:265
uint16_t vref_mv
Definition ad5754r.h:281
enum ad5754r_ctrl_clear_sel clear_sel
Definition ad5754r.h:271
enum ad5754r_ctrl_current_clamp_en clamp_en
Definition ad5754r.h:267
enum ad5754r_ctrl_tsd_en tsd_en
Definition ad5754r.h:269
struct no_os_gpio_desc * gpio_ldac
Definition ad5754r.h:263
ad5754r Device initialization parameters.
Definition ad5754r.h:226
enum ad5754r_pwr_int_ref_pwrup int_ref_pwrup
Definition ad5754r.h:246
uint16_t vref_mv
Definition ad5754r.h:250
enum ad5754r_ctrl_sdo_dis sdo_dis
Definition ad5754r.h:242
enum ad5754r_pwr_dac_ch_pwrup dac_ch_pwr_states[AD5754R_NUM_CHANNELS]
Definition ad5754r.h:244
struct no_os_gpio_init_param * gpio_clear_init
Definition ad5754r.h:230
enum ad5754r_dac_ch_range dac_ch_range[AD5754R_NUM_CHANNELS]
Definition ad5754r.h:234
enum ad5754r_ctrl_tsd_en tsd_en
Definition ad5754r.h:238
enum ad5754r_ctrl_current_clamp_en clamp_en
Definition ad5754r.h:236
enum ad5754r_encoding_scheme encoding
Definition ad5754r.h:248
struct no_os_gpio_init_param * gpio_ldac_init
Definition ad5754r.h:232
enum ad5754r_ctrl_clear_sel clear_sel
Definition ad5754r.h:240
struct no_os_spi_init_param * spi_init
Definition ad5754r.h:228
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 SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128