42#define LTC6953_NUM_REGADDR 57
45#define LTC6953_REG_VCO_STATUS 0x00
46#define LTC6953_REG_STAT 0x01
47#define LTC6953_REG_PD_CTL 0x02
48#define LTC6953_REG_CHAN_POWER_DOWN(x) 0x03 + (x / 4)
49#define LTC6953_REG_TEMP 0x05
50#define LTC6953_REG_SYNC_CONFIG 0x0B
51#define LTC6953_REG_OUTPUT_DIVIDER(x) 0x0C + (x * 4)
52#define LTC6953_REG_OUTPUT_CONFIG(x) 0x0D + (x * 4)
53#define LTC6953_REG_DDEL_HIGH(x) 0x0D + (x * 4)
54#define LTC6953_REG_DDEL_LOW(x) 0x0E + (x * 4)
55#define LTC6953_REG_ADEL(x) 0x0F + (x * 4)
56#define LTC6953_REG_CHIP_INFO 0x38
59#define LTC6953_VCOOK_MSK NO_OS_BIT(2)
60#define LTC6953_NVCOOK_MSK NO_OS_BIT(3)
63#define LTC6953_INVSTAT_MSK NO_OS_BIT(7)
64#define LTC6953_STAT_OUT_MSK NO_OS_GENMASK(6, 0)
67#define LTC6953_PDALL_MSK NO_OS_BIT(7)
68#define LTC6953_PDVCOPK_MSK NO_OS_BIT(5)
69#define LTC6953_FILTV_MSK NO_OS_BIT(1)
70#define LTC6953_POR_MSK NO_OS_BIT(0)
73#define LTC6953_PD_MSK(ch) NO_OS_GENMASK( \
74 ((ch) & NO_OS_GENMASK(1, 0)) * 2 + 1, \
75 ((ch) & NO_OS_GENMASK(1, 0)) * 2)
73#define LTC6953_PD_MSK(ch) NO_OS_GENMASK( \ …
76#define LTC6953_PD(ch, x) no_os_field_prep(LTC6953_PD_MSK(ch), x)
79#define LTC6953_TEMPO_MSK NO_OS_BIT(7)
82#define LTC6953_EZMD_MSK NO_OS_BIT(4)
83#define LTC6953_SRQMD_MSK NO_OS_BIT(3)
84#define LTC6953_SYSCT_MSK NO_OS_GENMASK(2, 1)
85#define LTC6953_SSRQ_MSK NO_OS_BIT(0)
88#define LTC6953_MP_MSK NO_OS_GENMASK(7, 3)
89#define LTC6953_MD_MSK NO_OS_GENMASK(2, 0)
92#define LTC6953_SRQEN_MSK NO_OS_BIT(7)
93#define LTC6953_MODE_MSK NO_OS_GENMASK(6, 5)
94#define LTC6953_OINV_MSK NO_OS_BIT(4)
95#define LTC6953_DDEL_HIGH_MSK NO_OS_GENMASK(3, 0)
98#define LTC6953_DDEL_LOW_MSK NO_OS_GENMASK(7, 0)
101#define LTC6953_ADEL_MSK NO_OS_GENMASK(5, 0)
104#define LTC6953_REV_MSK NO_OS_GENMASK(7, 4)
105#define LTC6953_PART_MSK NO_OS_GENMASK(3, 0)
107#define LTC6953_NUM_CHAN 11
109#define LTC6953_OUT_DIV_MIN 1
110#define LTC6953_OUT_DIV_MAX 1048576
111#define LTC6953_X_MAX 127
113#define LTC6953_ADDRX 0
114#define LTC6953_DXMSB 1
115#define LTC6953_NUMBITS 2
116#define LTC6953_R_ONLY 3
119#define LTC6953_SPI_WRITE_CMD 0x00
120#define LTC6953_SPI_READ_CMD 0x01
121#define LTC6953_SPI_ADDR_CMD(x) ((x) << 1)
122#define LTC6953_BUFF_SIZE_BYTES 2
123#define LTC6953_DUMMY_BYTES 0x00
184 uint8_t mask, uint8_t data);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int ltc6953_enable_sync(struct ltc6953_dev *dev, uint32_t channel, bool enable)
Set LTC6953 Channel Sync mode.
Definition ltc6953.c:307
int ltc6953_num_pulse(struct ltc6953_dev *dev, uint8_t num_pulse)
Set LTC6953 SYSCT/Num pulse value.
Definition ltc6953.c:448
int ltc6953_sync_mode(struct ltc6953_dev *dev, bool is_en)
Set LTC6953 SRQ mode.
Definition ltc6953.c:424
int ltc6953_ssrq_mode(struct ltc6953_dev *dev, bool is_en)
Set LTC6953 SSRQ mode.
Definition ltc6953.c:436
int ltc6953_power_mode(struct ltc6953_dev *dev, uint32_t channel, int32_t mode)
Set LTC6953 Channel Power Mode.
Definition ltc6953.c:287
int ltc6953_enable_temp_stat(struct ltc6953_dev *dev, bool is_en)
Set LTC6953 TEMPO value.
Definition ltc6953.c:463
int ltc6953_power_down_vco(struct ltc6953_dev *dev, bool is_pwdn)
Powers down LTC6953 VCO Input channel.
Definition ltc6953.c:228
int ltc6953_enable_filter(struct ltc6953_dev *dev, bool is_en)
Enable LTC6953 VCO Input filter.
Definition ltc6953.c:216
int ltc6953_ezsync_mode(struct ltc6953_dev *dev, bool is_en)
Set LTC6953 EZSYNC mode.
Definition ltc6953.c:412
int ltc6953_set_x(struct ltc6953_dev *dev, uint8_t x)
Set LTC6953 x bitfield status.
Definition ltc6953.c:527
int ltc6953_vco_status(struct ltc6953_dev *dev, bool *is_ok)
Read LTC6953 Check VCO Input stats.
Definition ltc6953.c:475
int ltc6953_remove(struct ltc6953_dev *dev)
Free resources allocated for LTC6953.
Definition ltc6953.c:185
#define LTC6953_NUM_CHAN
Definition ltc6953.h:107
int ltc6953_reset(struct ltc6953_dev *dev)
Software reset of the device.
Definition ltc6953.c:105
int ltc6953_write(struct ltc6953_dev *dev, uint8_t addr, uint16_t data)
Writes data to LTC6953 over SPI.
Definition ltc6953.c:118
int ltc6953_set_output_divider(struct ltc6953_dev *dev, uint32_t channel, uint32_t divider)
Set output divider for LTC6953 output channel.
Definition ltc6953.c:241
int ltc6953_read(struct ltc6953_dev *dev, uint8_t addr, uint8_t *data)
Read device register.
Definition ltc6953.c:138
int ltc6953_set_mode(struct ltc6953_dev *dev, uint32_t channel, uint8_t mode)
Set LTC6953 output channel mode.
Definition ltc6953.c:377
int ltc6953_read_part(struct ltc6953_dev *dev, uint8_t *part)
Read LTC6953 Part number.
Definition ltc6953.c:583
int ltc6953_get_invstat(struct ltc6953_dev *dev, bool *status)
Read LTC6953 INVSTAT bit.
Definition ltc6953.c:495
int ltc6953_invert_output(struct ltc6953_dev *dev, uint32_t channel, bool is_invert)
Set LTC6953 output channel inversion.
Definition ltc6953.c:396
int ltc6953_power_down_all(struct ltc6953_dev *dev, bool is_pwdn)
Powers down all LTC6953 output channels.
Definition ltc6953.c:204
int ltc6953_set_invstat(struct ltc6953_dev *dev, bool status)
Write LTC6953 INVSTAT bit.
Definition ltc6953.c:515
int ltc6953_update(struct ltc6953_dev *dev, uint8_t reg_addr, uint8_t mask, uint8_t data)
Update LTC6953 register.
Definition ltc6953.c:164
int ltc6953_set_analog_delay(struct ltc6953_dev *dev, uint32_t channel, uint16_t delay)
Set analog delay/phase of LTC6953 output channel.
Definition ltc6953.c:357
int ltc6953_set_digital_delay(struct ltc6953_dev *dev, uint32_t channel, uint16_t delay)
Set digital delay/phase of LTC6953 output channel.
Definition ltc6953.c:325
int ltc6953_init(struct ltc6953_dev **dev, struct ltc6953_init_param *init_param)
Initializes the SPI communication with LTC6953.
Definition ltc6953.c:70
int ltc6953_get_x(struct ltc6953_dev *dev, uint8_t *x)
Set LTC6953 x bitfield status.
Definition ltc6953.c:542
int ltc6953_read_rev(struct ltc6953_dev *dev, uint8_t *rev)
Read LTC6953 Part number.
Definition ltc6953.c:562
Header file of SPI Interface.
Output channel configuration.
Definition ltc6953.h:130
int8_t extended_name[16]
Definition ltc6953.h:139
uint8_t mp
Definition ltc6953.h:133
uint8_t md
Definition ltc6953.h:134
uint8_t analog_delay
Definition ltc6953.h:136
uint8_t digital_delay
Definition ltc6953.h:135
uint8_t sysref_mode
Definition ltc6953.h:137
uint8_t out_divider
Definition ltc6953.h:132
uint8_t power_down_mode
Definition ltc6953.h:138
uint8_t num
Definition ltc6953.h:131
LTC6953 Device Descriptor.
Definition ltc6953.h:157
float vco_frequency
Definition ltc6953.h:161
struct ltc6953_channel_spec chans[LTC6953_NUM_CHAN]
Definition ltc6953.h:160
struct no_os_spi_desc * spi_desc
Definition ltc6953.h:159
LTC6953 Initialization Parameters structure.
Definition ltc6953.h:146
struct no_os_spi_init_param spi_init
Definition ltc6953.h:148
float vco_frequency
Definition ltc6953.h:150
struct ltc6953_channel_spec chans[LTC6953_NUM_CHAN]
Definition ltc6953.h:149
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128