44#define LTC2672_16_DONT_CARE 0xFFF0
45#define LTC2672_MUX_DONT_CARE 0xFFFE0
46#define LTC2672_DUMMY 0xFFFF
47#define LTC2672_FAULT_REG_MASK 0xFF0000
50#define LTC2672_BASE_CURRENT 3.125
51#define LTC2672_VMINUS_FIXED_CURRENT -80
52#define LTC2672_OFF_CURRENT 0
53#define LTC2672_300MA_CURRENT 300
54#define LTC2672_16BIT_RESO 65535
55#define LTC2672_12BIT_RESO 4095
56#define LTC2672_TOTAL_CHANNELS 5
57#define LTC2672_MAX_CONFIG_MASK 15
58#define LTC2672_MAX_TOGGLE_MASK 31
59#define LTC2672_BIT_SHIFT_12BIT 4
60#define LTC2672_NUM_MUX_SELECTS 22
61#define LTC2672_NUM_CURRENT_SPANS 10
62#define LTC2672_NUM_FAULTS 7
84#define LTC2672_COMMAND32_GENERATE(comm, add, dat) \
85 (0xFF << 24) | (comm << 20) | (add << 16) | (dat)
84#define LTC2672_COMMAND32_GENERATE(comm, add, dat) \ …
87#define LTC2672_COMMAND24_GENERATE(comm, add, dat) \
88 (comm << 20) | (add << 16) | (dat)
87#define LTC2672_COMMAND24_GENERATE(comm, add, dat) \ …
90#define LTC2672_SPAN_SET(span_code) LTC2672_16_DONT_CARE | span_code
92#define LTC2672_MUX_SET(mux_code) LTC2672_MUX_DONT_CARE | mux_code
94#define LTC2672_MUX32_GENERATE(comm, dat) \
95 (0xFF << 24) | (comm << 20) | (dat)
94#define LTC2672_MUX32_GENERATE(comm, dat) \ …
97#define LTC2672_MUX24_GENERATE(comm, dat) \
97#define LTC2672_MUX24_GENERATE(comm, dat) \ …
int ltc2672_config_command(struct ltc2672_dev *, uint8_t)
configures the fault detection bits
Definition ltc2672.c:562
int ltc2672_set_code_all_channels(struct ltc2672_dev *device, uint16_t code)
sets the same dac code for all channels
Definition ltc2672.c:216
ltc2672_faults
Definition ltc2672.h:156
@ LTC2672_OPEN_OUT4
Definition ltc2672.h:161
@ LTC2672_UNUSED
Definition ltc2672.h:163
@ LTC2672_OPEN_OUT0
Definition ltc2672.h:157
@ LTC2672_OPEN_OUT3
Definition ltc2672.h:160
@ LTC2672_OPEN_OUT2
Definition ltc2672.h:159
@ LTC2672_INV_LENGTH
Definition ltc2672.h:164
@ LTC2672_OVER_TEMP
Definition ltc2672.h:162
@ LTC2672_OPEN_OUT1
Definition ltc2672.h:158
int ltc2672_set_code_channel(struct ltc2672_dev *device, uint16_t code, enum ltc2672_dac_ch out_ch)
sets the dac code for channel
Definition ltc2672.c:159
ltc2672_out_range
Definition ltc2672.h:116
@ LTC2672_OFF
Definition ltc2672.h:117
@ LTC2672_3200VREF
Definition ltc2672.h:124
@ LTC2672_50VREF
Definition ltc2672.h:118
@ LTC2672_1600VREF
Definition ltc2672.h:123
@ LTC2672_4800VREF
Definition ltc2672.h:126
@ LTC2672_400VREF
Definition ltc2672.h:121
@ LTC2672_800VREF
Definition ltc2672.h:122
@ LTC2672_100VREF
Definition ltc2672.h:119
@ LTC2672_VMINUS_VREF
Definition ltc2672.h:125
@ LTC2672_200VREF
Definition ltc2672.h:120
ltc2672_commands
Definition ltc2672.h:64
@ LTC2672_CODE_TO_CHANNEL_ALL
Definition ltc2672.h:73
@ LTC2672_CODE_TO_CHANNEL_X_PWRUP_UPD_CHANNEL_ALL
Definition ltc2672.h:67
@ LTC2672_MON_MUX
Definition ltc2672.h:76
@ LTC2672_CODE_PWRUP_UPD_CHANNEL_X
Definition ltc2672.h:68
@ LTC2672_PWRDWN_DEV
Definition ltc2672.h:70
@ LTC2672_CODE_PWRUP_UPD_CHANNEL_ALL
Definition ltc2672.h:75
@ LTC2672_TOGGLE_GLBL
Definition ltc2672.h:78
@ LTC2672_NO_OP
Definition ltc2672.h:80
@ LTC2672_SPAN_TO_CHANNEL_X
Definition ltc2672.h:71
@ LTC2672_PWRUP_UPD_CHANNEL_X
Definition ltc2672.h:66
@ LTC2672_SPAN_TO_CHANNEL_ALL
Definition ltc2672.h:79
@ LTC2672_PWRUP_UPD_CHANNEL_ALL
Definition ltc2672.h:74
@ LTC2672_PWRDWN_CHANNEL_X
Definition ltc2672.h:69
@ LTC2672_TOGGLE_SEL
Definition ltc2672.h:77
@ LTC2672_CODE_TO_CHANNEL_X
Definition ltc2672.h:65
@ LTC2672_CNFG_CMD
Definition ltc2672.h:72
int ltc2672_power_down_channel(struct ltc2672_dev *, enum ltc2672_dac_ch)
power down a channel
Definition ltc2672.c:394
int ltc2672_setup_toggle_channel(struct ltc2672_dev *, enum ltc2672_dac_ch, uint32_t, uint32_t)
setup toggle parameters for a channel
Definition ltc2672.c:461
ltc2672_device_id
Definition ltc2672.h:101
@ LTC2672_16
Definition ltc2672.h:103
@ LTC2672_12
Definition ltc2672.h:102
int ltc2672_init(struct ltc2672_dev **, struct ltc2672_init_param *)
Device and communication init function.
Definition ltc2672.c:52
int ltc2672_global_toggle(struct ltc2672_dev *, bool)
enables or disables global toggle bit
Definition ltc2672.c:544
int ltc2672_chip_power_down(struct ltc2672_dev *)
power down ltc2672
Definition ltc2672.c:378
int ltc2672_transaction(struct ltc2672_dev *device, uint32_t, bool)
Write raw register value.
Definition ltc2672.c:103
int ltc2672_set_current_all_channels(struct ltc2672_dev *, uint32_t)
sets the same current for all channels
Definition ltc2672.c:248
int ltc2672_enable_toggle_channel(struct ltc2672_dev *, uint32_t)
enables or disables selected channel/s for toggling
Definition ltc2672.c:526
#define LTC2672_TOTAL_CHANNELS
Definition ltc2672.h:56
int ltc2672_set_span_channel(struct ltc2672_dev *, enum ltc2672_out_range, enum ltc2672_dac_ch)
sets output span for channel
Definition ltc2672.c:276
int ltc2672_monitor_mux(struct ltc2672_dev *, enum ltc2672_mux_commands)
configures mux output depending on target measurement
Definition ltc2672.c:437
ltc2672_dac_ch
Definition ltc2672.h:107
@ LTC2672_DAC3
Definition ltc2672.h:111
@ LTC2672_DAC2
Definition ltc2672.h:110
@ LTC2672_DAC4
Definition ltc2672.h:112
@ LTC2672_DAC1
Definition ltc2672.h:109
@ LTC2672_DAC0
Definition ltc2672.h:108
int ltc2672_set_current_channel(struct ltc2672_dev *, uint32_t, enum ltc2672_dac_ch)
set the current for a selected DAC channel
Definition ltc2672.c:195
uint32_t ltc2672_current_to_code(struct ltc2672_dev *device, uint32_t, enum ltc2672_dac_ch)
get dac code value from current of a selected DAC channel
Definition ltc2672.c:136
int ltc2672_power_down_all_channels(struct ltc2672_dev *)
power down ALL channels
Definition ltc2672.c:413
int ltc2672_remove(struct ltc2672_dev *)
Remove resources allocated by the init function.
Definition ltc2672.c:82
int ltc2672_set_span_all_channels(struct ltc2672_dev *, enum ltc2672_out_range)
sets the same output span for all channels
Definition ltc2672.c:327
ltc2672_mux_commands
Definition ltc2672.h:130
@ LTC2672_MUX_VREF_LO
Definition ltc2672.h:139
@ LTC2672_MUX_VREF
Definition ltc2672.h:138
@ LTC2672_MUX_DISABLED
Definition ltc2672.h:131
@ LTC2672_MUC_VCC
Definition ltc2672.h:137
@ LTC2672_MUX_IOUT2
Definition ltc2672.h:134
@ LTC2672_MUX_VDD2
Definition ltc2672.h:143
@ LTC2672_MUX_VDD4
Definition ltc2672.h:145
@ LTC2672_MUX_VMINUS
Definition ltc2672.h:146
@ LTC2672_MUX_DIE_TEMP
Definition ltc2672.h:140
@ LTC2672_MUX_IOUT3
Definition ltc2672.h:135
@ LTC2672_MUX_VDD0
Definition ltc2672.h:141
@ LTC2672_MUX_IOUT4
Definition ltc2672.h:136
@ LTC2672_MUX_VOUT1
Definition ltc2672.h:149
@ LTC2672_MUX_VOUT4
Definition ltc2672.h:152
@ LTC2672_MUX_GND
Definition ltc2672.h:147
@ LTC2672_MUX_VOUT3
Definition ltc2672.h:151
@ LTC2672_MUX_IOUT0
Definition ltc2672.h:132
@ LTC2672_MUX_VDD3
Definition ltc2672.h:144
@ LTC2672_MUX_VOUT0
Definition ltc2672.h:148
@ LTC2672_MUX_VOUT2
Definition ltc2672.h:150
@ LTC2672_MUX_VDD1
Definition ltc2672.h:142
@ LTC2672_MUX_IOUT1
Definition ltc2672.h:133
Header file of SPI Interface.
Definition ad9361_util.h:63
Structure holding ltc2672 descriptor.
Definition ltc2672.h:171
uint32_t max_currents[LTC2672_TOTAL_CHANNELS]
Definition ltc2672.h:179
struct no_os_spi_desc * comm_desc
Definition ltc2672.h:173
enum ltc2672_out_range out_spans[LTC2672_TOTAL_CHANNELS]
Definition ltc2672.h:177
enum ltc2672_device_id id
Definition ltc2672.h:175
bool global_toggle
Definition ltc2672.h:183
uint32_t prev_command
Definition ltc2672.h:181
Structure holding the parameters for ltc2672 initialization.
Definition ltc2672.h:190
enum ltc2672_device_id id
Definition ltc2672.h:194
struct no_os_spi_init_param spi_init
Definition ltc2672.h:192
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128