no-OS
ad6676.h
Go to the documentation of this file.
1 /***************************************************************************/
34 #ifndef AD6676_H_
35 #define AD6676_H_
36 
37 /******************************************************************************/
38 /***************************** Include Files **********************************/
39 /******************************************************************************/
40 #include <stdint.h>
41 #include "no_os_util.h"
42 #include "no_os_delay.h"
43 #include "no_os_spi.h"
44 
45 /******************************************************************************/
46 /********************** Macros and Constants Definitions **********************/
47 /******************************************************************************/
48 #define AD6676_SPI_CONFIG 0x000
49 #define AD6676_DEVICE_CONFIG 0x002
50 #define AD6676_CHIP_TYPE 0x003
51 #define AD6676_CHIP_ID0 0x004
52 #define AD6676_CHIP_ID1 0x005
53 #define AD6676_GRADE_REVISION 0x006
54 #define AD6676_VENDOR_ID0 0x00C
55 #define AD6676_VENDOR_ID1 0x00D
56 #define AD6676_PCBL_DONE 0x0FE
57 
58 /* CONFIGURATION SETTINGS */
59 #define AD6676_FADC_0 0x100
60 #define AD6676_FADC_1 0x101
61 #define AD6676_FIF_0 0x102
62 #define AD6676_FIF_1 0x103
63 #define AD6676_BW_0 0x104
64 #define AD6676_BW_1 0x105
65 #define AD6676_LEXT 0x106
66 #define AD6676_MRGN_L 0x107
67 #define AD6676_MRGN_U 0x108
68 #define AD6676_MRGN_IF 0x109
69 #define AD6676_XSCALE_1 0x10A
70 
71 /* BP SD ADC CALIBRATION/PROFILE */
72 #define AD6676_CAL_CTRL 0x115
73 #define AD6676_CAL_CMD 0x116
74 #define AD6676_CAL_DONE 0x117
75 #define AD6676_ADC_CONFIG 0x118
76 #define AD6676_FORCE_END_CAL 0x11A
77 
78 /* DIGITAL SIGNAL PATH */
79 #define AD6676_DEC_MODE 0x140
80 #define AD6676_MIX1_TUNING 0x141
81 #define AD6676_MIX2_TUNING 0x142
82 #define AD6676_MIX1_INIT 0x143
83 #define AD6676_MIX2_INIT_LSB 0x144
84 #define AD6676_MIX2_INIT_MSB 0x145
85 #define AD6676_DP_CTRL 0x146
86 
87 /* POWER CONTROL */
88 #define AD6676_STANDBY 0x150
89 #define AD6676_PD_DIG 0x151
90 #define AD6676_PD_PIN_CTRL 0x152
91 #define AD6676_STBY_DAC 0x250
92 
93 /* ATTENUATOR */
94 #define AD6676_ATTEN_MODE 0x180
95 #define AD6676_ATTEN_VALUE_PIN0 0x181
96 #define AD6676_ATTEN_VALUE_PIN1 0x182
97 #define AD6676_ATTEN_INIT 0x183
98 #define AD6676_ATTEN_CTL 0x184
99 
100 /* ADC RESET CONTROL */
101 #define AD6676_ADCRE_THRH 0x188
102 #define AD6676_ADCRE_PULSE_LEN 0x189
103 #define AD6676_ATTEN_STEP_RE 0x18A
104 #define AD6676_TIME_PER_STEP 0x18B
105 
106 /* PEAK DETECTOR AND AGC FLAG CONTROL */
107 #define AD6676_ADC_UNSTABLE 0x18F
108 #define AD6676_PKTHRH0_LSB 0x193
109 #define AD6676_PKTHRH0_MSB 0x194
110 #define AD6676_PKTHRH1_LSB 0x195
111 #define AD6676_PKTHRH1_MSB 0x196
112 #define AD6676_LOWTHRH_LSB 0x197
113 #define AD6676_LOWTHRH_MSB 0x198
114 #define AD6676_DWELL_TIME_MANTISSA 0x199
115 #define AD6676_DWELL_TIME_EXP 0x19A
116 #define AD6676_FLAG0_SEL 0x19B
117 #define AD6676_FLAG1_SEL 0x19C
118 #define AD6676_EN_FLAG 0x19E
119 
120 /* GPIO CONFIGURATION */
121 #define AD6676_FORCE_GPIO 0x1B0
122 #define AD6676_FORCE_GPIO_OUT 0x1B1
123 #define AD6676_FORCE_GPIO_VAL 0x1B2
124 #define AD6676_READ_GPO 0x1B3
125 #define AD6676_READ_GPI 0x1B4
126 
127 /* AD6676 JESD204B INTERFACE */
128 #define AD6676_DID 0x1C0
129 #define AD6676_BID 0x1C1
130 #define AD6676_L 0x1C3
131 #define AD6676_F 0x1C4
132 #define AD6676_K 0x1C5
133 #define AD6676_M 0x1C6
134 #define AD6676_S 0x1C9
135 #define AD6676_HD 0x1CA
136 #define AD6676_RES1 0x1CB
137 #define AD6676_RES2 0x1CC
138 #define AD6676_LID0 0x1D0
139 #define AD6676_LID1 0x1D1
140 #define AD6676_FCHK0 0x1D8
141 #define AD6676_FCHK1 0x1D9
142 #define AD6676_EN_LFIFO 0x1E0
143 #define AD6676_SWAP 0x1E1
144 #define AD6676_LANE_PD 0x1E2
145 #define AD6676_MIS1 0x1E3
146 #define AD6676_SYNC_PIN 0x1E4
147 #define AD6676_TEST_GEN 0x1E5
148 #define AD6676_KF_ILAS 0x1E6
149 #define AD6676_SYNCB_CTRL 0x1E7
150 #define AD6676_MIX_CTRL 0x1E8
151 #define AD6676_K_OFFSET 0x1E9
152 #define AD6676_SYSREF 0x1EA
153 #define AD6676_SER1 0x1EB
154 #define AD6676_SER2 0x1EC
155 
156 #define AD6676_CLKSYN_ENABLE 0x2A0
157 #define AD6676_CLKSYN_INT_N_LSB 0x2A1
158 #define AD6676_CLKSYN_INT_N_MSB 0x2A2
159 #define AD6676_CLKSYN_LOGEN 0x2A5
160 #define AD6676_CLKSYN_KVCO_VCO 0x2A9
161 #define AD6676_CLKSYN_VCO_BIAS 0x2AA
162 #define AD6676_CLKSYN_VCO_CAL 0x2AB
163 #define AD6676_CLKSYN_I_CP 0x2AC
164 #define AD6676_CLKSYN_CP_CAL 0x2AD
165 #define AD6676_CLKSYN_VCO_VAR 0x2B7
166 #define AD6676_CLKSYN_R_DIV 0x2BB
167 #define AD6676_CLKSYN_STATUS 0x2BC
168 #define AD6676_JESDSYN_STATUS 0x2DC
169 
170 #define AD6676_SHUFFLE_THREG0 0x342
171 #define AD6676_SHUFFLE_THREG1 0x343
172 
173 /*
174  * AD6676_SPI_CONFIG
175  */
176 
177 #define SPI_CONF_SW_RESET (0x81)
178 #define SPI_CONF_SDIO_DIR (0x18)
179 
180 
181 /*
182  * AD6676_CLKSYN_STATUS, AD6676_JESDSYN_STATUS
183  */
184 #define SYN_STAT_PLL_LCK (1 << 3)
185 #define SYN_STAT_VCO_CAL_BUSY (1 << 1)
186 #define SYN_STAT_CP_CAL_DONE (1 << 0)
187 
188 /*
189  * AD6676_DP_CTRL
190  */
191 #define DP_CTRL_OFFSET_BINARY (1 << 0)
192 #define DP_CTRL_TWOS_COMPLEMENT (0 << 0)
193 
194 /*
195  * AD6676_TEST_GEN
196  */
197 #define TESTGENMODE_OFF 0x0
198 #define TESTGENMODE_ALT_CHECKERBOARD 0x1
199 #define TESTGENMODE_ONE_ZERO_TOGGLE 0x2
200 #define TESTGENMODE_PN23_SEQ 0x3
201 #define TESTGENMODE_PN9_SEQ 0x4
202 #define TESTGENMODE_REP_USER_PAT 0x5
203 #define TESTGENMODE_SING_USER_PAT 0x6
204 #define TESTGENMODE_RAMP 0x7
205 #define TESTGENMODE_MOD_RPAT 0x8
206 #define TESTGENMODE_JSPAT 0x10
207 #define TESTGENMODE_JTSPAT 0x11
208 
209 /*
210  * AD6676_CLKSYN_R_DIV
211  */
212 
213 #define R_DIV(x) ((x) << 6)
214 #define CLKSYN_R_DIV_SYSREF_CTRL (1 << 3)
215 #define CLKSYN_R_DIV_CLKIN_IMPED (1 << 2)
216 #define CLKSYN_R_DIV_RESERVED 0x31
217 
218 /*
219  * AD6676_CLKSYN_ENABLE
220  */
221 #define EN_EXT_CK (1 << 7)
222 #define EN_ADC_CK (1 << 6)
223 #define EN_SYNTH (1 << 5)
224 #define EN_VCO_PTAT (1 << 4)
225 #define EN_VCO_ALC (1 << 3)
226 #define EN_VCO (1 << 2)
227 #define EN_OVER_IDE_CAL (1 << 1)
228 #define EN_OVER_IDE (1 << 0)
229 
230 /*
231  * AD6676_CLKSYN_LOGEN
232  */
233 
234 #define RESET_CAL (1 << 3)
235 
236 /*
237  * AD6676_CLKSYN_VCO_CAL
238  */
239 
240 #define INIT_ALC_VALUE(x) ((x) << 4)
241 #define ALC_DIS (1 << 3)
242 
243 /*
244  * AD6676_CLKSYN_CP_CAL
245  */
246 #define CP_CAL_EN (1 << 7)
247 
248 /*
249  * AD6676_DEC_MODE
250  */
251 
252 #define DEC_32 1
253 #define DEC_24 2
254 #define DEC_16 3
255 #define DEC_12 4
256 
257 /*
258  * AD6676_CAL_CMD
259  */
260 
261 #define XCMD3 (1 << 7)
262 #define XCMD2 (1 << 6)
263 #define XCMD1 (1 << 5)
264 #define XCMD0 (1 << 4)
265 #define RESON1_CAL (1 << 3)
266 #define FLASH_CAL (1 << 2)
267 #define INIT_ADC (1 << 1)
268 #define TUNE_ADC (1 << 0)
269 
270 /*
271  * AD6676_SYNCB_CTRL
272  */
273 #define PD_SYSREF_RX (1 << 3)
274 #define LVDS_SYNCB (1 << 2)
275 
276 /* AD6676_L */
277 #define SCR (1 << 7)
278 
279 /* AD6676_FORCE_END_CAL */
280 #define FORCE_END_CAL (1 << 0)
281 
282 /* AD6676_CAL_DONE */
283 #define CAL_DONE (1 << 0)
284 
285 #define MHz 1000000UL
286 #define MIN_FADC 2000000000ULL /* SPS */
287 #define MIN_FADC_INT_SYNTH 2925000000ULL /* SPS REVISIT */
288 #define MAX_FADC 3200000000ULL /* SPS */
289 
290 #define MIN_FIF 70000000ULL /* Hz */
291 #define MAX_FIF 450000000ULL /* Hz */
292 
293 #define MIN_BW 20000000ULL /* Hz */
294 #define MAX_BW 160000000ULL /* Hz */
295 
296 #define CHIP_ID1_AD6676 0x03
297 #define CHIP_ID0_AD6676 0xBB
298 
300  uint32_t ref_clk; // reference_clk rate Hz
301  uint32_t f_adc_hz; // adc frequency Hz
302  uint32_t f_if_hz; // intermediate frequency hz
303  uint32_t bw_hz; // bandwidth Hz;
307  uint8_t decimation; // decimation
308  uint8_t ext_l; // external inductance l_nh
309  uint8_t attenuation; //
310  uint8_t scale; // fullscale adjust
311  uint8_t use_extclk; // use external clk enable
312  uint8_t spi3wire; // set device spi intereface 3/4 wires
313  // shuffle
314  uint8_t shuffle_ctrl; // shuffler control
315  uint8_t shuffle_thresh; // shuffler threshold
316  // jesd
317  uint8_t scrambling_en; // jesd_scrambling_enable
318  uint8_t lvds_syncb; // jesd_use_lvds_syncb_enable
319  uint8_t sysref_pd; // jesd_powerdown_sysref_enable
320  uint8_t n_lanes; // lanes
322  uint64_t m;
323  /* SPI */
325 };
326 
327 struct ad6676_dev {
328  /* SPI */
330 };
331 
332 /******************************************************************************/
333 /************************ Functions Declarations ******************************/
334 /******************************************************************************/
335 /* SPI read from device. */
336 int32_t ad6676_spi_read(struct ad6676_dev *dev,
337  uint16_t reg_addr,
338  uint8_t *reg_data);
339 
340 /* SPI write to device. */
341 int32_t ad6676_spi_write(struct ad6676_dev *dev,
342  uint16_t reg_addr,
343  uint8_t reg_data);
344 
345 /* Initialize the device. */
346 int32_t ad6676_setup(struct ad6676_dev **device,
348 
349 /* Reconfigure device for other target frequency and bandwidth and
350  * recalibrate. */
351 int32_t ad6676_update(struct ad6676_dev *dev,
352  struct ad6676_init_param *init_param);
353 
354 /* Set attenuation in decibels or disable attenuator. */
355 int32_t ad6676_set_attenuation(struct ad6676_dev *dev,
356  struct ad6676_init_param *init_param);
357 
358 /* Set the target IF frequency. */
359 int32_t ad6676_set_fif(struct ad6676_dev *dev,
360  struct ad6676_init_param *init_param);
361 
362 /* Get the target IF frequency. */
363 uint64_t ad6676_get_fif(struct ad6676_dev *dev,
364  struct ad6676_init_param *init_param);
365 
366 /* Perform an interface test. */
367 int32_t ad6676_test(struct ad6676_dev *dev,
368  uint32_t test_mode);
369 #endif
DP_CTRL_TWOS_COMPLEMENT
#define DP_CTRL_TWOS_COMPLEMENT
Definition: ad6676.h:192
AD6676_LEXT
#define AD6676_LEXT
Definition: ad6676.h:65
DEC_16
#define DEC_16
Definition: ad6676.h:254
AD6676_DEC_MODE
#define AD6676_DEC_MODE
Definition: ad6676.h:79
ad6676_test
int32_t ad6676_test(struct ad6676_dev *dev, uint32_t test_mode)
Perform an interface test.
Definition: ad6676.c:782
AD6676_BID
#define AD6676_BID
Definition: ad6676.h:129
AD6676_L
#define AD6676_L
Definition: ad6676.h:130
no_os_alloc.h
SCR
#define SCR
Definition: ad6676.h:277
no_os_min_t
#define no_os_min_t(type, x, y)
Definition: no_os_util.h:61
ad6676_dev
Definition: ad6676.h:327
AD6676_FADC_0
#define AD6676_FADC_0
Definition: ad6676.h:59
ad6676_init_param::f_adc_hz
uint32_t f_adc_hz
Definition: ad6676.h:301
AD6676_M
#define AD6676_M
Definition: ad6676.h:133
AD6676_ATTEN_VALUE_PIN1
#define AD6676_ATTEN_VALUE_PIN1
Definition: ad6676.h:96
FLASH_CAL
@ FLASH_CAL
Definition: t_mykonos.h:828
ad6676_spi_write
int32_t ad6676_spi_write(struct ad6676_dev *dev, uint16_t reg_addr, uint8_t reg_data)
SPI write to device.
Definition: ad6676.c:78
PD_SYSREF_RX
#define PD_SYSREF_RX
Definition: ad6676.h:273
ad6676_init_param::scrambling_en
uint8_t scrambling_en
Definition: ad6676.h:317
no_os_spi_write_and_read
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:159
DEC_24
#define DEC_24
Definition: ad6676.h:253
ad6676_init_param::bw_margin_high_mhz
uint8_t bw_margin_high_mhz
Definition: ad6676.h:305
ad6676_init_param::decimation
uint8_t decimation
Definition: ad6676.h:307
no_os_spi.h
Header file of SPI Interface.
AD6676_MRGN_L
#define AD6676_MRGN_L
Definition: ad6676.h:66
ad6676_init_param::use_extclk
uint8_t use_extclk
Definition: ad6676.h:311
EN_SYNTH
#define EN_SYNTH
Definition: ad6676.h:223
ad6676_init_param::scale
uint8_t scale
Definition: ad6676.h:310
EN_EXT_CK
#define EN_EXT_CK
Definition: ad6676.h:221
INIT_ALC_VALUE
#define INIT_ALC_VALUE(x)
Definition: ad6676.h:240
no_os_delay.h
Header file of Delay functions.
AD6676_CLKSYN_STATUS
#define AD6676_CLKSYN_STATUS
Definition: ad6676.h:167
AD6676_SPI_CONFIG
#define AD6676_SPI_CONFIG
Definition: ad6676.h:48
ad6676_init_param::lvds_syncb
uint8_t lvds_syncb
Definition: ad6676.h:318
AD6676_CAL_CMD
#define AD6676_CAL_CMD
Definition: ad6676.h:73
SYN_STAT_PLL_LCK
#define SYN_STAT_PLL_LCK
Definition: ad6676.h:184
ad6676_set_attenuation
int32_t ad6676_set_attenuation(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Set attenuation in decibels or disable attenuator.
Definition: ad6676.c:611
device
Definition: ad9361_util.h:69
ad6676_spi_read
int32_t ad6676_spi_read(struct ad6676_dev *dev, uint16_t reg_addr, uint8_t *reg_data)
SPI read from device.
Definition: ad6676.c:52
ad6676_init_param::shuffle_thresh
uint8_t shuffle_thresh
Definition: ad6676.h:315
ad6676_get_fif
uint64_t ad6676_get_fif(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Get the target IF frequency.
Definition: ad6676.c:204
AD6676_DID
#define AD6676_DID
Definition: ad6676.h:128
AD6676_SER2
#define AD6676_SER2
Definition: ad6676.h:154
AD6676_ATTEN_VALUE_PIN0
#define AD6676_ATTEN_VALUE_PIN0
Definition: ad6676.h:95
SPI_CONF_SW_RESET
#define SPI_CONF_SW_RESET
Definition: ad6676.h:177
AD6676_MRGN_IF
#define AD6676_MRGN_IF
Definition: ad6676.h:68
ad6676_init_param::bw_margin_low_mhz
uint8_t bw_margin_low_mhz
Definition: ad6676.h:304
XCMD0
#define XCMD0
Definition: ad6676.h:264
CP_CAL_EN
#define CP_CAL_EN
Definition: ad6676.h:246
AD6676_F
#define AD6676_F
Definition: ad6676.h:131
EN_VCO
#define EN_VCO
Definition: ad6676.h:226
AD6676_CHIP_ID0
#define AD6676_CHIP_ID0
Definition: ad6676.h:51
AD6676_DP_CTRL
#define AD6676_DP_CTRL
Definition: ad6676.h:85
MIN_FIF
#define MIN_FIF
Definition: ad6676.h:290
DEC_32
#define DEC_32
Definition: ad6676.h:252
no_os_do_div
uint64_t no_os_do_div(uint64_t *n, uint64_t base)
ad6676_set_attenuation
int32_t ad6676_set_attenuation(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Set attenuation in decibels or disable attenuator.
Definition: ad6676.c:611
ad6676_init_param::shuffle_ctrl
uint8_t shuffle_ctrl
Definition: ad6676.h:314
no_os_mdelay
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
AD6676_CLKSYN_CP_CAL
#define AD6676_CLKSYN_CP_CAL
Definition: ad6676.h:164
CLKSYN_R_DIV_RESERVED
#define CLKSYN_R_DIV_RESERVED
Definition: ad6676.h:216
INIT_ADC
#define INIT_ADC
Definition: ad6676.h:267
ad6676_init_param::bw_margin_if_mhz
int8_t bw_margin_if_mhz
Definition: ad6676.h:306
ad6676_shuffle_setup
int32_t ad6676_shuffle_setup(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Setup shuffling rate and threshold for the adaptive shuffler.
Definition: ad6676.c:499
AD6676_MIX2_TUNING
#define AD6676_MIX2_TUNING
Definition: ad6676.h:81
DEC_12
#define DEC_12
Definition: ad6676.h:255
ad6676_init_param::attenuation
uint8_t attenuation
Definition: ad6676.h:309
RESON1_CAL
#define RESON1_CAL
Definition: ad6676.h:265
ad6676_update
int32_t ad6676_update(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Reconfigure device for other target frequency and bandwidth and recalibrate.
Definition: ad6676.c:734
ad6676_test
int32_t ad6676_test(struct ad6676_dev *dev, uint32_t test_mode)
Perform an interface test.
Definition: ad6676.c:782
TESTGENMODE_OFF
#define TESTGENMODE_OFF
Definition: ad6676.h:197
AD6676_CLKSYN_LOGEN
#define AD6676_CLKSYN_LOGEN
Definition: ad6676.h:159
ad6676_init_param::m
uint64_t m
Definition: ad6676.h:322
AD6676_FIF_0
#define AD6676_FIF_0
Definition: ad6676.h:61
ad6676_spi_read
int32_t ad6676_spi_read(struct ad6676_dev *dev, uint16_t reg_addr, uint8_t *reg_data)
SPI read from device.
Definition: ad6676.c:52
ad6676_dev::spi_desc
struct no_os_spi_desc * spi_desc
Definition: ad6676.h:329
AD6676_XSCALE_1
#define AD6676_XSCALE_1
Definition: ad6676.h:69
ad6676_get_fif
uint64_t ad6676_get_fif(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Get the target IF frequency.
Definition: ad6676.c:204
CAL_DONE
#define CAL_DONE
Definition: ad6676.h:283
ad6676_init_param::ref_clk
uint32_t ref_clk
Definition: ad6676.h:300
TUNE_ADC
#define TUNE_ADC
Definition: ad6676.h:268
SPI_CONF_SDIO_DIR
#define SPI_CONF_SDIO_DIR
Definition: ad6676.h:178
AD6676_CLKSYN_ENABLE
#define AD6676_CLKSYN_ENABLE
Definition: ad6676.h:156
no_os_spi_desc
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
ad6676_init_param::n_lanes
uint8_t n_lanes
Definition: ad6676.h:320
no_os_clamp
#define no_os_clamp(val, min_val, max_val)
Definition: no_os_util.h:69
SYN_STAT_CP_CAL_DONE
#define SYN_STAT_CP_CAL_DONE
Definition: ad6676.h:186
ad6676_init_param::sysref_pd
uint8_t sysref_pd
Definition: ad6676.h:319
MHz
#define MHz
Definition: ad6676.h:285
CLKSYN_R_DIV_CLKIN_IMPED
#define CLKSYN_R_DIV_CLKIN_IMPED
Definition: ad6676.h:215
AD6676_S
#define AD6676_S
Definition: ad6676.h:134
ad6676_init_param::spi_init
struct no_os_spi_init_param spi_init
Definition: ad6676.h:324
ad6676_init_param::f_if_hz
uint32_t f_if_hz
Definition: ad6676.h:302
AD6676_CLKSYN_VCO_BIAS
#define AD6676_CLKSYN_VCO_BIAS
Definition: ad6676.h:161
no_os_malloc
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
no_os_clamp_t
#define no_os_clamp_t(type, val, min_val, max_val)
Definition: no_os_util.h:71
EN_VCO_PTAT
#define EN_VCO_PTAT
Definition: ad6676.h:224
ad6676_update
int32_t ad6676_update(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Reconfigure device for other target frequency and bandwidth and recalibrate.
Definition: ad6676.c:734
AD6676_CLKSYN_INT_N_LSB
#define AD6676_CLKSYN_INT_N_LSB
Definition: ad6676.h:157
AD6676_SHUFFLE_THREG0
#define AD6676_SHUFFLE_THREG0
Definition: ad6676.h:170
ad6676_spi_write
int32_t ad6676_spi_write(struct ad6676_dev *dev, uint16_t reg_addr, uint8_t reg_data)
SPI write to device.
Definition: ad6676.c:78
R_DIV
#define R_DIV(x)
Definition: ad6676.h:213
ad6676_init_param::spi3wire
uint8_t spi3wire
Definition: ad6676.h:312
LVDS_SYNCB
#define LVDS_SYNCB
Definition: ad6676.h:274
AD6676_TEST_GEN
#define AD6676_TEST_GEN
Definition: ad6676.h:147
AD6676_CLKSYN_VCO_VAR
#define AD6676_CLKSYN_VCO_VAR
Definition: ad6676.h:165
CHIP_ID0_AD6676
#define CHIP_ID0_AD6676
Definition: ad6676.h:297
EN_VCO_ALC
#define EN_VCO_ALC
Definition: ad6676.h:225
AD6676_CLKSYN_R_DIV
#define AD6676_CLKSYN_R_DIV
Definition: ad6676.h:166
ad6676_init_param::ext_l
uint8_t ext_l
Definition: ad6676.h:308
ad6676_init_param::frames_per_multiframe
uint8_t frames_per_multiframe
Definition: ad6676.h:321
RESET_CAL
#define RESET_CAL
Definition: ad6676.h:234
XCMD1
#define XCMD1
Definition: ad6676.h:263
AD6676_MRGN_U
#define AD6676_MRGN_U
Definition: ad6676.h:67
init_param
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
MIN_FADC
#define MIN_FADC
Definition: ad6676.h:286
EN_ADC_CK
#define EN_ADC_CK
Definition: ad6676.h:222
SYN_STAT_VCO_CAL_BUSY
#define SYN_STAT_VCO_CAL_BUSY
Definition: ad6676.h:185
MIN_FADC_INT_SYNTH
#define MIN_FADC_INT_SYNTH
Definition: ad6676.h:287
AD6676_BW_0
#define AD6676_BW_0
Definition: ad6676.h:63
CLKSYN_R_DIV_SYSREF_CTRL
#define CLKSYN_R_DIV_SYSREF_CTRL
Definition: ad6676.h:214
MAX_FIF
#define MAX_FIF
Definition: ad6676.h:291
AD6676_MIX1_TUNING
#define AD6676_MIX1_TUNING
Definition: ad6676.h:80
AD6676_CLKSYN_KVCO_VCO
#define AD6676_CLKSYN_KVCO_VCO
Definition: ad6676.h:160
AD6676_SYNCB_CTRL
#define AD6676_SYNCB_CTRL
Definition: ad6676.h:149
MAX_BW
#define MAX_BW
Definition: ad6676.h:294
ad6676_setup
int32_t ad6676_setup(struct ad6676_dev **device, struct ad6676_init_param init_param)
Initialize the device.
Definition: ad6676.c:632
AD6676_FORCE_END_CAL
#define AD6676_FORCE_END_CAL
Definition: ad6676.h:76
no_os_spi_init
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
MAX_FADC
#define MAX_FADC
Definition: ad6676.h:288
ad6676_init_param::bw_hz
uint32_t bw_hz
Definition: ad6676.h:303
ad6676.h
Header file of AD6676 Driver.
no_os_util.h
Header file of utility functions.
MIN_BW
#define MIN_BW
Definition: ad6676.h:293
AD6676_CLKSYN_VCO_CAL
#define AD6676_CLKSYN_VCO_CAL
Definition: ad6676.h:162
ad6676_setup
int32_t ad6676_setup(struct ad6676_dev **device, struct ad6676_init_param init_param)
Initialize the device.
Definition: ad6676.c:632
ad6676_set_fif
int32_t ad6676_set_fif(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Set the target IF frequency.
Definition: ad6676.c:188
AD6676_K
#define AD6676_K
Definition: ad6676.h:132
FORCE_END_CAL
#define FORCE_END_CAL
Definition: ad6676.h:280
EN_OVER_IDE
#define EN_OVER_IDE
Definition: ad6676.h:228
ad6676_set_fif
int32_t ad6676_set_fif(struct ad6676_dev *dev, struct ad6676_init_param *init_param)
Set the target IF frequency.
Definition: ad6676.c:188
ad6676_init_param
Definition: ad6676.h:299
AD6676_CAL_DONE
#define AD6676_CAL_DONE
Definition: ad6676.h:74
AD6676_CLKSYN_I_CP
#define AD6676_CLKSYN_I_CP
Definition: ad6676.h:163
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
AD6676_JESDSYN_STATUS
#define AD6676_JESDSYN_STATUS
Definition: ad6676.h:168