44#define ADF4382_SOFT_RESET_R_MSK NO_OS_BIT(7)
45#define ADF4382_LSB_FIRST_R_MSK NO_OS_BIT(6)
46#define ADF4382_ADDRESS_ASC_R_MSK NO_OS_BIT(5)
47#define ADF4382_SDO_ACTIVE_R_MSK NO_OS_BIT(4)
48#define ADF4382_SDO_ACTIVE_MSK NO_OS_BIT(3)
49#define ADF4382_ADDRESS_ASC_MSK NO_OS_BIT(2)
50#define ADF4382_LSB_FIRST_MSK NO_OS_BIT(1)
51#define ADF4382_SOFT_RESET_MSK NO_OS_BIT(0)
52#define ADF4382_RESET_CMD 0x81
55#define ADF4382_SDO_ACTIVE_SPI_3W 0x0
56#define ADF4382_SDO_ACTIVE_SPI_4W 0x1
58#define ADF4382_ADDR_ASC_AUTO_DECR 0x0
59#define ADF4382_ADDR_ASC_AUTO_INCR 0x1
61#define ADF4382_LSB_FIRST_MSB 0x0
62#define ADF4382_LSB_FIRST_LSB 0x1
64#define ADF4382_SOFT_RESET_N_OP 0x0
65#define ADF4382_SOFT_RESET_EN 0x1
68#define ADF4382_SINGLE_INSTR_MSK NO_OS_BIT(7)
69#define ADF4382_MASTER_RB_CTRL_MSK NO_OS_BIT(5)
72#define ADF4382_SPI_STREAM_EN 0x0
73#define ADF4382_SPI_STREAM_DIS 0x1
75#define ADF4382_RB_SLAVE_REG 0x0
76#define ADF4382_RB_MASTER_REG 0x1
79#define ADF4382_CHIP_TYPE 0x06
82#define ADF4382_PRODUCT_ID_LSB 0x08
83#define ADF4383_PRODUCT_ID_LSB 0x0F
86#define ADF4382_PRODUCT_ID_MSB 0x00
87#define ADF4383_PRODUCT_ID_MSB 0x00
90#define ADF4382_SCRATCHPAD_MSK NO_OS_GENMASK(7, 0)
93#define ADF4382_VENDOR_ID_LSB 0x56
96#define ADF4382_VENDOR_ID_MSB 0x04
99#define ADF4382_M_S_TRANSF_NO_OS_BIT_MSK NO_OS_BIT(0)
102#define ADF4382_N_INT_LSB_MSK NO_OS_GENMASK(7, 0)
105#define ADF4382_CLKOUT_DIV_MSK NO_OS_GENMASK(7, 5)
106#define ADF4382_INV_CLK_OUT_MSK NO_OS_BIT(4)
107#define ADF4382_N_INT_MSB_MSK NO_OS_GENMASK(3, 0)
110#define ADF4382_FRAC1WORD_LSB_MSK NO_OS_GENMASK(7, 0)
113#define ADF4382_FRAC1WORD_MID_MSK NO_OS_GENMASK(7, 0)
116#define ADF4382_FRAC1WORD_MSB_MSK NO_OS_GENMASK(7, 0)
119#define ADF4382_M_VCO_BAND_LSB_MSK NO_OS_BIT(7)
120#define ADF4382_M_VCO_CORE_MSK NO_OS_BIT(6)
121#define ADF4382_BIAS_DEC_MODE_MSK NO_OS_GENMASK(5, 3)
122#define ADF4382_INT_MODE_MSK NO_OS_BIT(2)
123#define ADF4382_PFD_POL_MSK NO_OS_BIT(1)
124#define ADF4382_FRAC1WORD_MSB NO_OS_BIT(0)
127#define ADF4382_M_VCO_BAND_MSB_MSK NO_OS_GENMASK(7, 0)
130#define ADF4382_FRAC2WORD_LSB_MSK NO_OS_GENMASK(7, 0)
133#define ADF4382_FRAC2WORD_MID_MSK NO_OS_GENMASK(7, 0)
136#define ADF4382_FRAC2WORD_MSB_MSK NO_OS_GENMASK(7, 0)
139#define ADF4382_MOD2WORD_LSB_MSK NO_OS_GENMASK(7, 0)
142#define ADF4382_MOD2WORD_MID_MSK NO_OS_GENMASK(7, 0)
145#define ADF4382_MOD2WORD_MSB_MSK NO_OS_GENMASK(7, 0)
148#define ADF4382_FINE_BLEED_LSB_MSK NO_OS_GENMASK(7, 0)
151#define ADF4382_EN_PHASE_RESYNC_MSK NO_OS_BIT(7)
152#define ADF4382_EN_REF_RST_MSK NO_OS_BIT(6)
153#define ADF4382_TIMED_SYNC_MSK NO_OS_BIT(5)
154#define ADF4382_COARSE_BLEED_MSK NO_OS_GENMASK(4, 1)
155#define ADF4382_FINE_BLEED_MSB_MSK NO_OS_BIT(0)
158#define ADF4382_SW_SYNC_MSK NO_OS_BIT(7)
159#define ADF4382_SPARE_1F_MSK NO_OS_BIT(6)
160#define ADF4382_BLEED_POL_MSK NO_OS_BIT(5)
161#define ADF4382_EN_BLEED_MSK NO_OS_BIT(4)
162#define ADF4382_CP_I_MSK NO_OS_GENMASK(3, 0)
165#define ADF4382_EN_AUTOCAL_MSK NO_OS_BIT(7)
166#define ADF4382_EN_RDBLR_MSK NO_OS_BIT(6)
167#define ADF4382_R_DIV_MSK NO_OS_GENMASK(5, 0)
170#define ADF4382_PHASE_WORD_LSB_MSK NO_OS_GENMASK(7, 0)
173#define ADF4382_PHASE_WORD_MID_MSK NO_OS_GENMASK(7, 0)
176#define ADF4382_PHASE_WORD_MSB_MSK NO_OS_GENMASK(7, 0)
179#define ADF4382_SPARE_24_MSK NO_OS_GENMASK(7, 5)
180#define ADF4382_DCLK_DIV_SEL_MSK NO_OS_BIT(4)
181#define ADF4382_DNCLK_DIV1_MSK NO_OS_GENMASK(3, 2)
182#define ADF4382_DCLK_DIV1_MSK NO_OS_GENMASK(1, 0)
185#define ADF4382_RESYNC_WAIT_LSB_MSK NO_OS_GENMASK(7, 0)
188#define ADF4382_RESYNC_WAIT_MSB_MSK NO_OS_GENMASK(7, 0)
191#define ADF4382_CAL_BLEED_FINE_MIN_MSK NO_OS_GENMASK(7, 4)
192#define ADF4382_BLEED_ADJ_SCALE_MSK NO_OS_GENMASK(3, 0)
195#define ADF4382_PH_RESYNC_RB_SEL_MSK NO_OS_BIT(7)
196#define ADF4382_LSB_P1_MSK NO_OS_BIT(6)
197#define ADF4382_VAR_MOD_EN_MSK NO_OS_BIT(5)
198#define ADF4382_DITHER1_SCALE_MSK NO_OS_GENMASK(4, 2)
199#define ADF4382_EN_DITHER2_MSK NO_OS_BIT(1)
200#define ADF4382_EN_DITHER1_MSK NO_OS_BIT(0)
203#define ADF4382_CLK2_OPWR_MSK NO_OS_GENMASK(7, 4)
204#define ADF4382_CLK1_OPWR_MSK NO_OS_GENMASK(3, 0)
207#define ADF4382_FN_DBL_MSK NO_OS_BIT(7)
208#define ADF4382_PD_NDIV_TL_MSK NO_OS_BIT(6)
209#define ADF4382_CLKOUT_BST_MSK NO_OS_BIT(5)
210#define ADF4382_PD_SYNC_MSK NO_OS_BIT(4)
211#define ADF4382_PD_CLK_MSK NO_OS_BIT(3)
212#define ADF4382_PD_RDET_MSK NO_OS_BIT(2)
213#define ADF4382_PD_ADC_MSK NO_OS_BIT(1)
214#define ADF4382_PD_CALGEN_MSK NO_OS_BIT(0)
217#define ADF4382_PD_ALL_MSK NO_OS_BIT(7)
218#define ADF4382_PD_RDIV_TL_MSK NO_OS_BIT(6)
219#define ADF4382_PD_NDIV_MSK NO_OS_BIT(5)
220#define ADF4382_PD_VCO_MSK NO_OS_BIT(4)
221#define ADF4382_PD_LD_MSK NO_OS_BIT(3)
222#define ADF4382_PD_PFDCP_MSK NO_OS_BIT(2)
223#define ADF4382_PD_CLKOUT1_MSK NO_OS_BIT(1)
224#define ADF4382_PD_CLKOUT2_MSK NO_OS_BIT(0)
227#define ADF4382_LDWIN_PW_MSK NO_OS_GENMASK(7, 5)
228#define ADF4382_LD_COUNT_OPWR_MSK NO_OS_GENMASK(4, 0)
231#define ADF4382_EN_DNCLK_MSK NO_OS_BIT(7)
232#define ADF4382_EN_DRCLK_MSK NO_OS_BIT(6)
233#define ADF4382_EN_LOL_MSK NO_OS_BIT(5)
234#define ADF4382_EN_LDWIN_MSK NO_OS_BIT(4)
235#define ADF4382_PDET_POL_MSK NO_OS_BIT(3)
236#define ADF4382_RST_LD_MSK NO_OS_BIT(2)
237#define ADF4382_LD_O_CTRL_MSK NO_OS_GENMASK(1, 0)
240#define ADF4382_MUXOUT_MSK NO_OS_GENMASK(7, 4)
241#define ADF4382_ABPW_WD_MSK NO_OS_BIT(3)
242#define ADF4382_EN_CPTEST_MSK NO_OS_BIT(2)
243#define ADF4382_CP_DOWN_MSK NO_OS_BIT(1)
244#define ADF4382_CP_UP_MSK NO_OS_BIT(0)
247#define ADF4382_BST_REF_MSK NO_OS_BIT(7)
248#define ADF4382_FILT_REF_MSK NO_OS_BIT(6)
249#define ADF4382_RDBLR_DC_MSK NO_OS_GENMASK(5, 0)
252#define ADF4382_MUTE_NCLK_MSK NO_OS_BIT(7)
253#define ADF4382_MUTE_RCLK_MSK NO_OS_BIT(6)
254#define ADF4382_REF_SEL_MSK NO_OS_BIT(5)
255#define ADF4382_INV_RDBLR_MSK NO_OS_BIT(4)
256#define ADF4382_RDBLR_DEL_SEL_MSK NO_OS_GENMASK(3, 0)
259#define ADF4382_SYNC_DEL_MSK NO_OS_GENMASK(7, 5)
260#define ADF4382_RST_SYS_MSK NO_OS_BIT(4)
261#define ADF4382_EN_ADC_CLK_MSK NO_OS_BIT(3)
262#define ADF4382_EN_VCAL_MSK NO_OS_BIT(2)
263#define ADF4382_CAL_CT_SEL_MSK NO_OS_BIT(1)
264#define ADF4382_DCLK_MODE_MSK NO_OS_BIT(0)
267#define ADF4382_SPARE_32_MSK NO_OS_BIT(7)
268#define ADF4382_BLEED_ADJ_CAL_MSK NO_OS_BIT(6)
269#define ADF4382_DEL_MODE_MSK NO_OS_BIT(5)
270#define ADF4382_EN_AUTO_ALIGN_MSK NO_OS_BIT(4)
271#define ADF4382_PHASE_ADJ_POL_MSK NO_OS_BIT(3)
272#define ADF4382_EFM3_MODE_MSK NO_OS_GENMASK(2, 0)
275#define ADF4382_PHASE_ADJUST_MSK NO_OS_GENMASK(7, 0)
278#define ADF4382_PHASE_ADJ_MSK NO_OS_BIT(7)
279#define ADF4382_DRCLK_DEL_MSK NO_OS_GENMASK(6, 4)
280#define ADF4382_DNCLK_DEL_MSK NO_OS_GENMASK(3, 1)
281#define ADF4382_RST_CNTR_MSK NO_OS_BIT(0)
284#define ADF4382_SPARE_35_MSK NO_OS_GENMASK(7, 6)
285#define ADF4382_M_VCO_BIAS_MSK NO_OS_GENMASK(5, 0)
288#define ADF4382_CLKODIV_DB_MSK NO_OS_BIT(7)
289#define ADF4382_DCLK_DIV_DB_MSK NO_OS_BIT(6)
290#define ADF4382_SPARE_36_MSK NO_OS_GENMASK(5, 2)
291#define ADF4382_EN_LUT_GEN_MSK NO_OS_BIT(1)
292#define ADF4382_EN_LUT_CAL_MSK NO_OS_BIT(0)
295#define ADF4382_CAL_COUNT_TO_MSK NO_OS_GENMASK(7, 0)
298#define ADF4382_CAL_VTUNE_TO_LSB_MSK NO_OS_GENMASK(7, 0)
301#define ADF4382_O_VCO_DB_MSK NO_OS_BIT(7)
302#define ADF4382_CAL_VTUNE_TO_MSB_MSK NO_OS_GENMASK(6, 0)
305#define ADF4382_CAL_VCO_TO_LSB_MSK NO_OS_GENMASK(7, 0)
308#define ADF4382_DEL_CTRL_DB_MSK NO_OS_BIT(7)
309#define ADF4382_CAL_VCO_TO_MSB_MSK NO_OS_GENMASK(6, 0)
312#define ADF4382_CNTR_DIV_WORD_MSK NO_OS_GENMASK(7, 0)
315#define ADF4382_SPARE_3D_MSK NO_OS_BIT(7)
316#define ADF4382_SYNC_SP_DB_MSK NO_OS_BIT(6)
317#define ADF4382_CMOS_OV_MSK NO_OS_BIT(5)
318#define ADF4382_READ_MODE_MSK NO_OS_BIT(4)
319#define ADF4382_CNTR_DIV_WORD_MSB_MSK NO_OS_GENMASK(3, 0)
322#define ADF4382_ADC_CLK_DIV_MSK NO_OS_GENMASK(7, 0)
325#define ADF4382_EN_ADC_CNV_MSK NO_OS_BIT(7)
326#define ADF4382_EN_ADC_VTEST_MSK NO_OS_BIT(6)
327#define ADF4382_ADC_VTEST_SEL_MSK NO_OS_BIT(5)
328#define ADF4382_ADC_MUX_SEL_MSK NO_OS_BIT(4)
329#define ADF4382_ADC_F_CONV_MSK NO_OS_BIT(3)
330#define ADF4382_ADC_C_CONV_MSK NO_OS_BIT(2)
331#define ADF4382_EN_ADC_MSK NO_OS_BIT(1)
332#define ADF4382_SPARE_3F_MSK NO_OS_BIT(0)
335#define ADF4382_EXT_DIV_DEC_SEL_MSK NO_OS_BIT(7)
336#define ADF4382_ADC_CLK_TEST_SEL_MSK NO_OS_BIT(6)
337#define ADF4382_MUTE_CLKOUT2_MSK NO_OS_GENMASK(5, 3)
338#define ADF4382_MUTE_CLKOUT1_MSK NO_OS_GENMASK(2, 0)
341#define ADF4382_EXT_DIV_MSK NO_OS_GENMASK(7, 5)
342#define ADF4382_EN_VCO_CAP_TEST_MSK NO_OS_BIT(4)
343#define ADF4382_EN_CALGEN_CAP_TEST_MSK NO_OS_BIT(3)
344#define ADF4382_EN_CP_CAP_TEST_MSK NO_OS_BIT(2)
345#define ADF4382_CAP_TEST_STATE_MSK NO_OS_BIT(1)
346#define ADF4382_TRANS_LOOP_SEL_MSK NO_OS_BIT(0)
349#define ADF4382_NDIV_PWRUP_TIMEOUT_MSK NO_OS_GENMASK(7, 0)
352#define ADF4382_CAL_BLEED_FINE_MAX_MSK NO_OS_GENMASK(7, 0)
355#define ADF4382_VCAL_ZERO_MSK NO_OS_BIT(7)
356#define ADF4382_VPTAT_CALGEN_MSK NO_OS_GENMASK(6, 0)
359#define ADF4382_SPARE_45_MSK NO_OS_BIT(7)
360#define ADF4382_VCTAT_CALGEN_MSK NO_OS_GENMASK(6, 0)
363#define ADF4382_NVMDIN_MSK NO_OS_GENMASK(7, 0)
366#define ADF4382_SPARE_47_MSK NO_OS_BIT(7)
367#define ADF4382_NVMADDR_MSK NO_OS_GENMASK(6, 3)
368#define ADF4382_NVMNO_OS_BIT_SEL NO_OS_GENMASK(2, 0)
371#define ADF4382_TRIM_LATCH_MSK NO_OS_BIT(7)
372#define ADF4382_NVMTEST_MSK NO_OS_BIT(6)
373#define ADF4382_NVMPROG_MSK NO_OS_BIT(5)
374#define ADF4382_NVMRD_MSK NO_OS_BIT(4)
375#define ADF4382_NVMSTART_MSK NO_OS_BIT(3)
376#define ADF4382_NVMON_MSK NO_OS_BIT(2)
377#define ADF4382_MARGIN_MSK NO_OS_GENMASK(1, 0)
380#define ADF4382_NVMDOUT_MSK NO_OS_GENMASK(7, 0)
383#define ADF4382_SCAN_MODE_CODE_MSK NO_OS_GENMASK(7, 0)
386#define ADF4382_TEMP_OFFSET_MSK NO_OS_GENMASK(7, 0)
389#define ADF4382_SPARE_4C_MSK NO_OS_GENMASK(7, 6)
390#define ADF4382_TEMP_SLOPE_MSK NO_OS_GENMASK(5, 0)
393#define ADF4382_VCO_FSM_TEST_MUX_MSK NO_OS_GENMASK(7, 5)
394#define ADF4382_SPARE_4D_MSK NO_OS_GENMASK(4, 3)
395#define ADF4382_O_VCO_BIAS_MSK NO_OS_BIT(2)
396#define ADF4382_O_VCO_BAND_MSK NO_OS_BIT(1)
397#define ADF4382_O_VCO_CORE_MSK NO_OS_BIT(0)
400#define ADF4382_SPARE_4E_MSK NO_OS_GENMASK(7, 5)
401#define ADF4382_EN_TWO_PASS_CAL_MSK NO_OS_BIT(4)
402#define ADF4382_TWO_PASS_BAND_START_MSK NO_OS_GENMASK(3, 0)
405#define ADF4382_LUT_SCALE_MSK NO_OS_GENMASK(7, 0)
408#define ADF4382_SPARE0_MSK NO_OS_GENMASK(7, 0)
411#define ADF4382_SPARE1_MSK NO_OS_GENMASK(7, 0)
414#define ADF4382_SYNC_REF_SPARE_MSK NO_OS_GENMASK(7, 4)
415#define ADF4382_SYNC_MON_DEL_MSK NO_OS_GENMASK(3, 0)
418#define ADF4382_SPARE_53_MSK NO_OS_BIT(7)
419#define ADF4382_PD_SYNC_MON_MSK NO_OS_BIT(6)
420#define ADF4382_SYNC_SEL_MSK NO_OS_BIT(5)
421#define ADF4382_RST_SYNC_MON_MSK NO_OS_BIT(4)
422#define ADF4382_SYNC_SH_DEL_MSK NO_OS_GENMASK(3, 0)
425#define ADF4382_ADC_ST_CNV_MSK NO_OS_BIT(0)
428#define ADF4382_FSM_BUSY_MSK NO_OS_BIT(1)
429#define ADF4382_LOCKED_MSK NO_OS_BIT(0)
432#define ADF4382_VCO_BAND_LSB_MSK NO_OS_GENMASK(7, 0)
435#define ADF4382_VCO_CORE_MSK NO_OS_BIT(1)
436#define ADF4382_VCO_BAND_MSB_MSK NO_OS_BIT(0)
439#define ADF4382_LUT_WR_ADDR_MSK NO_OS_GENMASK(5, 1)
440#define ADF4382_O_VCO_LUT_MSK NO_OS_BIT(0)
443#define ADF4382_M_LUT_BAND_LSB_MSK NO_OS_GENMASK(7, 0)
446#define ADF4382_M_LUT_N_LSB_MSK NO_OS_GENMASK(7, 2)
447#define ADF4382_M_LUT_CORE_MSK NO_OS_BIT(1)
448#define ADF4382_M_LUT_BAND_MSB_MSK NO_OS_BIT(0)
451#define ADF4382_M_LUT_N_MSB_MSK NO_OS_GENMASK(5, 0)
453#define ADF4382_SPI_3W_CFG(x) (no_os_field_prep(ADF4382_SDO_ACTIVE_MSK, x) | \
454 no_os_field_prep(ADF4382_SDO_ACTIVE_R_MSK, x))
456#define ADF4382_BLEED_MSB_MSK (ADF4382_COARSE_BLEED_MSK | \
457 ADF4382_FINE_BLEED_MSB_MSK)
459#define ADF4382_SPI_SCRATCHPAD_TEST 0x5A
462#define ADF4382_SPI_WRITE_CMD 0x0
463#define ADF4382_SPI_READ_CMD 0x8000
464#define ADF4382_SPI_DUMMY_DATA 0x00
465#define ADF4382_BUFF_SIZE_BYTES 3
466#define ADF4382_VCO_FREQ_MIN 11000000000U
467#define ADF4382_VCO_FREQ_MAX 22000000000U
468#define ADF4383_VCO_FREQ_MIN 10000000000U
469#define ADF4383_VCO_FREQ_MAX 20000000000U
470#define ADF4382A_VCO_FREQ_MIN 11500000000U
471#define ADF4382A_VCO_FREQ_MAX 21000000000U
472#define ADF4382_MOD1WORD 0x2000000U
473#define ADF4382_MOD2WORD_MAX 0xFFFFFFU
474#define ADF4382_PHASE_RESYNC_MOD2WORD_MAX 0x1FFFFU
475#define ADF4382_CHANNEL_SPACING_MAX 78125U
476#define ADF4382_PFD_FREQ_MAX 625000000U
477#define ADF4382_PFD_FREQ_FRAC_MAX 250000000U
478#define ADF4382_PFD_FREQ_MIN 5400000U
479#define ADF4382_DCLK_DIV1_0_MAX 160000000U
480#define ADF4382_DCLK_DIV1_1_MAX 320000000U
481#define ADF4382_CLKOUT_DIV_REG_VAL_MAX 4
482#define ADF4382A_CLKOUT_DIV_REG_VAL_MAX 2
484#define ADF4383_RFOUT_MAX 20000000000U
485#define ADF4383_RFOUT_MIN 625000000U
486#define ADF4382_RFOUT_MAX 22000000000U
487#define ADF4382_RFOUT_MIN 687500000U
488#define ADF4382A_RFOUT_MAX 21000000000U
489#define ADF4382A_RFOUT_MIN 2875000000U
490#define ADF4382_REF_CLK_MAX 5000000000U
491#define ADF4382_REF_CLK_MIN 10000000
492#define ADF4382_REF_DIV_MAX 63
493#define ADF4382_OUT_PWR_MAX 15
494#define ADF4382_CPI_VAL_MAX 15
495#define ADF4382_BLEED_WORD_MAX 8191
497#define ADF4382_VPTAT_CALGEN 46
498#define ADF4382_VCTAT_CALGEN 82
499#define ADF4382_FASTCAL_VPTAT_CALGEN 7
500#define ADF4382_FASTCAL_VCTAT_CALGEN 21
501#define ADF4382_PHASE_BLEED_CNST 2044000
502#define ADF4382_VCO_CAL_CNT 183
503#define ADF4382_VCO_CAL_VTUNE 640
504#define ADF4382_VCO_CAL_ALC 123
505#define ADF4382_POR_DELAY_US 200
506#define ADF4382_LKD_DELAY_US 1000
507#define ADF4382_COARSE_BLEED_CONST 180U
508#define ADF4382_FINE_BLEED_CONST_1 512U
509#define ADF4382_FINE_BLEED_CONST_2 250U
510#define ADF4382_CAL_VTUNE_TO 124U
511#define ADF4382_FSM_BUSY_LOOP_CNT 100U
516#define NS_TO_PS KHZ_PER_MHZ
697 uint8_t mask, uint8_t data);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:109
int adf4382_get_en_chan(struct adf4382_dev *dev, uint8_t ch, bool *en)
Gets the value the output channel if it is enabled or disable.
Definition adf4382.c:505
int adf4382_get_en_ref_doubler(struct adf4382_dev *dev, bool *en)
Gets the value the doubler if it is enabled or disable and stores it it the dev structure.
Definition adf4382.c:270
int adf4382_spi_read(struct adf4382_dev *dev, uint16_t reg_addr, uint8_t *data)
Reads data from ADF4382 over SPI.
Definition adf4382.c:99
int adf4382_set_sw_sync(struct adf4382_dev *dev, bool sw_sync)
Set Software SYNC Request. Setting SW_SYNC resets the RF block. Clearing SW_SYNC makes ready for a ne...
Definition adf4382.c:1846
int adf4382_set_en_lut_calibration(struct adf4382_dev *dev, bool en_lut_cal)
Sets Fast calibration LUT Calibration. Refer to en_fastcal function to first generate fastcal Lookup ...
Definition adf4382.c:1004
int adf4382_set_en_fast_calibration(struct adf4382_dev *dev, bool en_fast_cal)
Fast calibration function. Computes Minimum VCO frequency (fmin), uses the minimum NDIV value to gene...
Definition adf4382.c:778
int adf4382_get_ref_div(struct adf4382_dev *dev, int32_t *div)
Gets the value the reference divider.
Definition adf4382.c:316
int adf4382_set_freq(struct adf4382_dev *dev)
Set the output frequency.
Definition adf4382.c:1347
int adf4382_set_en_ref_doubler(struct adf4382_dev *dev, bool en)
Set the reference doubler to enable or disable based on the passed parameter. If the parameter is dif...
Definition adf4382.c:248
int adf4382_set_ezsync_setup(struct adf4382_dev *dev, bool sync)
Set the EZSYNC features' initial state. Awaits the SW_SYNC toggle.
Definition adf4382.c:1711
int adf4382_get_en_lut_calibration(struct adf4382_dev *dev, bool *en)
Gets Fast calibration LUT Calibration status.
Definition adf4382.c:984
int adf4382_set_timed_sync_setup(struct adf4382_dev *dev, bool sync)
Set Timed SYNC features' initial state. Uses SYNC pin.
Definition adf4382.c:1754
int adf4382_set_rfout(struct adf4382_dev *dev, uint64_t val)
Set the desired output frequency and reset everything over to maximum supported value of 22GHz (21GHz...
Definition adf4382.c:534
int adf4382_spi_update_bits(struct adf4382_dev *dev, uint16_t reg_addr, uint8_t mask, uint8_t data)
Updates the values of the ADF4382 register.
Definition adf4382.c:137
int adf4382_set_change_rfout(struct adf4382_dev *dev, uint64_t val)
Set the desired output frequency and reset everything over to maximum supported value of 22GHz (21GHz...
Definition adf4382.c:1087
int adf4382_set_en_chan(struct adf4382_dev *dev, uint8_t ch, bool en)
Set the output channel to enable or disable based on the passed parameter. If the parameter is differ...
Definition adf4382.c:482
int adf4382_get_cp_i(struct adf4382_dev *dev, int32_t *reg_val)
Gets the charge pump value from the register. The value will be between 0 and 15 on 8 bits....
Definition adf4382.c:360
adf4382_dev_id
Supported device ids.
Definition adf4382.h:521
@ ID_ADF4383
Definition adf4382.h:524
@ ID_ADF4382A
Definition adf4382.h:523
@ ID_ADF4382
Definition adf4382.h:522
int adf4382_set_bleed_word(struct adf4382_dev *dev, int32_t word)
Set the bleed word, which represents the value of the bleed current written to the register space.
Definition adf4382.c:382
int adf4382_set_cp_i(struct adf4382_dev *dev, int32_t reg_val)
Set the charge pump value which will be written to the register. The value will be between 0 and 15 o...
Definition adf4382.c:339
int adf4382_get_out_power(struct adf4382_dev *dev, uint8_t ch, int32_t *pwr)
Gets the output power register value.
Definition adf4382.c:455
int adf4382_get_rfout(struct adf4382_dev *dev, uint64_t *val)
Gets the user proposed output frequency.
Definition adf4382.c:572
int adf4382_spi_write(struct adf4382_dev *dev, uint16_t reg_addr, uint8_t data)
Writes data to ADF4382 over SPI.
Definition adf4382.c:69
int adf4382_get_change_rfout(struct adf4382_dev *dev, uint64_t *val)
Gets the user proposed output frequency from the device tree without reading from the device....
Definition adf4382.c:1072
int adf4382_init(struct adf4382_dev **device, struct adf4382_init_param *init_param)
Initializes the ADF4382.
Definition adf4382.c:1993
int adf4382_get_phase_sync_setup(struct adf4382_dev *dev, bool *en)
Gets the value of the SYNC powerdown bit.
Definition adf4382.c:1826
int adf4382_set_change_freq(struct adf4382_dev *dev)
Set the output frequency. This will set the required registers to device but skip NDIV value,...
Definition adf4382.c:1152
int adf4382_get_sw_sync(struct adf4382_dev *dev, bool *sw_sync)
Gets the value of the SW_SYNC bit.
Definition adf4382.c:1863
int adf4382_set_out_power(struct adf4382_dev *dev, uint8_t ch, int32_t pwr)
Set the output power register value of a channel and reset everything over to maximum supported value...
Definition adf4382.c:431
int adf4382_get_phase_pol(struct adf4382_dev *dev, bool *polarity)
Gets the polarity of the phase adjust.
Definition adf4382.c:1692
int adf4382_set_phase_adjust(struct adf4382_dev *dev, uint32_t phase_ps)
Set the phase adjustment in pico-seconds. The phase adjust will enable the Bleed current option as we...
Definition adf4382.c:1608
int adf4382_set_vco_cal_timeout(struct adf4382_dev *dev)
Computes and sets the VCO Calibration Timeout values.
Definition adf4382.c:1884
int adf4382_get_start_calibration(struct adf4382_dev *dev, bool *start_cal)
Get the status of start calibration. Will always return zero to allow users set it multiple times to ...
Definition adf4382.c:1324
int adf4382_set_ref_clk(struct adf4382_dev *dev, uint64_t val)
Set the desired reference frequency and reset everything over to maximum supported value of 5GHz to t...
Definition adf4382.c:203
int adf4382_remove(struct adf4382_dev *dev)
Free resources allocated for ADF4382.
Definition adf4382.c:2114
int adf4382_get_ref_clk(struct adf4382_dev *dev, uint64_t *val)
Gets the user proposed reference frequency.
Definition adf4382.c:230
int adf4382_set_phase_pol(struct adf4382_dev *dev, bool polarity)
Set the phase polarity. If pol = 0 then it will add the phase value otherwise it will subtract the ph...
Definition adf4382.c:1676
int adf4382_get_bleed_word(struct adf4382_dev *dev, int32_t *word)
Gets the value of the set bleed word.
Definition adf4382.c:401
int adf4382_reg_dump(struct adf4382_dev *dev)
Will output on the terminal the values of all the ADF4382 registers.
Definition adf4382.c:161
int adf4382_set_start_calibration(struct adf4382_dev *dev)
Set REG0010 value in device structure to the device to start autocal.
Definition adf4382.c:1335
int adf4382_set_ref_div(struct adf4382_dev *dev, int32_t div)
Set the reference divider value and reset everything over to maximum supported value of 63 to the max...
Definition adf4382.c:292
Header file of SPI Interface.
Header file of utility functions.
ADF4382 Device Descriptor.
Definition adf4382.h:553
uint8_t en_lut_cal
Definition adf4382.h:567
struct no_os_spi_desc * spi_desc
Definition adf4382.h:555
uint8_t en_lut_gen
Definition adf4382.h:566
bool ref_doubler_en
Definition adf4382.h:560
uint8_t cp_i
Definition adf4382.h:562
uint64_t vco_min
Definition adf4382.h:569
uint32_t phase_adj
Definition adf4382.h:565
uint16_t n_int
Definition adf4382.h:576
uint8_t ref_div
Definition adf4382.h:561
uint32_t cal_vtune_to
Definition adf4382.h:574
uint8_t clkout_div_reg_val_max
Definition adf4382.h:572
uint64_t vco_max
Definition adf4382.h:568
uint16_t bleed_word
Definition adf4382.h:563
uint8_t ld_count
Definition adf4382.h:564
uint8_t max_lpf_cap_value_uf
Definition adf4382.h:573
uint64_t ref_freq_hz
Definition adf4382.h:558
uint64_t freq_max
Definition adf4382.h:570
bool spi_3wire_en
Definition adf4382.h:556
bool cmos_3v3
Definition adf4382.h:557
uint64_t freq_min
Definition adf4382.h:571
uint64_t freq
Definition adf4382.h:559
ADF4382 Initialization Parameters structure.
Definition adf4382.h:531
uint16_t bleed_word
Definition adf4382.h:541
uint8_t max_lpf_cap_value_uf
Definition adf4382.h:545
bool ref_doubler_en
Definition adf4382.h:538
struct no_os_spi_init_param * spi_init
Definition adf4382.h:533
bool spi_3wire_en
Definition adf4382.h:534
uint8_t cp_i
Definition adf4382.h:540
uint8_t ld_count
Definition adf4382.h:542
enum adf4382_dev_id id
Definition adf4382.h:546
bool cmos_3v3
Definition adf4382.h:535
uint64_t ref_freq_hz
Definition adf4382.h:536
uint8_t ref_div
Definition adf4382.h:539
uint8_t en_lut_cal
Definition adf4382.h:544
uint8_t en_lut_gen
Definition adf4382.h:543
uint64_t freq
Definition adf4382.h:537
ADF4382 register initialization.
Definition ad9361_util.h:63
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
ADF4382 register format structure for default values.
Definition adf4371.c:180
uint8_t val
Definition adf4371.c:182
uint16_t reg
Definition adf4371.c:181