Go to the documentation of this file.
49 #define AD9523_READ (1 << 15)
50 #define AD9523_WRITE (0 << 15)
51 #define AD9523_CNT(x) (((x) - 1) << 13)
52 #define AD9523_ADDR(x) ((x) & 0xFFF)
54 #define AD9523_R1B (1 << 16)
55 #define AD9523_R2B (2 << 16)
56 #define AD9523_R3B (3 << 16)
57 #define AD9523_TRANSF_LEN(x) ((x) >> 16)
59 #define AD9523_SERIAL_PORT_CONFIG (AD9523_R1B | 0x0)
60 #define AD9523_VERSION_REGISTER (AD9523_R1B | 0x2)
61 #define AD9523_PART_REGISTER (AD9523_R1B | 0x3)
62 #define AD9523_READBACK_CTRL (AD9523_R1B | 0x4)
64 #define AD9523_EEPROM_CUSTOMER_VERSION_ID (AD9523_R2B | 0x6)
66 #define AD9523_PLL1_REF_A_DIVIDER (AD9523_R2B | 0x11)
67 #define AD9523_PLL1_REF_B_DIVIDER (AD9523_R2B | 0x13)
68 #define AD9523_PLL1_REF_TEST_DIVIDER (AD9523_R1B | 0x14)
69 #define AD9523_PLL1_FEEDBACK_DIVIDER (AD9523_R2B | 0x17)
70 #define AD9523_PLL1_CHARGE_PUMP_CTRL (AD9523_R2B | 0x19)
71 #define AD9523_PLL1_INPUT_RECEIVERS_CTRL (AD9523_R1B | 0x1A)
72 #define AD9523_PLL1_REF_CTRL (AD9523_R1B | 0x1B)
73 #define AD9523_PLL1_MISC_CTRL (AD9523_R1B | 0x1C)
74 #define AD9523_PLL1_LOOP_FILTER_CTRL (AD9523_R1B | 0x1D)
76 #define AD9523_PLL2_CHARGE_PUMP (AD9523_R1B | 0xF0)
77 #define AD9523_PLL2_FEEDBACK_DIVIDER_AB (AD9523_R1B | 0xF1)
78 #define AD9523_PLL2_CTRL (AD9523_R1B | 0xF2)
79 #define AD9523_PLL2_VCO_CTRL (AD9523_R1B | 0xF3)
80 #define AD9523_PLL2_VCO_DIVIDER (AD9523_R1B | 0xF4)
81 #define AD9523_PLL2_LOOP_FILTER_CTRL (AD9523_R2B | 0xF6)
82 #define AD9523_PLL2_R2_DIVIDER (AD9523_R1B | 0xF7)
84 #define AD9523_CHANNEL_CLOCK_DIST(ch) (AD9523_R3B | (0x192 + 3 * ch))
86 #define AD9523_PLL1_OUTPUT_CTRL (AD9523_R1B | 0x1BA)
87 #define AD9523_PLL1_OUTPUT_CHANNEL_CTRL (AD9523_R1B | 0x1BB)
89 #define AD9523_READBACK_0 (AD9523_R1B | 0x22C)
90 #define AD9523_READBACK_1 (AD9523_R1B | 0x22D)
92 #define AD9523_STATUS_SIGNALS (AD9523_R3B | 0x232)
93 #define AD9523_POWER_DOWN_CTRL (AD9523_R1B | 0x233)
94 #define AD9523_IO_UPDATE (AD9523_R1B | 0x234)
96 #define AD9523_EEPROM_DATA_XFER_STATUS (AD9523_R1B | 0xB00)
97 #define AD9523_EEPROM_ERROR_READBACK (AD9523_R1B | 0xB01)
98 #define AD9523_EEPROM_CTRL1 (AD9523_R1B | 0xB02)
99 #define AD9523_EEPROM_CTRL2 (AD9523_R1B | 0xB03)
103 #define AD9523_SER_CONF_SDO_ACTIVE ((1 << 7) | (1 << 0))
104 #define AD9523_SER_CONF_SOFT_RESET ((1 << 5) | (1 << 2))
107 #define AD9523_READBACK_CTRL_READ_BUFFERED (1 << 0)
110 #define AD9523_PLL1_CHARGE_PUMP_CURRENT_nA(x) (((x) / 500) & 0x7F)
111 #define AD9523_PLL1_CHARGE_PUMP_TRISTATE (1 << 7)
112 #define AD9523_PLL1_CHARGE_PUMP_MODE_NORMAL (3 << 8)
113 #define AD9523_PLL1_CHARGE_PUMP_MODE_PUMP_DOWN (2 << 8)
114 #define AD9523_PLL1_CHARGE_PUMP_MODE_PUMP_UP (1 << 8)
115 #define AD9523_PLL1_CHARGE_PUMP_MODE_TRISTATE (0 << 8)
116 #define AD9523_PLL1_BACKLASH_PW_MIN (0 << 10)
117 #define AD9523_PLL1_BACKLASH_PW_LOW (1 << 10)
118 #define AD9523_PLL1_BACKLASH_PW_HIGH (2 << 10)
119 #define AD9523_PLL1_BACKLASH_PW_MAX (3 << 10)
122 #define AD9523_PLL1_REF_TEST_RCV_EN (1 << 7)
123 #define AD9523_PLL1_REFB_DIFF_RCV_EN (1 << 6)
124 #define AD9523_PLL1_REFA_DIFF_RCV_EN (1 << 5)
125 #define AD9523_PLL1_REFB_RCV_EN (1 << 4)
126 #define AD9523_PLL1_REFA_RCV_EN (1 << 3)
127 #define AD9523_PLL1_REFA_REFB_PWR_CTRL_EN (1 << 2)
128 #define AD9523_PLL1_OSC_IN_CMOS_NEG_INP_EN (1 << 1)
129 #define AD9523_PLL1_OSC_IN_DIFF_EN (1 << 0)
132 #define AD9523_PLL1_BYPASS_REF_TEST_DIV_EN (1 << 7)
133 #define AD9523_PLL1_BYPASS_FEEDBACK_DIV_EN (1 << 6)
134 #define AD9523_PLL1_ZERO_DELAY_MODE_INT (1 << 5)
135 #define AD9523_PLL1_ZERO_DELAY_MODE_EXT (0 << 5)
136 #define AD9523_PLL1_OSC_IN_PLL_FEEDBACK_EN (1 << 4)
137 #define AD9523_PLL1_ZD_IN_CMOS_NEG_INP_EN (1 << 3)
138 #define AD9523_PLL1_ZD_IN_DIFF_EN (1 << 2)
139 #define AD9523_PLL1_REFB_CMOS_NEG_INP_EN (1 << 1)
140 #define AD9523_PLL1_REFA_CMOS_NEG_INP_EN (1 << 0)
143 #define AD9523_PLL1_REFB_INDEP_DIV_CTRL_EN (1 << 7)
144 #define AD9523_PLL1_OSC_CTRL_FAIL_VCC_BY2_EN (1 << 6)
145 #define AD9523_PLL1_REF_MODE(x) ((x) << 2)
146 #define AD9523_PLL1_BYPASS_REFB_DIV (1 << 1)
147 #define AD9523_PLL1_BYPASS_REFA_DIV (1 << 0)
150 #define AD9523_PLL1_LOOP_FILTER_RZERO(x) ((x) & 0xF)
153 #define AD9523_PLL2_CHARGE_PUMP_CURRENT_nA(x) ((x) / 3500)
156 #define AD9523_PLL2_FB_NDIV_A_CNT(x) (((x) & 0x3) << 6)
157 #define AD9523_PLL2_FB_NDIV_B_CNT(x) (((x) & 0x3F) << 0)
158 #define AD9523_PLL2_FB_NDIV(a, b) (4 * (b) + (a))
161 #define AD9523_PLL2_CHARGE_PUMP_MODE_NORMAL (3 << 0)
162 #define AD9523_PLL2_CHARGE_PUMP_MODE_PUMP_DOWN (2 << 0)
163 #define AD9523_PLL2_CHARGE_PUMP_MODE_PUMP_UP (1 << 0)
164 #define AD9523_PLL2_CHARGE_PUMP_MODE_TRISTATE (0 << 0)
165 #define AD9523_PLL2_BACKLASH_PW_MIN (0 << 2)
166 #define AD9523_PLL2_BACKLASH_PW_LOW (1 << 2)
167 #define AD9523_PLL2_BACKLASH_PW_HIGH (2 << 2)
168 #define AD9523_PLL2_BACKLASH_PW_MAX (3 << 1)
169 #define AD9523_PLL2_BACKLASH_CTRL_EN (1 << 4)
170 #define AD9523_PLL2_FREQ_DOUBLER_EN (1 << 5)
171 #define AD9523_PLL2_LOCK_DETECT_PWR_DOWN_EN (1 << 7)
174 #define AD9523_PLL2_VCO_CALIBRATE (1 << 1)
175 #define AD9523_PLL2_FORCE_VCO_MIDSCALE (1 << 2)
176 #define AD9523_PLL2_FORCE_REFERENCE_VALID (1 << 3)
177 #define AD9523_PLL2_FORCE_RELEASE_SYNC (1 << 4)
180 #define AD9523_PLL2_VCO_DIV_M1(x) ((((x) - 3) & 0x3) << 0)
181 #define AD9523_PLL2_VCO_DIV_M2(x) ((((x) - 3) & 0x3) << 4)
182 #define AD9523_PLL2_VCO_DIV_M1_PWR_DOWN_EN (1 << 2)
183 #define AD9523_PLL2_VCO_DIV_M2_PWR_DOWN_EN (1 << 6)
186 #define AD9523_PLL2_LOOP_FILTER_CPOLE1(x) (((x) & 0x7) << 0)
187 #define AD9523_PLL2_LOOP_FILTER_RZERO(x) (((x) & 0x7) << 3)
188 #define AD9523_PLL2_LOOP_FILTER_RPOLE2(x) (((x) & 0x7) << 6)
189 #define AD9523_PLL2_LOOP_FILTER_RZERO_BYPASS_EN (1 << 8)
192 #define AD9523_PLL2_R2_DIVIDER_VAL(x) (((x) & 0x1F) << 0)
195 #define AD9523_CLK_DIST_DIV_PHASE(x) (((x) & 0x3F) << 18)
196 #define AD9523_CLK_DIST_DIV_PHASE_REV(x) ((ret >> 18) & 0x3F)
197 #define AD9523_CLK_DIST_DIV(x) ((((x) - 1) & 0x3FF) << 8)
198 #define AD9523_CLK_DIST_DIV_REV(x) (((ret >> 8) & 0x3FF) + 1)
199 #define AD9523_CLK_DIST_INV_DIV_OUTPUT_EN (1 << 7)
200 #define AD9523_CLK_DIST_IGNORE_SYNC_EN (1 << 6)
201 #define AD9523_CLK_DIST_PWR_DOWN_EN (1 << 5)
202 #define AD9523_CLK_DIST_LOW_PWR_MODE_EN (1 << 4)
203 #define AD9523_CLK_DIST_DRIVER_MODE(x) (((x) & 0xF) << 0)
206 #define AD9523_PLL1_OUTP_CTRL_VCO_DIV_SEL_CH6_M2 (1 << 7)
207 #define AD9523_PLL1_OUTP_CTRL_VCO_DIV_SEL_CH5_M2 (1 << 6)
208 #define AD9523_PLL1_OUTP_CTRL_VCO_DIV_SEL_CH4_M2 (1 << 5)
209 #define AD9523_PLL1_OUTP_CTRL_CMOS_DRV_WEAK (1 << 4)
210 #define AD9523_PLL1_OUTP_CTRL_OUTPUT_DIV_1 (0 << 0)
211 #define AD9523_PLL1_OUTP_CTRL_OUTPUT_DIV_2 (1 << 0)
212 #define AD9523_PLL1_OUTP_CTRL_OUTPUT_DIV_4 (2 << 0)
213 #define AD9523_PLL1_OUTP_CTRL_OUTPUT_DIV_8 (4 << 0)
214 #define AD9523_PLL1_OUTP_CTRL_OUTPUT_DIV_16 (8 << 0)
217 #define AD9523_PLL1_OUTP_CH_CTRL_OUTPUT_PWR_DOWN_EN (1 << 7)
218 #define AD9523_PLL1_OUTP_CH_CTRL_VCO_DIV_SEL_CH9_M2 (1 << 6)
219 #define AD9523_PLL1_OUTP_CH_CTRL_VCO_DIV_SEL_CH8_M2 (1 << 5)
220 #define AD9523_PLL1_OUTP_CH_CTRL_VCO_DIV_SEL_CH7_M2 (1 << 4)
221 #define AD9523_PLL1_OUTP_CH_CTRL_VCXO_SRC_SEL_CH3 (1 << 3)
222 #define AD9523_PLL1_OUTP_CH_CTRL_VCXO_SRC_SEL_CH2 (1 << 2)
223 #define AD9523_PLL1_OUTP_CH_CTRL_VCXO_SRC_SEL_CH1 (1 << 1)
224 #define AD9523_PLL1_OUTP_CH_CTRL_VCXO_SRC_SEL_CH0 (1 << 0)
227 #define AD9523_READBACK_0_STAT_PLL2_REF_CLK (1 << 7)
228 #define AD9523_READBACK_0_STAT_PLL2_FB_CLK (1 << 6)
229 #define AD9523_READBACK_0_STAT_VCXO (1 << 5)
230 #define AD9523_READBACK_0_STAT_REF_TEST (1 << 4)
231 #define AD9523_READBACK_0_STAT_REFB (1 << 3)
232 #define AD9523_READBACK_0_STAT_REFA (1 << 2)
233 #define AD9523_READBACK_0_STAT_PLL2_LD (1 << 1)
234 #define AD9523_READBACK_0_STAT_PLL1_LD (1 << 0)
237 #define AD9523_READBACK_1_HOLDOVER_ACTIVE (1 << 3)
238 #define AD9523_READBACK_1_AUTOMODE_SEL_REFB (1 << 2)
239 #define AD9523_READBACK_1_VCO_CALIB_IN_PROGRESS (1 << 0)
242 #define AD9523_STATUS_SIGNALS_SYNC_MAN_CTRL (1 << 16)
243 #define AD9523_STATUS_MONITOR_01_PLL12_LOCKED (0x302)
245 #define AD9523_POWER_DOWN_CTRL_PLL1_PWR_DOWN (1 << 2)
246 #define AD9523_POWER_DOWN_CTRL_PLL2_PWR_DOWN (1 << 1)
247 #define AD9523_POWER_DOWN_CTRL_DIST_PWR_DOWN (1 << 0)
250 #define AD9523_IO_UPDATE_EN (1 << 0)
253 #define AD9523_EEPROM_DATA_XFER_IN_PROGRESS (1 << 0)
256 #define AD9523_EEPROM_ERROR_READBACK_FAIL (1 << 0)
259 #define AD9523_EEPROM_CTRL1_SOFT_EEPROM (1 << 1)
260 #define AD9523_EEPROM_CTRL1_EEPROM_WRITE_PROT_DIS (1 << 0)
263 #define AD9523_EEPROM_CTRL2_REG2EEPROM (1 << 0)
265 #define AD9523_NUM_CHAN 14
266 #define AD9523_NUM_CHAN_ALT_CLK_SRC 10
521 #endif // __AD9523_H__
#define AD9523_PLL2_LOOP_FILTER_RPOLE2(x)
Definition: ad9523.h:188
#define AD9523_READBACK_CTRL
Definition: ad9523.h:62
int32_t ad9523_status(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:251
#define AD9523_PLL2_VCO_CTRL
Definition: ad9523.h:79
uint8_t divider_output_invert_en
Definition: ad9523.h:305
uint32_t timeout
Definition: ad413x.c:49
@ CMOS_CONF9
Definition: ad9523.h:286
@ RZERO_2750_OHM
Definition: ad9523.h:344
#define AD9523_PLL2_VCO_DIV_M1_PWR_DOWN_EN
Definition: ad9523.h:182
uint8_t use_alt_clock_src
Definition: ad9523.h:311
#define AD9523_PLL1_OUTPUT_CHANNEL_CTRL
Definition: ad9523.h:87
#define AD9523_PLL1_CHARGE_PUMP_CURRENT_nA(x)
Definition: ad9523.h:110
#define AD9523_PLL1_REFA_CMOS_NEG_INP_EN
Definition: ad9523.h:140
@ RZERO_3250_OHM
Definition: ad9523.h:343
@ CPOLE1_40_PF
Definition: ad9523.h:360
@ HSTL1_8mA
Definition: ad9523.h:277
#define AD9523_CLK_DIST_DIV_PHASE(x)
Definition: ad9523.h:195
#define AD9523_PLL2_FREQ_DOUBLER_EN
Definition: ad9523.h:170
@ RPOLE2_225_OHM
Definition: ad9523.h:339
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
@ RZERO_10_OHM
Definition: ad9523.h:331
uint8_t channel_num
Definition: ad9523.h:303
#define AD9523_CLK_DIST_PWR_DOWN_EN
Definition: ad9523.h:201
#define AD9523_PLL1_REF_MODE(x)
Definition: ad9523.h:145
Header file of SPI Interface.
int32_t ad9523_sync(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:307
@ RPOLE2_900_OHM
Definition: ad9523.h:336
#define AD9523_PLL1_OUTP_CTRL_VCO_DIV_SEL_CH4_M2
Definition: ad9523.h:208
#define AD9523_STATUS_MONITOR_01_PLL12_LOCKED
Definition: ad9523.h:243
#define AD9523_SER_CONF_SOFT_RESET
Definition: ad9523.h:104
#define AD9523_PLL1_BYPASS_FEEDBACK_DIV_EN
Definition: ad9523.h:133
#define AD9523_PLL2_FB_NDIV_B_CNT(x)
Definition: ad9523.h:157
#define AD9523_PLL1_LOOP_FILTER_RZERO(x)
Definition: ad9523.h:150
#define AD9523_CLK_DIST_DIV(x)
Definition: ad9523.h:197
@ RPOLE2_450_OHM
Definition: ad9523.h:337
#define AD9523_PLL2_FB_NDIV(a, b)
Definition: ad9523.h:158
#define AD9523_PLL2_LOOP_FILTER_RZERO(x)
Definition: ad9523.h:187
#define AD9523_SER_CONF_SDO_ACTIVE
Definition: ad9523.h:103
Header file of Delay functions.
#define AD9523_PLL1_REFB_RCV_EN
Definition: ad9523.h:125
@ AD9523_VCXO
Definition: ad9523.h:467
int32_t ad9523_setup(struct ad9523_dev **device, const struct ad9523_init_param *init_param)
Setup the AD9523 device.
Definition: ad9523.c:422
#define AD9523_PLL2_R2_DIVIDER
Definition: ad9523.h:82
struct ad9523_platform_data * pdata
Definition: ad9523.h:483
#define AD9523_READBACK_0_STAT_PLL2_REF_CLK
Definition: ad9523.h:227
uint8_t sync_ignore_en
Definition: ad9523.h:307
#define AD9523_PLL1_ZD_IN_DIFF_EN
Definition: ad9523.h:138
int32_t ad9523_vco_out_map(struct ad9523_dev *dev, uint32_t ch, uint32_t out)
Sets the clock provider for selected channel.
Definition: ad9523.c:135
@ CPOLE1_24_PF
Definition: ad9523.h:357
@ CMOS_CONF6
Definition: ad9523.h:283
@ CMOS_CONF3
Definition: ad9523.h:280
@ AD9523_VCO1
Definition: ad9523.h:465
Definition: ad9361_util.h:69
#define AD9523_STATUS_SIGNALS_SYNC_MAN_CTRL
Definition: ad9523.h:242
@ RZERO_3000_OHM
Definition: ad9523.h:347
#define AD9523_CLK_DIST_DRIVER_MODE(x)
Definition: ad9523.h:203
#define AD9523_READBACK_0_STAT_VCXO
Definition: ad9523.h:229
@ CPOLE1_32_PF
Definition: ad9523.h:359
#define AD9523_PLL1_CHARGE_PUMP_TRISTATE
Definition: ad9523.h:111
@ _CPOLE1_24_PF
Definition: ad9523.h:358
int32_t ad9523_vco_out_map(struct ad9523_dev *dev, uint32_t ch, uint32_t out)
Sets the clock provider for selected channel.
Definition: ad9523.c:135
#define AD9523_PLL1_OSC_IN_DIFF_EN
Definition: ad9523.h:129
int32_t ad9523_io_update(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:119
Output channel configuration.
Definition: ad9523.h:301
#define AD9523_PLL1_REFA_RCV_EN
Definition: ad9523.h:126
outp_drv_mode
Definition: ad9523.h:271
#define AD9523_PLL1_ZERO_DELAY_MODE_INT
Definition: ad9523.h:134
#define AD9523_CLK_DIST_IGNORE_SYNC_EN
Definition: ad9523.h:200
@ CPOLE1_16_PF
Definition: ad9523.h:356
#define AD9523_PLL1_OSC_IN_PLL_FEEDBACK_EN
Definition: ad9523.h:136
@ RZERO_883_OHM
Definition: ad9523.h:327
#define AD9523_PLL1_CHARGE_PUMP_CTRL
Definition: ad9523.h:70
#define AD9523_PLL1_MISC_CTRL
Definition: ad9523.h:73
#define AD9523_IO_UPDATE_EN
Definition: ad9523.h:250
int32_t ad9523_io_update(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:119
@ CMOS_CONF1
Definition: ad9523.h:278
int32_t ad9523_remove(struct ad9523_dev *dev)
Free the resources allocated by ad9523_setup().
Definition: ad9523.c:725
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
#define AD9523_PLL2_BACKLASH_CTRL_EN
Definition: ad9523.h:169
#define AD_IF(_pde, _a)
Definition: ad9523.c:45
int32_t ad9523_spi_read(struct ad9523_dev *dev, uint32_t reg_addr, uint32_t *reg_data)
Reads the value of the selected register.
Definition: ad9523.c:56
@ RPOLE2_300_OHM
Definition: ad9523.h:338
@ CPOLE1_0_PF
Definition: ad9523.h:354
#define AD9523_PLL1_OSC_IN_CMOS_NEG_INP_EN
Definition: ad9523.h:128
uint8_t low_power_mode_en
Definition: ad9523.h:309
@ LVDS_4mA
Definition: ad9523.h:274
#define AD9523_PLL1_BACKLASH_PW_MIN
Definition: ad9523.h:116
#define AD9523_PLL2_R2_DIVIDER_VAL(x)
Definition: ad9523.h:192
#define AD9523_READBACK_0_STAT_REFA
Definition: ad9523.h:232
Header file of AD9523 Driver.
#define AD9523_PLL2_VCO_DIV_M2(x)
Definition: ad9523.h:181
#define AD9523_PLL1_FEEDBACK_DIVIDER
Definition: ad9523.h:69
@ CMOS_CONF2
Definition: ad9523.h:279
@ SELECT_REFA
Definition: ad9523.h:292
@ NONEREVERTIVE_STAY_ON_REFB
Definition: ad9523.h:290
#define AD9523_PLL2_LOOP_FILTER_CPOLE1(x)
Definition: ad9523.h:186
uint8_t divider_phase
Definition: ad9523.h:319
int32_t ad9523_init(struct ad9523_init_param *init_param)
Initialize the AD9523 data structure with the default register values.
Definition: ad9523.c:347
uint32_t vcxo_freq
Definition: ad9523.h:458
int32_t ad9523_spi_write(struct ad9523_dev *dev, uint32_t reg_addr, uint32_t reg_data)
Writes a value to the selected register.
Definition: ad9523.c:90
#define AD9523_READBACK_0_STAT_REFB
Definition: ad9523.h:231
uint32_t vco_freq
Definition: ad9523.h:459
@ AD9523_NUM_CLK_SRC
Definition: ad9523.h:468
@ TRISTATE
Definition: ad9523.h:272
#define AD9523_STATUS_SIGNALS
Definition: ad9523.h:92
@ EXT_REF_SEL
Definition: ad9523.h:294
int32_t ad9523_sync(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:307
#define AD9523_PLL1_CHARGE_PUMP_MODE_NORMAL
Definition: ad9523.h:112
@ CPOLE1_8_PF
Definition: ad9523.h:355
#define AD9523_READBACK_0_STAT_PLL1_LD
Definition: ad9523.h:234
#define AD9523_PLL2_FEEDBACK_DIVIDER_AB
Definition: ad9523.h:77
#define AD9523_SERIAL_PORT_CONFIG
Definition: ad9523.h:59
#define AD9523_POWER_DOWN_CTRL
Definition: ad9523.h:93
#define AD9523_READBACK_CTRL_READ_BUFFERED
Definition: ad9523.h:107
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
@ RZERO_USE_EXT_RES
Definition: ad9523.h:332
@ RZERO_2250_OHM
Definition: ad9523.h:345
@ RZERO_2000_OHM
Definition: ad9523.h:349
@ CPOLE1_48_PF
Definition: ad9523.h:361
@ CMOS_CONF5
Definition: ad9523.h:282
int32_t ad9523_spi_read(struct ad9523_dev *dev, uint32_t reg_addr, uint32_t *reg_data)
Reads the value of the selected register.
Definition: ad9523.c:56
int32_t ad9523_status(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:251
#define AD9523_PLL2_VCO_DIV_M1(x)
Definition: ad9523.h:180
#define AD9523_PLL1_REFB_CMOS_NEG_INP_EN
Definition: ad9523.h:139
@ CMOS_CONF4
Definition: ad9523.h:281
int32_t ad9523_setup(struct ad9523_dev **device, const struct ad9523_init_param *init_param)
Setup the AD9523 device.
Definition: ad9523.c:422
#define AD9523_IO_UPDATE
Definition: ad9523.h:94
#define AD9523_PLL2_CTRL
Definition: ad9523.h:78
#define AD9523_READBACK_0_STAT_PLL2_LD
Definition: ad9523.h:233
#define AD9523_PLL1_LOOP_FILTER_CTRL
Definition: ad9523.h:74
cpole1_capacitor
Definition: ad9523.h:353
#define AD_IFE(_pde, _a, _b)
Definition: ad9523.c:44
uint16_t channel_divider
Definition: ad9523.h:321
@ HSTL0_16mA
Definition: ad9523.h:276
ad9523_out_frequencies
Definition: ad9523.h:464
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
@ RZERO_341_OHM
Definition: ad9523.h:329
rpole2_resistor
Definition: ad9523.h:335
#define AD9523_PLL2_LOOP_FILTER_CTRL
Definition: ad9523.h:81
struct no_os_spi_desc * spi_desc
Definition: ad9523.h:473
@ LVPECL_8mA
Definition: ad9523.h:273
@ CMOS_CONF7
Definition: ad9523.h:284
@ RZERO_677_OHM
Definition: ad9523.h:328
#define AD9523_TRANSF_LEN(x)
Definition: ad9523.h:57
@ SELECT_REFB
Definition: ad9523.h:293
#define AD9523_PLL2_VCO_CALIBRATE
Definition: ad9523.h:174
int8_t extended_name[16]
Definition: ad9523.h:323
ref_sel_mode
Definition: ad9523.h:289
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
#define AD9523_PLL1_REFB_DIFF_RCV_EN
Definition: ad9523.h:123
int32_t ad9523_init(struct ad9523_init_param *init_param)
Initialize the AD9523 data structure with the default register values.
Definition: ad9523.c:347
struct ad9523_platform_data * pdata
Definition: ad9523.h:457
#define AD9523_PLL1_REFB_INDEP_DIV_CTRL_EN
Definition: ad9523.h:143
#define AD9523_PLL1_REFA_DIFF_RCV_EN
Definition: ad9523.h:124
#define AD9523_PLL2_VCO_DIV_M2_PWR_DOWN_EN
Definition: ad9523.h:183
#define AD9523_PLL1_INPUT_RECEIVERS_CTRL
Definition: ad9523.h:71
#define AD9523_CLK_DIST_INV_DIV_OUTPUT_EN
Definition: ad9523.h:199
#define AD9523_PLL1_OUTP_CH_CTRL_VCO_DIV_SEL_CH7_M2
Definition: ad9523.h:220
uint8_t output_dis
Definition: ad9523.h:313
#define AD9523_PLL2_CHARGE_PUMP_MODE_NORMAL
Definition: ad9523.h:161
int32_t ad9523_remove(struct ad9523_dev *dev)
Free the resources allocated by ad9523_setup().
Definition: ad9523.c:725
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
#define AD9523_READBACK_0_STAT_PLL2_FB_CLK
Definition: ad9523.h:228
struct ad9523_state ad9523_st
Definition: ad9523.h:475
#define AD9523_NUM_CHAN
Definition: ad9523.h:265
#define AD9523_PLL1_OUTPUT_CTRL
Definition: ad9523.h:86
#define AD9523_PLL2_FB_NDIV_A_CNT(x)
Definition: ad9523.h:156
@ RZERO_2100_OHM
Definition: ad9523.h:346
@ REVERT_TO_REFA
Definition: ad9523.h:291
#define AD9523_PLL2_CHARGE_PUMP
Definition: ad9523.h:76
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
uint8_t driver_mode
Definition: ad9523.h:315
#define AD9523_EEPROM_CUSTOMER_VERSION_ID
Definition: ad9523.h:64
#define AD9523_READBACK_0
Definition: ad9523.h:89
#define AD9523_READBACK_1
Definition: ad9523.h:90
#define AD9523_READBACK_0_STAT_REF_TEST
Definition: ad9523.h:230
struct ad9523_platform_data * pdata
Definition: ad9523.h:476
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
#define AD9523_PLL1_REF_CTRL
Definition: ad9523.h:72
uint8_t vco_out_map[14]
Definition: ad9523.h:461
@ LVDS_7mA
Definition: ad9523.h:275
#define AD9523_PLL1_REFA_REFB_PWR_CTRL_EN
Definition: ad9523.h:127
@ RZERO_135_OHM
Definition: ad9523.h:330
#define AD9523_PLL2_CHARGE_PUMP_CURRENT_nA(x)
Definition: ad9523.h:153
int32_t ad9523_spi_write(struct ad9523_dev *dev, uint32_t reg_addr, uint32_t reg_data)
Writes a value to the selected register.
Definition: ad9523.c:90
#define AD9523_PLL1_REF_B_DIVIDER
Definition: ad9523.h:67
#define AD9523_PLL1_REF_A_DIVIDER
Definition: ad9523.h:66
rzero_resistor
Definition: ad9523.h:342
struct no_os_spi_init_param spi_init
Definition: ad9523.h:481
int32_t ad9523_calibrate(struct ad9523_dev *dev)
Updates the AD9523 configuration.
Definition: ad9523.c:209
@ RZERO_2500_OHM
Definition: ad9523.h:348
@ CMOS_CONF8
Definition: ad9523.h:285
#define AD9523_PLL2_VCO_DIVIDER
Definition: ad9523.h:80
pll1_rzero_resistor
Definition: ad9523.h:326
@ AD9523_VCO2
Definition: ad9523.h:466
#define AD9523_PLL1_ZD_IN_CMOS_NEG_INP_EN
Definition: ad9523.h:137
#define AD9523_PLL1_OUTP_CH_CTRL_VCXO_SRC_SEL_CH0
Definition: ad9523.h:224
uint32_t vco_out_freq[3]
Definition: ad9523.h:460
#define AD9523_CHANNEL_CLOCK_DIST(ch)
Definition: ad9523.h:84
#define AD9523_PLL2_LOOP_FILTER_RZERO_BYPASS_EN
Definition: ad9523.h:189
@ RZERO_1850_OHM
Definition: ad9523.h:350
#define AD9523_CLK_DIST_LOW_PWR_MODE_EN
Definition: ad9523.h:202
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140