43#define ADF4106_LE_OUT no_os_gpio_direction_output(dev->gpio_le, \
43#define ADF4106_LE_OUT no_os_gpio_direction_output(dev->gpio_le, \ …
45#define ADF4106_LE_LOW no_os_gpio_set_value(dev->gpio_le, \
45#define ADF4106_LE_LOW no_os_gpio_set_value(dev->gpio_le, \ …
47#define ADF4106_LE_HIGH no_os_gpio_set_value(dev->gpio_le, \
47#define ADF4106_LE_HIGH no_os_gpio_set_value(dev->gpio_le, \ …
50#define ADF4106_CE_OUT no_os_gpio_direction_output(dev->gpio_ce, \
50#define ADF4106_CE_OUT no_os_gpio_direction_output(dev->gpio_ce, \ …
52#define ADF4106_CE_LOW no_os_gpio_set_value(dev->gpio_ce, \
52#define ADF4106_CE_LOW no_os_gpio_set_value(dev->gpio_ce, \ …
54#define ADF4106_CE_HIGH no_os_gpio_set_value(dev->gpio_ce, \
54#define ADF4106_CE_HIGH no_os_gpio_set_value(dev->gpio_ce, \ …
57#define ADF4106_LE2_OUT no_os_gpio_direction_output(dev->gpio_le2, \
57#define ADF4106_LE2_OUT no_os_gpio_direction_output(dev->gpio_le2, \ …
59#define ADF4106_LE2_LOW no_os_gpio_set_value(dev->gpio_le2, \
59#define ADF4106_LE2_LOW no_os_gpio_set_value(dev->gpio_le2, \ …
61#define ADF4106_LE2_HIGH no_os_gpio_set_value(dev->gpio_le2, \
61#define ADF4106_LE2_HIGH no_os_gpio_set_value(dev->gpio_le2, \ …
64#define ADF4106_CE2_OUT no_os_gpio_direction_output(dev->gpio_ce2, \
64#define ADF4106_CE2_OUT no_os_gpio_direction_output(dev->gpio_ce2, \ …
66#define ADF4106_CE2_LOW no_os_gpio_set_value(dev->gpio_ce2, \
66#define ADF4106_CE2_LOW no_os_gpio_set_value(dev->gpio_ce2, \ …
68#define ADF4106_CE2_HIGH no_os_gpio_set_value(dev->gpio_ce2, \
68#define ADF4106_CE2_HIGH no_os_gpio_set_value(dev->gpio_ce2, \ …
72#define ADF4106_CTRL_MASK 0x3
74#define ADF4106_CTRL_R_COUNTER 0
75#define ADF4106_CTRL_N_COUNTER 1
76#define ADF4106_CTRL_FUNCTION_LATCH 2
77#define ADF4106_CTRL_INIT_LATCH 3
81#define ADF4106_R_COUNTER_OFFSET 2
82#define ADF4106_R_COUNTER_MASK 0x3FFFul
83#define ADF4106_R_COUNTER(x) ((x) & ADF4106_R_COUNTER_MASK) \
84 << ADF4106_R_COUNTER_OFFSET
83#define ADF4106_R_COUNTER(x) ((x) & ADF4106_R_COUNTER_MASK) \ …
86#define ADF4106_R_ABP_OFFSET 16
87#define ADF4106_R_ABP_MASK 0x3
88#define ADF4106_R_ABP(x) ((x) & ADF4106_R_ABP_MASK) \
89 << ADF4106_R_ABP_OFFSET
88#define ADF4106_R_ABP(x) ((x) & ADF4106_R_ABP_MASK) \ …
90#define ADF4106_R_ABP_2_9NS 0
91#define ADF4106_R_ABP_1_3NS 1
92#define ADF4106_R_ABP_6_0NS 2
95#define ADF4106_R_TMB_OFFSET 18
96#define ADF4106_R_TMB_MASK 0x1
97#define ADF4106_R_TMB(x) ((x) & ADF4106_R_TMB_MASK) \
98 << ADF4106_R_TMB_OFFSET
97#define ADF4106_R_TMB(x) ((x) & ADF4106_R_TMB_MASK) \ …
99#define ADF4106_R_TMB_NORMAL 0
101#define ADF4106_R_LDP_OFFSET 20
102#define ADF4106_R_LDP_MASK 0x1
103#define ADF4106_R_LDP(x) ((x) & ADF4106_R_LDP_MASK) \
104 << ADF4106_R_LDP_OFFSET
103#define ADF4106_R_LDP(x) ((x) & ADF4106_R_LDP_MASK) \ …
105#define ADF4106_R_LDP_3 0
106#define ADF4106_R_LDP_5 1
109#define ADF4106_N_COUNTER_A_OFFSET 2
110#define ADF4106_N_COUNTER_A_MASK 0x3F
111#define ADF4106_N_COUNTER_A(x) ((x) & ADF4106_N_COUNTER_A_MASK) \
112 << ADF4106_N_COUNTER_A_OFFSET
111#define ADF4106_N_COUNTER_A(x) ((x) & ADF4106_N_COUNTER_A_MASK) \ …
113#define ADF4106_N_COUNTER_B_OFFSET 8
114#define ADF4106_N_COUNTER_B_MASK 0x1FFF
115#define ADF4106_N_COUNTER_B(x) ((x) & ADF4106_N_COUNTER_B_MASK) \
116 << ADF4106_N_COUNTER_B_OFFSET
115#define ADF4106_N_COUNTER_B(x) ((x) & ADF4106_N_COUNTER_B_MASK) \ …
118#define ADF4106_N_CP_OFFSET 21
119#define ADF4106_N_CP_MASK 0x1
120#define ADF4106_N_CP(x) ((x) & ADF4106_N_CP_MASK) \
121 << ADF4106_N_CP_OFFSET
120#define ADF4106_N_CP(x) ((x) & ADF4106_N_CP_MASK) \ …
122#define ADF4106_N_CP_GAIN_1 0
123#define ADF4106_N_CP_GAIN_2 1
127#define ADF4106_CR_OFFSET 2
128#define ADF4106_CR_MASK 0x1ul
129#define ADF4106_CR(x) ((x) & ADF4106_CR_MASK) \
129#define ADF4106_CR(x) ((x) & ADF4106_CR_MASK) \ …
132#define ADF4106_PD1_OFFSET 3
133#define ADF4106_PD1_MASK 0x1
134#define ADF4106_PD1(x) ((x) & ADF4106_PD1_MASK) \
135 << ADF4106_PD1_OFFSET
134#define ADF4106_PD1(x) ((x) & ADF4106_PD1_MASK) \ …
137#define ADF4106_MUXOUT_OFFSET 4
138#define ADF4106_MUXOUT_MASK 0x7
139#define ADF4106_MUXOUT(x) ((x) & ADF4106_MUXOUT_MASK) \
140 << ADF4106_MUXOUT_OFFSET
139#define ADF4106_MUXOUT(x) ((x) & ADF4106_MUXOUT_MASK) \ …
142#define ADF4106_PDPOL_OFFSET 7
143#define ADF4106_PDPOL_MASK 0x1
144#define ADF4106_PDPOL(x) ((x) & ADF4106_PDPOL_MASK) \
145 << ADF4106_PDPOL_OFFSET
144#define ADF4106_PDPOL(x) ((x) & ADF4106_PDPOL_MASK) \ …
147#define ADF4106_CP_OFFSET 8
148#define ADF4106_CP_MASK 0x1
149#define ADF4106_CP(x) ((x) & ADF4106_CP_MASK) \
149#define ADF4106_CP(x) ((x) & ADF4106_CP_MASK) \ …
152#define ADF4106_FASTLOCK_OFFSET 9
153#define ADF4106_FASTLOCK_MASK 0x3
154#define ADF4106_FASTLOCK(x) ((x) & ADF4106_FASTLOCK_MASK) \
155 << ADF4106_FASTLOCK_OFFSET
154#define ADF4106_FASTLOCK(x) ((x) & ADF4106_FASTLOCK_MASK) \ …
157#define ADF4106_TCC_OFFSET 11
158#define ADF4106_TCC_MASK 0xF
159#define ADF4106_TCC(x) ((x) & ADF4106_TCC_MASK) \
160 << ADF4106_TCC_OFFSET
159#define ADF4106_TCC(x) ((x) & ADF4106_TCC_MASK) \ …
162#define ADF4106_CS1_OFFSET 15
163#define ADF4106_CS1_MASK 0x7
164#define ADF4106_CS1(x) ((x) << ADF4106_CS1_OFFSET)
165#define ADF4106_CS2_OFFSET 18
166#define ADF4106_CS2_MASK 0x7
167#define ADF4106_CS2(x) ((x) << ADF4106_CS2_OFFSET)
170#define ADF4106_PD2_OFFSET 21
171#define ADF4106_PD2_MASK 0x1
172#define ADF4106_PD2(x) ((x) & ADF4106_PD2_MASK) \
173 << ADF4106_PD2_OFFSET
172#define ADF4106_PD2(x) ((x) & ADF4106_PD2_MASK) \ …
175#define ADF4106_PS_OFFSET 22
176#define ADF4106_PS_MASK 0x3
177#define ADF4106_PS(x) ((x) & ADF4106_PS_MASK) \
177#define ADF4106_PS(x) ((x) & ADF4106_PS_MASK) \ …
181#define ADF4106_CR_NORMAL 0
182#define ADF4106_CR_RESET 1
184#define ADF4106_PD1_NORMAL 0
185#define ADF4106_PD1_POWER_DOWN 1
187#define ADF4106_MUXOUT_3STATE 0
188#define ADF4106_MUXOUT_DLOCK_DETECT 1
189#define ADF4106_MUXOUT_NDIV_OUTPUT 2
190#define ADF4106_MUXOUT_AVDD 3
191#define ADF4106_MUXOUT_RDIV_OUTPUT 4
192#define ADF4106_MUXOUT_NCH_OPENDRAIN 5
193#define ADF4106_MUXOUT_SERIAL_OUTPUT 6
194#define ADF4106_MUXOUT_DGND 7
196#define ADF4106_PDPOL_NEGATIVE 0
197#define ADF4106_PDPOL_POSITIVE 1
199#define ADF4106_CP_NORMAL 0
200#define ADF4106_CP_THREE_STATE 1
202#define ADF4106_FASTLOCK_DISABLE 0
203#define ADF4106_FASTLOCK_MODE1 1
204#define ADF4106_FASTLOCK_MODE2 3
206#define ADF4106_TCC_3 0
207#define ADF4106_TCC_7 1
208#define ADF4106_TCC_11 2
209#define ADF4106_TCC_15 3
210#define ADF4106_TCC_19 4
211#define ADF4106_TCC_23 5
212#define ADF4106_TCC_27 6
213#define ADF4106_TCC_31 7
214#define ADF4106_TCC_35 8
215#define ADF4106_TCC_39 9
216#define ADF4106_TCC_43 10
217#define ADF4106_TCC_47 11
218#define ADF4106_TCC_51 12
219#define ADF4106_TCC_55 13
220#define ADF4106_TCC_59 14
221#define ADF4106_TCC_63 15
223#define ADF4106_CS_0_62 0
224#define ADF4106_CS_1_25 1
225#define ADF4106_CS_1_87 2
226#define ADF4106_CS_2_5 3
227#define ADF4106_CS_3_12 4
228#define ADF4106_CS_3_75 5
229#define ADF4106_CS_4_37 6
230#define ADF4106_CS_5_0 7
232#define ADF4106_ASYNC_PWD 0
233#define ADF4106_SYNC_PWD 1
235#define ADF4106_PS_8_9 0
236#define ADF4106_PS_16_17 1
237#define ADF4106_PS_32_33 2
238#define ADF4106_PS_64_65 3
241#define ADF4106_PRESCALE(x) (8 << (x))
374 uint32_t latch_data);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int8_t adf4106_init(struct adf4106_dev **device, struct adf4106_init_param init_param)
Initialize SPI and Initial Values for ADF4106 Board.
Definition adf4106.c:79
adf4106_init_t
Definition adf4106.h:319
@ INIT_COUNTER_RESET
Definition adf4106.h:322
@ INIT_CEPIN
Definition adf4106.h:321
@ INIT_LATCH
Definition adf4106.h:320
uint32_t adf4106_read_latch(struct adf4106_dev *dev, uint8_t latch_type)
Return the value of a desired latch.
Definition adf4106.c:343
void adf4106_init_latch_method(struct adf4106_dev *dev)
Initialization latch method.
Definition adf4106.c:209
void adf4106_init_counte_reset_method(struct adf4106_dev *dev)
Counter reset method.
Definition adf4106.c:289
int32_t adf4106_remove(struct adf4106_dev *dev)
Free the resources allocated by adf4106_init().
Definition adf4106.c:145
void adf4106_init_cepin_method(struct adf4106_dev *dev)
CE Pin method.
Definition adf4106.c:249
uint64_t adf4106_set_frequency(struct adf4106_dev *dev, uint64_t frequency)
Sets the output frequency.
Definition adf4106.c:394
adf4106_type_t
Definition adf4106.h:312
@ ID_ADF4106
Definition adf4106.h:315
@ ID_ADF4001
Definition adf4106.h:313
@ ID_ADF4002
Definition adf4106.h:314
void adf4106_update_latch(struct adf4106_dev *dev, uint32_t latch_data)
Update one of the latch via the SPI interface.
Definition adf4106.c:167
Header file of Delay functions.
Header file of GPIO Interface.
Header file of SPI Interface.
uint64_t vco_max_frequency
Definition adf4106.h:326
uint32_t pfd_max_frequency
Definition adf4106.h:327
uint32_t vco_min_frequency
Definition adf4106.h:328
uint32_t pfd_min_frequency
Definition adf4106.h:329
uint32_t r_latch
Definition adf4106.h:345
struct no_os_spi_desc * spi_desc
Definition adf4106.h:334
struct no_os_gpio_desc * gpio_le2
Definition adf4106.h:338
struct no_os_gpio_desc * gpio_le
Definition adf4106.h:336
struct adf4106_settings_t adf4106_st
Definition adf4106.h:342
uint32_t i_latch
Definition adf4106.h:348
uint32_t n_latch
Definition adf4106.h:346
struct adf4106_chip_info chip_info
Definition adf4106.h:341
uint32_t f_latch
Definition adf4106.h:347
enum adf4106_type_t this_device
Definition adf4106.h:343
struct no_os_gpio_desc * gpio_ce
Definition adf4106.h:337
struct no_os_gpio_desc * gpio_ce2
Definition adf4106.h:339
struct no_os_gpio_init_param gpio_ce2
Definition adf4106.h:358
enum adf4106_init_t init_method
Definition adf4106.h:361
struct no_os_spi_init_param spi_init
Definition adf4106.h:353
struct no_os_gpio_init_param gpio_ce
Definition adf4106.h:356
struct adf4106_settings_t adf4106_st
Definition adf4106.h:362
struct no_os_gpio_init_param gpio_le2
Definition adf4106.h:357
enum adf4106_type_t this_device
Definition adf4106.h:360
struct no_os_gpio_init_param gpio_le
Definition adf4106.h:355
store the value of all the latch and the input reference frequency
Definition adf4106.h:249
uint8_t a_n_counter
Definition adf4106.h:273
uint8_t anti_backlash_width
Definition adf4106.h:263
uint8_t phase_detector_pol
Definition adf4106.h:287
uint8_t cp_gain
Definition adf4106.h:277
uint8_t current_setting2
Definition adf4106.h:303
uint8_t muxout_control
Definition adf4106.h:285
uint8_t current_setting1
Definition adf4106.h:299
uint8_t power_down1
Definition adf4106.h:283
uint32_t ref_in
Definition adf4106.h:252
uint8_t test_mode_bits
Definition adf4106.h:265
uint32_t pfd_max
Definition adf4106.h:255
uint8_t cp_type
Definition adf4106.h:289
uint16_t b_n_counter
Definition adf4106.h:275
uint8_t timer_counter_control
Definition adf4106.h:295
uint16_t ref_counter
Definition adf4106.h:258
uint8_t lock_detect_precision
Definition adf4106.h:269
uint8_t fast_lock_mode
Definition adf4106.h:291
uint8_t power_down2
Definition adf4106.h:305
uint8_t counter_reset
Definition adf4106.h:281
uint8_t prescaler_value
Definition adf4106.h:307
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