no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ad9528.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef _AD9528_H_
34#define _AD9528_H_
35
36#include <stdint.h>
37#include <stdbool.h>
38#include "no_os_delay.h"
39#include "no_os_spi.h"
40#include "no_os_gpio.h"
41
42/* Registers */
43
44#define AD9528_READ (1 << 15)
45#define AD9528_WRITE (0 << 15)
46#define AD9528_CNT(x) (((x) - 1) << 13)
47#define AD9528_ADDR(x) ((x) & 0xFFF)
48
49#define AD9528_1B(x) ((1 << 16) | ((x) + 0))
50#define AD9528_2B(x) ((2 << 16) | ((x) + 1))
51#define AD9528_3B(x) ((3 << 16) | ((x) + 2))
52#define AD9528_4B(x) ((4 << 16) | ((x) + 3))
53#define AD9528_TRANSF_LEN(x) ((x) >> 16)
54
55#define AD9528_SERIAL_PORT_CONFIG AD9528_1B(0x0)
56#define AD9528_SERIAL_PORT_CONFIG_B AD9528_1B(0x1)
57#define AD9528_CHIP_ID AD9528_4B(0x3)
58#define AD9528_IO_UPDATE AD9528_1B(0xF)
59
60#define AD9528_PLL1_REF_A_DIVIDER AD9528_2B(0x100)
61#define AD9528_PLL1_REF_B_DIVIDER AD9528_2B(0x102)
62#define AD9528_PLL1_FEEDBACK_DIVIDER AD9528_2B(0x104)
63#define AD9528_PLL1_CHARGE_PUMP_CTRL AD9528_2B(0x106)
64#define AD9528_PLL1_CTRL AD9528_3B(0x108)
65
66#define AD9528_PLL2_CHARGE_PUMP AD9528_1B(0x200)
67#define AD9528_PLL2_FEEDBACK_DIVIDER_AB AD9528_1B(0x201)
68#define AD9528_PLL2_CTRL AD9528_1B(0x202)
69#define AD9528_PLL2_VCO_CTRL AD9528_1B(0x203)
70#define AD9528_PLL2_VCO_DIVIDER AD9528_1B(0x204)
71#define AD9528_PLL2_LOOP_FILTER_CTRL AD9528_2B(0x205)
72#define AD9528_PLL2_R1_DIVIDER AD9528_1B(0x207)
73#define AD9528_PLL2_N2_DIVIDER AD9528_1B(0x208)
74
75#define AD9528_CHANNEL_OUTPUT(ch) AD9528_3B(0x300 + 3 * ch)
76#define AD9528_CHANNEL_SYNC AD9528_1B(0x32A)
77#define AD9528_CHANNEL_SYNC_IGNORE AD9528_2B(0x32B)
78
79#define AD9528_SYSREF_RESAMPLE_CTRL AD9528_2B(0x32D)
80
81#define AD9528_SYSREF_K_DIVIDER AD9528_2B(0x400)
82#define AD9528_SYSREF_CTRL AD9528_2B(0x402)
83
84#define AD9528_PD_EN AD9528_1B(0x500)
85#define AD9528_CHANNEL_PD_EN AD9528_2B(0x501)
86
87#define AD9528_STAT_MON0 AD9528_1B(0x505)
88#define AD9528_STAT_MON1 AD9528_1B(0x506)
89#define AD9528_STAT_PIN_EN AD9528_1B(0x507)
90#define AD9528_READBACK AD9528_2B(0x508)
91
92/* AD9528_SERIAL_PORT_CONFIG */
93#define AD9528_SER_CONF_SOFT_RESET ((1 << 0) | (1 << 7))
94#define AD9528_SER_CONF_LSB_FIRST ((1 << 1) | (1 << 6))
95#define AD9528_SER_CONF_ADDR_INCREMENT ((1 << 2) | (1 << 5))
96#define AD9528_SER_CONF_SDO_ACTIVE ((1 << 3) | (1 << 4))
97
98/* AD9528_SERIAL_PORT_CONFIG_B */
99#define AD9528_SER_CONF_READ_BUFFERED (1 << 5)
100#define AD9528_SER_CONF_RESET_SANS_REGMAP (1 << 2)
101
102/* AD9528_IO_UPDATE */
103#define AD9528_IO_UPDATE_EN (1 << 0)
104
105/* AD9528_PLL1_CHARGE_PUMP_CTRL */
106#define AD9528_PLL1_CHARGE_PUMP_AUTO_TRISTATE_DIS (1 << 12)
107#define AD9528_PLL1_CHARGE_PUMP_MODE_NORMAL (3 << 8)
108#define AD9528_PLL1_CHARGE_PUMP_MODE_PUMP_DOWN (2 << 8)
109#define AD9528_PLL1_CHARGE_PUMP_MODE_PUMP_UP (1 << 8)
110#define AD9528_PLL1_CHARGE_PUMP_MODE_TRISTATE (0 << 8)
111#define AD9528_PLL1_CHARGE_PUMP_TRISTATE (1 << 7)
112#define AD9528_PLL1_CHARGE_PUMP_CURRENT_nA(x) (((x) / 500) & 0x7F)
113
114/* AD9528_PLL1_CTRL */
115#define AD9528_PLL1_OSC_CTRL_FAIL_VCC_BY2_EN (1 << 19)
116#define AD9528_PLL1_REF_MODE(x) ((x) << 16)
117#define AD9528_PLL1_FEEDBACK_BYPASS_EN (1 << 13)
118#define AD9528_PLL1_REFB_BYPASS_EN (1 << 12)
119#define AD9528_PLL1_REFA_BYPASS_EN (1 << 11)
120#define AD9528_PLL1_SOURCE_VCXO (1 << 10)
121#define AD9528_PLL1_REFB_CMOS_NEG_INP_EN (1 << 9)
122#define AD9528_PLL1_REFA_CMOS_NEG_INP_EN (1 << 8)
123#define AD9528_PLL1_FREQ_DETECTOR_PD_EN (1 << 7)
124#define AD9528_PLL1_REFB_DIFF_RCV_EN (1 << 6)
125#define AD9528_PLL1_REFA_DIFF_RCV_EN (1 << 5)
126#define AD9528_PLL1_REFB_RCV_EN (1 << 4)
127#define AD9528_PLL1_REFA_RCV_EN (1 << 3)
128#define AD9528_PLL1_VCXO_RCV_PD_EN (1 << 2)
129#define AD9528_PLL1_OSC_IN_CMOS_NEG_INP_EN (1 << 1)
130#define AD9528_PLL1_OSC_IN_DIFF_EN (1 << 0)
131
132/* AD9528_PLL2_CHARGE_PUMP */
133#define AD9528_PLL2_CHARGE_PUMP_CURRENT_nA(x) ((x) / 3500)
134
135/* AD9528_PLL2_FEEDBACK_DIVIDER_AB */
136#define AD9528_PLL2_FB_NDIV_A_CNT(x) (((x) & 0x3) << 6)
137#define AD9528_PLL2_FB_NDIV_B_CNT(x) (((x) & 0x3F) << 0)
138#define AD9528_PLL2_FB_NDIV(a, b) (4 * (b) + (a))
139
140/* AD9528_PLL2_CTRL */
141#define AD9528_PLL2_LOCK_DETECT_PWR_DOWN_EN (1 << 7)
142#define AD9528_PLL2_FREQ_DOUBLER_EN (1 << 5)
143#define AD9528_PLL2_CHARGE_PUMP_MODE_NORMAL (3 << 0)
144#define AD9528_PLL2_CHARGE_PUMP_MODE_PUMP_DOWN (2 << 0)
145#define AD9528_PLL2_CHARGE_PUMP_MODE_PUMP_UP (1 << 0)
146#define AD9528_PLL2_CHARGE_PUMP_MODE_TRISTATE (0 << 0)
147
148/* AD9528_PLL2_VCO_CTRL */
149#define AD9528_PLL2_DOUBLER_R1_EN (1 << 4)
150#define AD9528_PLL2_FORCE_REFERENCE_VALID (1 << 2)
151#define AD9528_PLL2_FORCE_VCO_MIDSCALE (1 << 1)
152#define AD9528_PLL2_VCO_CALIBRATE (1 << 0)
153
154/* AD9528_PLL2_VCO_DIVIDER */
155#define AD9528_PLL2_VCO_DIV_M1_PWR_DOWN_EN (1 << 3)
156#define AD9528_PLL2_VCO_DIV_M1(x) (((x) & 0x7) << 0)
157
158/* AD9528_PLL2_LOOP_FILTER_CTRL */
159#define AD9528_PLL2_LOOP_FILTER_RZERO_BYPASS_EN (1 << 8)
160#define AD9528_PLL2_LOOP_FILTER_RPOLE2(x) (((x) & 0x3) << 6)
161#define AD9528_PLL2_LOOP_FILTER_RZERO(x) (((x) & 0x7) << 3)
162#define AD9528_PLL2_LOOP_FILTER_CPOLE1(x) (((x) & 0x7) << 0)
163
164/* AD9528_PLL2_R1_DIVIDER */
165#define AD9528_PLL2_R1_DIV(x) (((x) & 0x1F) << 0)
166
167/* AD9528_PLL2_N2_DIVIDER */
168#define AD9528_PLL2_N2_DIV(x) ((((x) - 1) & 0xFF) << 0)
169
170/* AD9528_CHANNEL_OUTPUT */
171#define AD9528_CLK_DIST_DIV_MIN 1
172#define AD9528_CLK_DIST_DIV_MAX 256
173#define AD9528_CLK_DIST_DIV(x) ((((x) - 1) & 0xFF) << 16)
174#define AD9528_CLK_DIST_DIV_MASK (0xFF << 16)
175#define AD9528_CLK_DIST_DIV_REV(x) ((((x) >> 16) & 0xFF) + 1)
176#define AD9528_CLK_DIST_DRIVER_MODE(x) (((x) & 0x3) << 14)
177#define AD9528_CLK_DIST_DRIVER_MODE_REV(x) (((x) >> 14) & 0x3)
178#define AD9528_CLK_DIST_DIV_PHASE(x) (((x) & 0x3F) << 8)
179#define AD9528_CLK_DIST_DIV_PHASE_REV(x) (((x) >> 8) & 0x3F)
180#define AD9528_CLK_DIST_CTRL(x) (((x) & 0x7) << 5)
181#define AD9528_CLK_DIST_CTRL_MASK (0x7 << 5)
182#define AD9528_CLK_DIST_CTRL_REV(x) (((x) >> 5) & 0x7)
183
184#if 0
185/* Leftovers */
186#define AD9528_CLK_DIST_INV_DIV_OUTPUT_EN (1 << 7)
187#endif
188
189/* AD9528_CHANNEL_SYNC */
190#define AD9528_CHANNEL_SYNC_SET (1 << 0)
191
192/* AD9528_CHANNEL_SYNC_IGNORE */
193#define AD9528_CHANNEL_IGNORE_MASK(x) (((x) & 0x3FFF) << 0)
194#define AD9528_CHANNEL_IGNORE_MASK_REV(x) (((x) >> 0) & 0x3FFF)
195
196/* AD9528_SYSREF_K_DIVIDER */
197#define AD9528_SYSREF_K_DIV(x) (((x) & 0xFFFF) << 0)
198#define AD9528_SYSREF_K_DIV_MIN (1u)
199#define AD9528_SYSREF_K_DIV_MAX (65535u)
200
201/* AD9528_SYSREF_CTRL */
202#define AD9528_SYSREF_SOURCE(x) (((x) & 0x3) << 14)
203#define AD9528_SYSREF_PATTERN_MODE(x) (((x) & 0x3) << 12)
204#define AD9528_SYSREF_NSHOT_MODE(x) (((x) & 0x7) << 9)
205#define AD9528_SYSREF_PATTERN_REQ (1 << 8)
206#define AD9528_SYSREF_REQUEST_BY_PIN (1 << 7)
207#define AD9528_SYSREF_PATTERN_TRIGGER_CTRL(x) (((x) & 0x3) << 5)
208#define AD9528_SYSREF_RESAMPLER_CLK_SRC_PLL1 (1 << 4)
209#define AD9528_SYSREF_PATTERN_CLK_SRC_PLL1 (1 << 3)
210#define AD9528_SYSREF_TEST_MODE(x) (((x) & 0x3) << 1)
211#define AD9528_SYSREF_RESET (1 << 0)
212
213/* AD9528_PD_EN */
214#define AD9528_PD_BIAS NO_OS_BIT(4)
215#define AD9528_PD_PLL2 NO_OS_BIT(3)
216#define AD9528_PD_PLL1 NO_OS_BIT(2)
217#define AD9528_PD_OUT_CLOCKS NO_OS_BIT(1)
218#define AD9528_PD_CHIP NO_OS_BIT(0)
219
220/* AD9528_CHANNEL_PD_EN */
221#define AD9528_CHANNEL_PD_MASK(x) (((x) & 0x3FFF) << 0)
222#define AD9528_CHANNEL_PD_MASK_REV(x) (((x) >> 0) & 0x3FFF)
223
224
225/* AD9528_READBACK */
226#define AD9528_IS_CALIBRATING (1 << 8)
227#define AD9528_PLL2_OK (1 << 7)
228#define AD9528_PLL1_OK (1 << 6)
229#define AD9528_VCXO_OK (1 << 5)
230#define AD9528_REFA_REFB_NOK (1 << 4)
231#define AD9528_REFB_OK (1 << 3)
232#define AD9528_REFA_OK (1 << 2)
233#define AD9528_PLL2_LOCKED (1 << 1)
234#define AD9528_PLL1_LOCKED (1 << 0)
235
236/* AD9528_STAT_PIN_EN */
237#define AD9528_STAT0_PIN_EN (1 << 2)
238#define AD9528_STAT1_PIN_EN (1 << 3)
239#define AD9528_STAT0_DIV_EN (1 << 1)
240#define AD9528_STAT1_DIV_EN (1 << 0)
241
242#define AD9528_NUM_CHAN 14
243
244#define AD9528_SPI_MAGIC 0x00FF05
245
246/* Output Driver Mode */
247#define DRIVER_MODE_LVDS 0
248#define DRIVER_MODE_LVDS_BOOST 1
249#define DRIVER_MODE_HSTL 2
250
251/* Output Signal Source */
252#define SOURCE_VCO 0
253#define SOURCE_VCXO 1
254#define SOURCE_SYSREF_VCO 2
255#define SOURCE_SYSREF_VCXO 3
256#define SOURCE_VCXO_INV 5
257#define SOURCE_SYSREF_VCXO_INV 7
258
259/* Reference Selection Mode */
260#define REF_MODE_STAY_ON_REFB 0
261#define REF_MODE_REVERT_TO_REFA 1
262#define REF_MODE_SELECT_REFA 2
263#define REF_MODE_SELECT_REFB 3
264#define REF_MODE_EXT_REF 4
265
266/* Sysref Source */
267#define SYSREF_SRC_EXTERNAL 0
268#define SYSREF_SRC_EXTERNAL_RESAMPLED 1
269#define SYSREF_SRC_INTERNAL 2
270
271/* Sysref Pattern Mode */
272#define SYSREF_PATTERN_NSHOT 0
273#define SYSREF_PATTERN_CONTINUOUS 1
274#define SYSREF_PATTERN_PRBS 2
275#define SYSREF_PATTERN_STOP 3
276
277/* Sysref NSHOT Mode
278 * Use for adi,sysref-nshot-mode */
279#define SYSREF_NSHOT_1_PULSE 1
280#define SYSREF_NSHOT_2_PULSES 2
281#define SYSREF_NSHOT_4_PULSES 3
282#define SYSREF_NSHOT_6_PULSES 4
283#define SYSREF_NSHOT_8_PULSES 5
284
285/* Sysref Trigger Mode
286 * Use for adi,sysref-request-trigger-mode */
287#define SYSREF_LEVEL_HIGH 0
288#define SYSREF_EDGE_RISING 2
289#define SYSREF_EDGE_FALLING 3
290
291/* Rpole2 resistor */
292#define RPOLE2_900_OHM 0
293#define RPOLE2_450_OHM 1
294#define RPOLE2_300_OHM 2
295#define RPOLE2_225_OHM 3
296
297/* Rzero resistor */
298#define RZERO_3250_OHM 0
299#define RZERO_2750_OHM 1
300#define RZERO_2250_OHM 2
301#define RZERO_2100_OHM 3
302#define RZERO_3000_OHM 4
303#define RZERO_2500_OHM 5
304#define RZERO_2000_OHM 6
305#define RZERO_1850_OHM 7
306
307/* Cpole1 capacitor */
308#define CPOLE1_0_PF 0
309#define CPOLE1_8_PF 1
310#define CPOLE1_16_PF 2
311#define CPOLE1_24_PF 3
312#define CPOLE1_32_PF 5
313#define CPOLE1_40_PF 6
314#define CPOLE1_48_PF 7
315
339
346 uint32_t vcxo_freq;
348 uint8_t spi3wire;
349
351 uint8_t refa_en;
353 uint8_t refb_en;
354
361
362 /*
363 * Valid if differential input disabled
364 * if false defaults to pos input
365 */
372
373 /* PLL1 Setting */
375 uint16_t refa_r_div;
377 uint16_t refb_r_div;
386
387 /* Reference */
389 uint8_t ref_mode;
391 uint8_t sysref_src;
395 uint16_t sysref_k_div;
402
405
406 /* PLL2 Setting */
416 uint8_t pll2_r1_div;
418 uint8_t pll2_n2_div;
423
424 /* Loop Filter PLL2 */
426 uint8_t rpole2;
428 uint8_t rzero;
430 uint8_t cpole1;
433
434 /* Output Channel Configuration */
436 uint32_t num_channels;
439
444};
445
446enum {
456};
457
458enum {
463};
464
469
471 /* SPI */
473 /* GPIO */
476 /* Device Settings */
479 /* CLK descriptors */
481
482 struct jesd204_dev *jdev;
485};
486
488 /* SPI */
490 /* GPIO */
492 /* Device Settings */
495};
496
497/* Helpers to avoid excess line breaks */
498#define AD_IFE(_pde, _a, _b) ((dev->pdata->_pde) ? _a : _b)
499#define AD_IF(_pde, _a) AD_IFE(_pde, _a, 0)
500
502int32_t ad9528_setup(struct ad9528_dev **device,
504int32_t ad9528_spi_read(struct ad9528_dev *dev,
505 uint32_t reg_addr,
506 uint32_t *reg_data);
507int32_t ad9528_spi_write(struct ad9528_dev *dev,
508 uint32_t reg_addr,
509 uint32_t reg_data);
510int32_t ad9528_spi_read_n(struct ad9528_dev *dev,
511 uint32_t reg_addr,
512 uint32_t *reg_data);
513int32_t ad9528_spi_write_n(struct ad9528_dev *dev,
514 uint32_t reg_addr,
515 uint32_t reg_data);
516int32_t ad9528_poll(struct ad9528_dev *dev,
517 uint32_t reg_addr,
518 uint32_t mask,
519 uint32_t data);
520int32_t ad9528_io_update(struct ad9528_dev *dev);
521int32_t ad9528_sync(struct ad9528_dev *dev);
522uint32_t ad9528_clk_round_rate(struct ad9528_dev *dev, uint32_t chan,
523 uint32_t rate);
524int32_t ad9528_clk_set_rate(struct ad9528_dev *dev, uint32_t chan,
525 uint32_t rate);
526int32_t ad9528_reset(struct ad9528_dev *dev);
527int32_t ad9528_remove(struct ad9528_dev *dev);
528
529#endif // __AD9528_H__
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int32_t ad9528_spi_read(struct ad9528_dev *dev, uint32_t reg_addr, uint32_t *reg_data)
Reads the value of the selected register.
Definition ad9528.c:75
uint32_t ad9528_clk_round_rate(struct ad9528_dev *dev, uint32_t chan, uint32_t rate)
Calculate closest possible rate.
Definition ad9528.c:1183
int32_t ad9528_poll(struct ad9528_dev *dev, uint32_t reg_addr, uint32_t mask, uint32_t data)
Poll register.
Definition ad9528.c:203
int32_t ad9528_setup(struct ad9528_dev **device, struct ad9528_init_param init_param)
Initializes the AD9528.
Definition ad9528.c:699
int32_t ad9528_init(struct ad9528_init_param *init_param)
Initializes the AD9528.
Definition ad9528.c:296
int32_t ad9528_sync(struct ad9528_dev *dev)
Updates the AD9528 configuration.
Definition ad9528.c:247
int32_t ad9528_spi_write_n(struct ad9528_dev *dev, uint32_t reg_addr, uint32_t reg_data)
Writes a value to the selected register.
Definition ad9528.c:170
@ AD9528_NUM_CLK_SRC
Definition ad9528.h:462
@ AD9528_SYSREF
Definition ad9528.h:461
@ AD9528_VCO
Definition ad9528.h:459
@ AD9528_VCXO
Definition ad9528.h:460
int32_t ad9528_spi_write(struct ad9528_dev *dev, uint32_t reg_addr, uint32_t reg_data)
Writes a value to the selected register.
Definition ad9528.c:105
int32_t ad9528_reset(struct ad9528_dev *dev)
Performs a hard reset on the AD9528.
Definition ad9528.c:1289
int32_t ad9528_spi_read_n(struct ad9528_dev *dev, uint32_t reg_addr, uint32_t *reg_data)
Reads the value of the selected register.
Definition ad9528.c:134
int32_t ad9528_io_update(struct ad9528_dev *dev)
Updates the AD9528 configuration.
Definition ad9528.c:233
@ AD9528_STAT_PLL2_LD
Definition ad9528.h:448
@ AD9528_STAT_REFAB_MISSING
Definition ad9528.h:451
@ AD9528_SYNC
Definition ad9528.h:455
@ AD9528_STAT_REFB
Definition ad9528.h:450
@ AD9528_STAT_PLL1_LD
Definition ad9528.h:447
@ AD9528_STAT_REFA
Definition ad9528.h:449
@ AD9528_STAT_VCXO
Definition ad9528.h:452
@ AD9528_STAT_PLL1_FB_CLK
Definition ad9528.h:453
@ AD9528_STAT_PLL2_FB_CLK
Definition ad9528.h:454
int32_t ad9528_clk_set_rate(struct ad9528_dev *dev, uint32_t chan, uint32_t rate)
Set channel rate.
Definition ad9528.c:1219
int32_t ad9528_remove(struct ad9528_dev *dev)
Free the resources allocated by ad9528_setup().
Definition ad9528.c:1120
Header file of Delay functions.
Header file of GPIO Interface.
Header file of SPI Interface.
Output channel configuration.
Definition ad9528.h:320
uint8_t driver_mode
Definition ad9528.h:328
uint8_t signal_source
Definition ad9528.h:329
uint8_t sync_ignore_en
Definition ad9528.h:324
uint16_t channel_divider
Definition ad9528.h:335
uint8_t divider_phase
Definition ad9528.h:333
uint8_t channel_num
Definition ad9528.h:322
int8_t extended_name[16]
Definition ad9528.h:337
uint8_t output_dis
Definition ad9528.h:326
Definition ad9528.h:470
struct no_os_gpio_desc * gpio_resetb
Definition ad9528.h:474
struct no_os_spi_desc * spi_desc
Definition ad9528.h:472
struct ad9528_state ad9528_st
Definition ad9528.h:477
struct no_os_clk_desc ** clk_desc
Definition ad9528.h:480
struct jesd204_dev * jdev
Definition ad9528.h:482
uint32_t jdev_lmfc_lemc_rate
Definition ad9528.h:483
uint32_t jdev_lmfc_lemc_gcd
Definition ad9528.h:484
struct no_os_gpio_desc * sysref_req_gpio
Definition ad9528.h:475
struct ad9528_platform_data * pdata
Definition ad9528.h:478
Definition ad9528.h:487
struct ad9528_platform_data * pdata
Definition ad9528.h:493
struct no_os_spi_init_param spi_init
Definition ad9528.h:489
struct no_os_gpio_init_param * gpio_resetb
Definition ad9528.h:491
bool export_no_os_clk
Definition ad9528.h:494
platform specific information
Definition ad9528.h:344
uint8_t sysref_req_trigger_mode
Definition ad9528.h:399
uint32_t pll2_charge_pump_current_nA
Definition ad9528.h:408
uint8_t refb_cmos_neg_inp_en
Definition ad9528.h:369
uint32_t jdev_max_sysref_freq
Definition ad9528.h:403
uint8_t cpole1
Definition ad9528.h:430
uint32_t jdev_desired_sysref_freq
Definition ad9528.h:404
uint8_t pll1_feedback_src_vcxo
Definition ad9528.h:381
uint8_t stat1_pin_func_sel
Definition ad9528.h:443
uint8_t sysref_src
Definition ad9528.h:391
uint8_t refa_diff_rcv_en
Definition ad9528.h:356
uint8_t pll2_r1_div
Definition ad9528.h:416
uint16_t sysref_k_div
Definition ad9528.h:395
uint8_t pll2_ndiv_a_cnt
Definition ad9528.h:410
bool sysref_req_en
Definition ad9528.h:401
uint8_t refb_diff_rcv_en
Definition ad9528.h:358
uint32_t num_channels
Definition ad9528.h:436
struct ad9528_channel_spec * channels
Definition ad9528.h:438
uint8_t refa_en
Definition ad9528.h:351
uint8_t rzero_bypass_en
Definition ad9528.h:432
uint8_t sysref_nshot_mode
Definition ad9528.h:397
uint8_t pll2_n2_div
Definition ad9528.h:418
uint8_t refa_cmos_neg_inp_en
Definition ad9528.h:367
bool pll2_bypass_en
Definition ad9528.h:422
uint8_t pll1_bypass_en
Definition ad9528.h:385
uint16_t pll1_feedback_div
Definition ad9528.h:379
uint8_t osc_in_cmos_neg_inp_en
Definition ad9528.h:371
uint16_t refa_r_div
Definition ad9528.h:375
uint8_t ref_mode
Definition ad9528.h:389
uint16_t refb_r_div
Definition ad9528.h:377
uint8_t refb_en
Definition ad9528.h:353
uint8_t rzero
Definition ad9528.h:428
uint8_t sysref_pattern_mode
Definition ad9528.h:393
uint8_t pll2_freq_doubler_en
Definition ad9528.h:414
uint8_t stat0_pin_func_sel
Definition ad9528.h:441
uint16_t pll1_charge_pump_current_nA
Definition ad9528.h:383
uint32_t vcxo_freq
Definition ad9528.h:346
uint8_t spi3wire
Definition ad9528.h:348
uint8_t pll2_vco_div_m1
Definition ad9528.h:420
uint8_t osc_in_diff_en
Definition ad9528.h:360
uint8_t pll2_ndiv_b_cnt
Definition ad9528.h:412
uint8_t rpole2
Definition ad9528.h:426
Definition ad9528.h:465
uint32_t vco_out_freq[AD9528_NUM_CLK_SRC]
Definition ad9528.h:466
uint32_t sysref_src_pll2
Definition ad9528.h:467
Definition ad9361_util.h:63
Structure holding CLK descriptor.
Definition no_os_clk.h:69
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