48#define LTC7871_CRC_POLYNOMIAL 0x07
50#define LTC7871_FRAME_SIZE 3
51#define LTC7871_NUM_REGISTERS 8
54#define LTC7871_SPI_READ 0x01
55#define LTC7871_SPI_WRITE 0x00
58#define LTC7871_STATUS_ACQUISITION_COMMAND 0xF0
59#define LTC7871_DATA_WRITE_COMMAND 0xF2
60#define LTC7871_DATA_READ_COMMAND 0xF4
63#define LTC7871_STATUS_ACQUISITION_COMMAND_SIZE 4
64#define LTC7871_DATA_WRITE_COMMAND_SIZE 8
65#define LTC7871_DATA_READ_COMMAND_SIZE 8
68#define LTC7871_MFR_FAULT 0x01
69#define LTC7871_MFR_OC_FAULT 0x02
70#define LTC7871_MFR_NOC_FAULT 0x03
71#define LTC7871_MFR_STATUS 0x04
72#define LTC7871_MFR_CONFIG1 0x05
73#define LTC7871_MFR_CONFIG2 0x06
74#define LTC7871_CHIP_CTRL 0x07
75#define LTC7871_IDAC_VLOW 0x08
76#define LTC7871_IDAC_VHIGH 0x09
77#define LTC7871_IDAC_SETCUR 0x0A
78#define LTC7871_MFR_SSFM 0x0B
81#define LTC7871_MFR_FAULT_MASK NO_OS_GENMASK(6, 0)
82#define LTC7871_MFR_OC_FAULT_MASK NO_OS_GENMASK(6, 0)
83#define LTC7871_MFR_NOC_FAULT_MASK NO_OS_GENMASK(6, 0)
84#define LTC7871_MFR_STATUS_MASK NO_OS_GENMASK(2, 0)
85#define LTC7871_MFR_CONFIG1_MASK NO_OS_GENMASK(5, 0)
86#define LTC7871_MFR_CONFIG2_MASK NO_OS_GENMASK(4, 0)
87#define LTC7871_MFR_CHIP_CTRL_MASK NO_OS_GENMASK(2, 0)
88#define LTC7871_MFR_SSFM_MASK NO_OS_GENMASK(8, 0)
92#define LTC7871_VLOW_OV_MASK NO_OS_BIT(6)
93#define LTC7871_VHIGH_OV_MASK NO_OS_BIT(5)
94#define LTC7871_VHIGH_UV_MASK NO_OS_BIT(4)
95#define LTC7871_DRVCC_UV_MASK NO_OS_BIT(3)
96#define LTC7871_V5_UV_MASK NO_OS_BIT(2)
97#define LTC7871_VREF_BAD_MASK NO_OS_BIT(1)
98#define LTC7871_OVER_TEMP_MASK NO_OS_BIT(0)
101#define LTC7871_OC_FAULT_6_MASK NO_OS_BIT(5)
102#define LTC7871_OC_FAULT_5_MASK NO_OS_BIT(4)
103#define LTC7871_OC_FAULT_4_MASK NO_OS_BIT(3)
104#define LTC7871_OC_FAULT_3_MASK NO_OS_BIT(2)
105#define LTC7871_OC_FAULT_2_MASK NO_OS_BIT(1)
106#define LTC7871_OC_FAULT_1_MASK NO_OS_BIT(0)
109#define LTC7871_NOC_FAULT_6_MASK NO_OS_BIT(5)
110#define LTC7871_NOC_FAULT_5_MASK NO_OS_BIT(4)
111#define LTC7871_NOC_FAULT_4_MASK NO_OS_BIT(3)
112#define LTC7871_NOC_FAULT_3_MASK NO_OS_BIT(2)
113#define LTC7871_NOC_FAULT_2_MASK NO_OS_BIT(1)
114#define LTC7871_NOC_FAULT_1_MASK NO_OS_BIT(0)
117#define LTC7871_SS_DONE_MASK NO_OS_BIT(2)
118#define LTC7871_MAX_CURRENT_MASK NO_OS_BIT(1)
119#define LTC7871_PGOOD_MASK NO_OS_BIT(0)
122#define LTC7871_SERCUR_WARNING_MASK NO_OS_BIT(5)
123#define LTC7871_DRVCC_SET_MASK NO_OS_GENMASK(4, 3)
124#define LTC7871_ILIM_SET_MASK NO_OS_GENMASK(2, 0)
127#define LTC7871_BURST_MASK NO_OS_BIT(4)
128#define LTC7871_DCM_MASK NO_OS_BIT(3)
129#define LTC7871_HIZ_MASK NO_OS_BIT(2)
130#define LTC7871_SPRD_MASK NO_OS_BIT(1)
131#define LTC7871_BUCK_BOOST_MASK NO_OS_BIT(0)
134#define LTC7871_CML_MASK NO_OS_BIT(2)
135#define LTC7871_RESET_MASK NO_OS_BIT(1)
136#define LTC7871_WP_MASK NO_OS_BIT(0)
139#define LTC7871_MFR_IDAC_VLOW_MASK NO_OS_GENMASK(6, 0)
142#define LTC7871_MFR_IDAC_VHIGH_MASK NO_OS_GENMASK(6, 0)
145#define LTC7871_MFR_IDAC_SETCUR_MASK NO_OS_GENMASK(4, 0)
148#define LTC7871_MFR_SSFM_FSR_MASK NO_OS_GENMASK(4, 3)
149#define LTC7871_MFR_SSFM_MSF_MASK NO_OS_GENMASK(2, 0)
230 uint8_t mask, uint8_t data);
245 uint8_t config, uint8_t *value);
249 uint8_t config, uint8_t *value);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int ltc7871_clear_pec_fault(struct ltc7871_dev *dev)
Clear PEC fault bit.
Definition ltc7871.c:325
int ltc7871_get_mod_freq(struct ltc7871_dev *dev, uint8_t *value)
Get Modulation Signal Frequency.
Definition ltc7871.c:618
int ltc7871_set_write_protect(struct ltc7871_dev *dev, bool value)
set write protect bit.
Definition ltc7871.c:369
int ltc7871_set_freq_spread_range(struct ltc7871_dev *dev, enum ltc7871_ssfm_fsr value)
Set Frequency Spread Range.
Definition ltc7871.c:589
int ltc7871_get_mfr_idac_vhigh(struct ltc7871_dev *dev, int8_t *value)
get the current DAC value to program the VHIGH voltage.
Definition ltc7871.c:464
int ltc7871_set_mfr_idac_vhigh(struct ltc7871_dev *dev, int8_t value)
stores the current DAC value to program the VHIGH voltage.
Definition ltc7871.c:487
ltc7871_ssfm_msf
Modulation Signal Frequency control bits.
Definition ltc7871.h:171
@ LTC7871_SSFM_MSF_2048
Definition ltc7871.h:177
@ LTC7871_SSFM_MSF_4096
Definition ltc7871.h:179
@ LTC7871_SSFM_MSF_64
Definition ltc7871.h:185
@ LTC7871_SSFM_MSF_512U
Definition ltc7871.h:187
@ LTC7871_SSFM_MSF_256
Definition ltc7871.h:181
@ LTC7871_SSFM_MSF_128
Definition ltc7871.h:183
@ LTC7871_SSFM_MSF_1024
Definition ltc7871.h:175
@ LTC7871_SSFM_MSF_512
Definition ltc7871.h:173
int ltc7871_get_mfr_config1_setting(struct ltc7871_dev *dev, uint8_t config, uint8_t *value)
gets configuration of the controller programmed by the pins.
Definition ltc7871.c:232
int ltc7871_read_pec_fault(struct ltc7871_dev *dev, bool *value)
Read PEC fault bit.
Definition ltc7871.c:346
ltc7871_ssfm_fsr
Frequency Spread Range control bits.
Definition ltc7871.h:156
@ LTC7871_SSFM_FSR_15
Definition ltc7871.h:160
@ LTC7871_SSFM_FSR_10
Definition ltc7871.h:162
@ LTC7871_SSFM_FSR_12
Definition ltc7871.h:158
@ LTC7871_SSFM_FSR_8
Definition ltc7871.h:164
int ltc7871_get_mfr_noc_fault(struct ltc7871_dev *dev, uint8_t status, bool *value)
gets status for negative overcurrent fault condition status.
Definition ltc7871.c:207
int ltc7871_reg_write(struct ltc7871_dev *dev, uint8_t reg, uint8_t data)
Register Write.
Definition ltc7871.c:109
ltc7871_ctrl_wp
Frequency Spread Range control bits.
Definition ltc7871.h:194
@ LTC7871_CTRL_WP_DISABLE
Definition ltc7871.h:198
@ LTC7871_CTRL_WP_ENABLE
Definition ltc7871.h:196
int ltc7871_reg_read(struct ltc7871_dev *dev, uint8_t reg, uint8_t *data)
Register Read.
Definition ltc7871.c:77
uint8_t ltc7871_get_pec_byte(uint8_t *data, uint8_t len)
Compute the PEC.
Definition ltc7871.c:48
int ltc7871_set_mfr_idac_setcur(struct ltc7871_dev *dev, int8_t value)
stores the current DAC value to program the sourcing current of the SETCUR pin.
Definition ltc7871.c:538
int ltc7871_set_mod_freq(struct ltc7871_dev *dev, enum ltc7871_ssfm_msf value)
Set Modulation Signal Frequency.
Definition ltc7871.c:641
int ltc7871_get_mfr_oc_fault(struct ltc7871_dev *dev, uint8_t status, bool *value)
gets status for overcurrent condition status.
Definition ltc7871.c:182
int ltc7871_get_pwmen_pin(struct ltc7871_dev *dev, uint8_t *value)
Get EN pin of LTC7871 device.
Definition ltc7871.c:683
int ltc7871_get_mfr_idac_vlow(struct ltc7871_dev *dev, int8_t *value)
get the current DAC value to program the VLOW voltage.
Definition ltc7871.c:413
int ltc7871_remove(struct ltc7871_dev *dev)
Free the resources allocated by the LT7871_init()
Definition ltc7871.c:742
int ltc7871_get_mfr_config2_setting(struct ltc7871_dev *dev, uint8_t config, uint8_t *value)
gets configuration of the controller programmed by the pins.
Definition ltc7871.c:257
int ltc7871_set_pwmen_pin(struct ltc7871_dev *dev, uint8_t value)
Set PWMEN pin of LTC7871 device.
Definition ltc7871.c:669
int ltc7871_get_mfr_idac_setcur(struct ltc7871_dev *dev, int8_t *value)
get the current DAC value to program the sourcing current of the SETCUR pin.
Definition ltc7871.c:515
int ltc7871_get_mfr_fault(struct ltc7871_dev *dev, uint8_t status, bool *value)
gets mfr fault bit.
Definition ltc7871.c:158
int ltc7871_init(struct ltc7871_dev **device, struct ltc7871_init_param *init_param)
Initialize the LTC7871 device.
Definition ltc7871.c:698
int ltc7871_reg_write_mask(struct ltc7871_dev *dev, uint8_t address, uint8_t mask, uint8_t data)
Write to LTC7871 device register with mask.
Definition ltc7871.c:132
int ltc7871_get_freq_spread_range(struct ltc7871_dev *dev, uint8_t *value)
Get Frequency Spread Range.
Definition ltc7871.c:566
int ltc7871_reset(struct ltc7871_dev *dev)
Reset all R/W registers.
Definition ltc7871.c:305
int ltc7871_set_mfr_idac_vlow(struct ltc7871_dev *dev, int8_t value)
stores the current DAC value to program the VLOW voltage.
Definition ltc7871.c:436
int ltc7871_get_mfr_status(struct ltc7871_dev *dev, uint8_t status_mask, bool *status)
gets status.
Definition ltc7871.c:282
int ltc7871_is_write_protected(struct ltc7871_dev *dev, bool *value)
Read Write Protect bit for IDAC registers, and MFR_SSFM register.
Definition ltc7871.c:390
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
Definition ad9361_util.h:63
Device descriptor for ltc7871.
Definition ltc7871.h:214
struct no_os_spi_desc * spi
Definition ltc7871.h:215
struct no_os_gpio_desc * gpio_pwmen
Definition ltc7871.h:216
Initialization parameter for the LTC7871 device.
Definition ltc7871.h:205
struct no_os_spi_init_param * spi
Definition ltc7871.h:206
struct no_os_gpio_init_param * gpio_pwmen
Definition ltc7871.h:207
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