32#ifndef IIO_FREQUENCY_AD9361_H_
33#define IIO_FREQUENCY_AD9361_H_
40#define REG_SPI_CONF 0x000
41#define REG_MULTICHIP_SYNC_AND_TX_MON_CTRL 0x001
42#define REG_TX_ENABLE_FILTER_CTRL 0x002
43#define REG_RX_ENABLE_FILTER_CTRL 0x003
44#define REG_INPUT_SELECT 0x004
45#define REG_RFPLL_DIVIDERS 0x005
46#define REG_RX_CLOCK_DATA_DELAY 0x006
47#define REG_TX_CLOCK_DATA_DELAY 0x007
48#define REG_CLOCK_ENABLE 0x009
49#define REG_BBPLL 0x00A
50#define REG_TEMP_OFFSET 0x00B
51#define REG_START_TEMP_READING 0x00C
52#define REG_TEMP_SENSE2 0x00D
53#define REG_TEMPERATURE 0x00E
54#define REG_TEMP_SENSOR_CONFIG 0x00F
55#define REG_PARALLEL_PORT_CONF_1 0x010
56#define REG_PARALLEL_PORT_CONF_2 0x011
57#define REG_PARALLEL_PORT_CONF_3 0x012
58#define REG_ENSM_MODE 0x013
59#define REG_ENSM_CONFIG_1 0x014
60#define REG_ENSM_CONFIG_2 0x015
61#define REG_CALIBRATION_CTRL 0x016
62#define REG_STATE 0x017
63#define REG_AUXDAC_1_WORD 0x018
64#define REG_AUXDAC_2_WORD 0x019
65#define REG_AUXDAC_1_CONFIG 0x01A
66#define REG_AUXDAC_2_CONFIG 0x01B
67#define REG_AUXADC_CLOCK_DIVIDER 0x01C
68#define REG_AUXADC_CONFIG 0x01D
69#define REG_AUXADC_WORD_MSB 0x01E
70#define REG_AUXADC_LSB 0x01F
71#define REG_AUTO_GPO 0x020
72#define REG_AGC_GAIN_LOCK_DELAY 0x021
73#define REG_AGC_ATTACK_DELAY 0x022
74#define REG_AUXDAC_ENABLE_CTRL 0x023
75#define REG_RX_LOAD_SYNTH_DELAY 0x024
76#define REG_TX_LOAD_SYNTH_DELAY 0x025
77#define REG_EXTERNAL_LNA_CTRL 0x026
78#define REG_GPO_FORCE_AND_INIT 0x027
79#define REG_GPO0_RX_DELAY 0x028
80#define REG_GPO1_RX_DELAY 0x029
81#define REG_GPO2_RX_DELAY 0x02A
82#define REG_GPO3_RX_DELAY 0x02B
83#define REG_GPO0_TX_DELAY 0x02C
84#define REG_GPO1_TX_DELAY 0x02D
85#define REG_GPO2_TX_DELAY 0x02E
86#define REG_GPO3_TX_DELAY 0x02F
87#define REG_AUXDAC1_RX_DELAY 0x030
88#define REG_AUXDAC1_TX_DELAY 0x031
89#define REG_AUXDAC2_RX_DELAY 0x032
90#define REG_AUXDAC2_TX_DELAY 0x033
91#define REG_CTRL_OUTPUT_POINTER 0x035
92#define REG_CTRL_OUTPUT_ENABLE 0x036
93#define REG_PRODUCT_ID 0x037
94#define REG_REFERENCE_CLOCK_CYCLES 0x03A
95#define REG_DIGITAL_IO_CTRL 0x03B
96#define REG_LVDS_BIAS_CTRL 0x03C
97#define REG_LVDS_INVERT_CTRL1 0x03D
98#define REG_LVDS_INVERT_CTRL2 0x03E
99#define REG_SDM_CTRL_1 0x03F
100#define REG_FRACT_BB_FREQ_WORD_1 0x041
101#define REG_FRACT_BB_FREQ_WORD_2 0x042
102#define REG_FRACT_BB_FREQ_WORD_3 0x043
103#define REG_INTEGER_BB_FREQ_WORD 0x044
104#define REG_CLOCK_CTRL 0x045
105#define REG_CP_CURRENT 0x046
106#define REG_CP_BLEED_CURRENT 0x047
107#define REG_LOOP_FILTER_1 0x048
108#define REG_LOOP_FILTER_2 0x049
109#define REG_LOOP_FILTER_3 0x04A
110#define REG_VCO_CTRL 0x04B
111#define REG_VCO_PROGRAM_1 0x04C
112#define REG_VCO_PROGRAM_2 0x04D
113#define REG_SDM_CTRL 0x04E
114#define REG_RX_SYNTH_POWER_DOWN_OVERRIDE 0x050
115#define REG_TX_SYNTH_POWER_DOWN_OVERRIDE 0x051
116#define REG_RX_ANALOG_POWER_DOWN_OVERRIDE_1 0x052
117#define REG_RX_ANALOG_POWER_DOWN_OVERRIDE_2 0x053
118#define REG_RX1_ADC_POWER_DOWN_OVERRIDE 0x054
119#define REG_RX2_ADC_POWER_DOWN_OVERRIDE 0x055
120#define REG_TX_ANALOG_POWER_DOWN_OVERRIDE_1 0x056
121#define REG_ANALOG_POWER_DOWN_OVERRIDE 0x057
122#define REG_MISC_POWER_DOWN_OVERRIDE 0x058
123#define REG_CH_1_OVERFLOW 0x05E
124#define REG_CH_2_OVERFLOW 0x05F
125#define REG_TX_FILTER_COEF_ADDR 0x060
126#define REG_TX_FILTER_COEF_WRITE_DATA_1 0x061
127#define REG_TX_FILTER_COEF_WRITE_DATA_2 0x062
128#define REG_TX_FILTER_COEF_READ_DATA_1 0x063
129#define REG_TX_FILTER_COEF_READ_DATA_2 0x064
130#define REG_TX_FILTER_CONF 0x065
131#define REG_TX_MON_LOW_GAIN 0x067
132#define REG_TX_MON_HIGH_GAIN 0x068
133#define REG_TX_MON_DELAY 0x069
134#define REG_TX_LEVEL_THRESH 0x06A
135#define REG_TX_RSSI1 0x06B
136#define REG_TX_RSSI2 0x06C
137#define REG_TX_RSSI_LSB 0x06D
138#define REG_TPM_MODE_ENABLE 0x06E
139#define REG_TX_MON_TEMP_GAIN_COEF 0x06F
140#define REG_TX_MON_1_CONFIG 0x070
141#define REG_TX_MON_2_CONFIG 0x071
142#define REG_TX1_ATTEN_0 0x073
143#define REG_TX1_ATTEN_1 0x074
144#define REG_TX2_ATTEN_0 0x075
145#define REG_TX2_ATTEN_1 0x076
146#define REG_TX_ATTEN_OFFSET 0x077
147#define REG_TX_ATTEN_THRESH 0x078
148#define REG_TX1_DIG_ATTEN 0x079
149#define REG_TX2_DIG_ATTEN 0x07C
150#define REG_TX1_SYMBOL_ATTEN 0x07F
151#define REG_TX2_SYMBOL_ATTEN 0x080
152#define REG_TX_SYMBOL_ATTEN_CONFIG 0x081
153#define REG_TX1_OUT_1_PHASE_CORR 0x08E
154#define REG_TX1_OUT_1_GAIN_CORR 0x08F
155#define REG_TX2_OUT_1_PHASE_CORR 0x090
156#define REG_TX2_OUT_1_GAIN_CORR 0x091
157#define REG_TX1_OUT_1_OFFSET_I 0x092
158#define REG_TX1_OUT_1_OFFSET_Q 0x093
159#define REG_TX2_OUT_1_OFFSET_I 0x094
160#define REG_TX2_OUT_1_OFFSET_Q 0x095
161#define REG_TX1_OUT_2_PHASE_CORR 0x096
162#define REG_TX1_OUT_2_GAIN_CORR 0x097
163#define REG_TX2_OUT_2_PHASE_CORR 0x098
164#define REG_TX2_OUT_2_GAIN_CORR 0x099
165#define REG_TX1_OUT_2_OFFSET_I 0x09A
166#define REG_TX1_OUT_2_OFFSET_Q 0x09B
167#define REG_TX2_OUT_2_OFFSET_I 0x09C
168#define REG_TX2_OUT_2_OFFSET_Q 0x09D
169#define REG_TX_FORCE_BITS 0x09F
170#define REG_QUAD_CAL_NCO_FREQ_PHASE_OFFSET 0x0A0
171#define REG_QUAD_CAL_CTRL 0x0A1
172#define REG_KEXP_1 0x0A2
173#define REG_KEXP_2 0x0A3
174#define REG_QUAD_SETTLE_COUNT 0x0A4
175#define REG_MAG_FTEST_THRESH 0x0A5
176#define REG_MAG_FTEST_THRESH_2 0x0A6
177#define REG_QUAD_CAL_STATUS_TX1 0x0A7
178#define REG_QUAD_CAL_STATUS_TX2 0x0A8
179#define REG_QUAD_CAL_COUNT 0x0A9
180#define REG_TX_QUAD_FULL_LMT_GAIN 0x0AA
181#define REG_SQUARER_CONFIG 0x0AB
182#define REG_TX_QUAD_CAL_ATTEN 0x0AC
183#define REG_THRESH_ACCUM 0x0AD
184#define REG_TX_QUAD_LPF_GAIN 0x0AE
185#define REG_TXDAC_VDS_I 0x0B0
186#define REG_TXDAC_VDS_Q 0x0B1
187#define REG_TXDAC_GN_I 0x0B2
188#define REG_TXDAC_GN_Q 0x0B3
189#define REG_TXBBF_OPAMP_A 0x0C0
190#define REG_TXBBF_OPAMP_B 0x0C1
191#define REG_TX_BBF_R1 0x0C2
192#define REG_TX_BBF_R2 0x0C3
193#define REG_TX_BBF_R3 0x0C4
194#define REG_TX_BBF_R4 0x0C5
195#define REG_TX_BBF_RP 0x0C6
196#define REG_TX_BBF_C1 0x0C7
197#define REG_TX_BBF_C2 0x0C8
198#define REG_TX_BBF_CP 0x0C9
199#define REG_TX_TUNE_CTRL 0x0CA
200#define REG_TX_BBF_R2B 0x0CB
201#define REG_TX_BBF_TUNE 0x0CC
202#define REG_CONFIG0 0x0D0
203#define REG_RESISTOR 0x0D1
204#define REG_CAPACITOR 0x0D2
205#define REG_LO_CM 0x0D3
206#define REG_TX_BBF_TUNE_DIVIDER 0x0D6
207#define REG_TX_BBF_TUNE_MODE 0x0D7
208#define REG_RX_FILTER_COEF_ADDR 0x0F0
209#define REG_RX_FILTER_COEF_DATA_1 0x0F1
210#define REG_RX_FILTER_COEF_DATA_2 0x0F2
211#define REG_RX_FILTER_COEF_READ_DATA_1 0x0F3
212#define REG_RX_FILTER_COEF_READ_DATA_2 0x0F4
213#define REG_RX_FILTER_CONFIG 0x0F5
214#define REG_RX_FILTER_GAIN 0x0F6
215#define REG_AGC_CONFIG_1 0x0FA
216#define REG_AGC_CONFIG_2 0x0FB
217#define REG_AGC_CONFIG_3 0x0FC
218#define REG_MAX_LMT_FULL_GAIN 0x0FD
219#define REG_PEAK_WAIT_TIME 0x0FE
220#define REG_DIGITAL_GAIN 0x100
221#define REG_AGC_LOCK_LEVEL 0x101
222#define REG_ADC_NOISE_CORRECTION_FACTOR 0x102
223#define REG_GAIN_STP_CONFIG1 0x103
224#define REG_ADC_SMALL_OVERLOAD_THRESH 0x104
225#define REG_ADC_LARGE_OVERLOAD_THRESH 0x105
226#define REG_GAIN_STP_CONFIG_2 0x106
227#define REG_SMALL_LMT_OVERLOAD_THRESH 0x107
228#define REG_LARGE_LMT_OVERLOAD_THRESH 0x108
229#define REG_RX1_MANUAL_LMT_FULL_GAIN 0x109
230#define REG_RX1_MANUAL_LPF_GAIN 0x10A
231#define REG_RX1_MANUAL_DIGITALFORCED_GAIN 0x10B
232#define REG_RX2_MANUAL_LMT_FULL_GAIN 0x10C
233#define REG_RX2_MANUAL_LPF_GAIN 0x10D
234#define REG_RX2_MANUAL_DIGITALFORCED_GAIN 0x10E
235#define REG_FAST_CONFIG_1 0x110
236#define REG_FAST_CONFIG_2_SETTLING_DELAY 0x111
237#define REG_FAST_ENERGY_LOST_THRESH 0x112
238#define REG_FAST_STRONGER_SIGNAL_THRESH 0x113
239#define REG_FAST_LOW_POWER_THRESH 0x114
240#define REG_FAST_STRONG_SIGNAL_FREEZE 0x115
241#define REG_FAST_FINAL_OVER_RANGE_AND_OPT_GAIN 0x116
242#define REG_FAST_ENERGY_DETECT_COUNT 0x117
243#define REG_FAST_AGCLL_UPPER_LIMIT 0x118
244#define REG_FAST_GAIN_LOCK_EXIT_COUNT 0x119
245#define REG_FAST_INITIAL_LMT_GAIN_LIMIT 0x11A
246#define REG_FAST_INCREMENT_TIME 0x11B
247#define REG_AGC_INNER_LOW_THRESH 0x120
248#define REG_LMT_OVERLOAD_COUNTERS 0x121
249#define REG_ADC_OVERLOAD_COUNTERS 0x122
250#define REG_GAIN_STP1 0x123
251#define REG_GAIN_UPDATE_COUNTER1 0x124
252#define REG_GAIN_UPDATE_COUNTER2 0x125
253#define REG_DIGITAL_SAT_COUNTER 0x128
254#define REG_OUTER_POWER_THRESHS 0x129
255#define REG_GAIN_STP_2 0x12A
256#define REG_EXT_LNA_HIGH_GAIN 0x12C
257#define REG_EXT_LNA_LOW_GAIN 0x12D
258#define REG_GAIN_TABLE_ADDRESS 0x130
259#define REG_GAIN_TABLE_WRITE_DATA1 0x131
260#define REG_GAIN_TABLE_WRITE_DATA2 0x132
261#define REG_GAIN_TABLE_WRITE_DATA3 0x133
262#define REG_GAIN_TABLE_READ_DATA1 0x134
263#define REG_GAIN_TABLE_READ_DATA2 0x135
264#define REG_GAIN_TABLE_READ_DATA3 0x136
265#define REG_GAIN_TABLE_CONFIG 0x137
266#define REG_GM_SUB_TABLE_ADDRESS 0x138
267#define REG_GM_SUB_TABLE_GAIN_WRITE 0x139
268#define REG_GM_SUB_TABLE_BIAS_WRITE 0x13A
269#define REG_GM_SUB_TABLE_CTRL_WRITE 0x13B
270#define REG_GM_SUB_TABLE_GAIN_READ 0x13C
271#define REG_GM_SUB_TABLE_BIAS_READ 0x13D
272#define REG_GM_SUB_TABLE_CTRL_READ 0x13E
273#define REG_GM_SUB_TABLE_CONFIG 0x13F
274#define REG_WORD_ADDRESS 0x140
275#define REG_GAIN_DIFF_WORDERROR_WRITE 0x141
276#define REG_GAIN_ERROR_READ 0x142
277#define REG_CONFIG 0x143
278#define REG_LNA_GAIN_DIFF_READ_BACK 0x144
279#define REG_MAX_MIXER_CALIBRATION_GAIN_INDEX 0x145
280#define REG_TEMP_GAIN_COEF 0x146
281#define REG_SETTLE_TIME 0x147
282#define REG_MEASURE_DURATION 0x148
283#define REG_CAL_TEMP_SENSOR_WORD 0x149
284#define REG_MEASURE_DURATION_01 0x150
285#define REG_MEASURE_DURATION_23 0x151
286#define REG_RSSI_WEIGHT_0 0x152
287#define REG_RSSI_WEIGHT_1 0x153
288#define REG_RSSI_WEIGHT_2 0x154
289#define REG_RSSI_WEIGHT_3 0x155
290#define REG_RSSI_DELAY 0x156
291#define REG_RSSI_WAIT_TIME 0x157
292#define REG_RSSI_CONFIG 0x158
293#define REG_ADC_MEASURE_DURATION_01 0x159
294#define REG_ADC_WEIGHT_0 0x15A
295#define REG_ADC_WEIGHT_1 0x15B
296#define REG_DEC_POWER_MEASURE_DURATION_0 0x15C
297#define REG_LNA_GAIN 0x15D
298#define REG_CH1_ADC_POWER 0x160
299#define REG_CH1_RX_FILTER_POWER 0x161
300#define REG_CH2_ADC_POWER 0x162
301#define REG_CH2_RX_FILTER_POWER 0x163
302#define REG_RX_QUAD_CAL_LEVEL 0x168
303#define REG_CALIBRATION_CONFIG_1 0x169
304#define REG_CALIBRATION_CONFIG_2 0x16A
305#define REG_CALIBRATION_CONFIG_3 0x16B
306#define REG_CALIB_COUNT 0x16C
307#define REG_SETTLE_COUNT 0x16D
308#define REG_RX_QUAD_GAIN1 0x16E
309#define REG_RX_QUAD_GAIN2 0x16F
310#define REG_RX1_INPUT_A_PHASE_CORR 0x170
311#define REG_RX1_INPUT_A_GAIN_CORR 0x171
312#define REG_RX2_INPUT_A_PHASE_CORR 0x172
313#define REG_RX2_INPUT_A_GAIN_CORR 0x173
314#define REG_RX1_INPUT_A_Q_OFFSET 0x174
315#define REG_RX1_INPUT_A_OFFSETS 0x175
316#define REG_INPUT_A_OFFSETS_1 0x176
317#define REG_RX2_INPUT_A_OFFSETS 0x177
318#define REG_RX2_INPUT_A_I_OFFSET 0x178
319#define REG_RX1_INPUT_BC_PHASE_CORR 0x179
320#define REG_RX1_INPUT_BC_GAIN_CORR 0x17A
321#define REG_RX2_INPUT_BC_PHASE_CORR 0x17B
322#define REG_RX2_INPUT_BC_GAIN_CORR 0x17C
323#define REG_RX1_INPUT_BC_Q_OFFSET 0x17D
324#define REG_RX1_INPUT_BC_OFFSETS 0x17E
325#define REG_INPUT_BC_OFFSETS_1 0x17F
326#define REG_RX2_INPUT_BC_OFFSETS 0x180
327#define REG_RX2_INPUT_BC_I_OFFSET 0x181
328#define REG_FORCE_BITS 0x182
329#define REG_WAIT_COUNT 0x185
330#define REG_RF_DC_OFFSET_COUNT 0x186
331#define REG_RF_DC_OFFSET_CONFIG_1 0x187
332#define REG_RF_DC_OFFSET_ATTEN 0x188
333#define REG_INVERT_BITS 0x189
334#define REG_DC_OFFSET_CONFIG2 0x18B
335#define REG_RF_CAL_GAIN_INDEX 0x18C
336#define REG_SOI_THRESH 0x18D
337#define REG_BB_DC_OFFSET_SHIFT 0x190
338#define REG_BB_DC_OFFSET_FAST_SETTLE_SHIFT 0x191
339#define REG_BB_FAST_SETTLE_DUR 0x192
340#define REG_BB_DC_OFFSET_COUNT 0x193
341#define REG_BB_DC_OFFSET_ATTEN 0x194
342#define REG_RX1_BB_DC_WORD_I_MSB 0x19A
343#define REG_RX1_BB_DC_WORD_I_LSB 0x19B
344#define REG_RX1_BB_DC_WORD_Q_MSB 0x19C
345#define REG_RX1_BB_DC_WORD_Q_LSB 0x19D
346#define REG_RX2_BB_DC_WORD_I_MSB 0x19E
347#define REG_RX2_BB_DC_WORD_I_LSB 0x19F
348#define REG_RX2_BB_DC_WORD_Q_MSB 0x1A0
349#define REG_RX2_BB_DC_WORD_Q_LSB 0x1A1
350#define REG_BB_TRACK_CORR_WORD_I_MSB 0x1A2
351#define REG_BB_TRACK_CORR_WORD_I_LSB 0x1A3
352#define REG_BB_TRACK_CORR_WORD_Q_MSB 0x1A4
353#define REG_BB_TRACK_CORR_WORD_Q_LSB 0x1A5
354#define REG_RX1_RSSI_SYMBOL 0x1A7
355#define REG_RX1_RSSI_PREAMBLE 0x1A8
356#define REG_RX2_RSSI_SYMBOL 0x1A9
357#define REG_RX2_RSSI_PREAMBLE 0x1AA
358#define REG_SYMBOL_LSB 0x1AB
359#define REG_PREAMBLE_LSB 0x1AC
360#define REG_RX_PATH_GAIN_MSB 0x1AD
361#define REG_RX_PATH_GAIN_LSB 0x1AE
362#define REG_RX_DIFF_LNA_FORCE 0x1B0
363#define REG_RX_LNA_BIAS_COARSE 0x1B1
364#define REG_RX_LNA_BIAS_FINE_0 0x1B2
365#define REG_RX_LNA_BIAS_FINE_1 0x1B3
366#define REG_RX_MIX_GM_CONFIG 0x1C0
367#define REG_RX1_MIX_GM_FORCE 0x1C1
368#define REG_RX1_MIX_GM_BIAS_FORCE 0x1C2
369#define REG_RX2_MIX_GM_FORCE 0x1C3
370#define REG_RX2_MIX_GM_BIAS_FORCE 0x1C4
371#define REG_INPUT_A_MSBS 0x1C8
372#define REG_INPUT_A_RX1_I 0x1C9
373#define REG_INPUT_A_RX1_Q 0x1CA
374#define REG_INPUT_A_RX2_I 0x1CB
375#define REG_INPUT_A_RX2_Q 0x1CC
376#define REG_INPUTS_BC_RX1_I 0x1CD
377#define REG_BAND1_RX1_Q 0x1CE
378#define REG_INPUTS_BC_RX2_I 0x1CF
379#define REG_INPUTS_BC_RX2_Q 0x1D0
380#define REG_INPUTS_BC_MSBS 0x1D1
381#define REG_FORCE_OS_DAC 0x1D2
382#define REG_RX_MIX_LO_CM 0x1D5
383#define REG_RX_CGB_SEG_ENABLE 0x1D6
384#define REG_RX_MIX_INPUTBIAS 0x1D7
385#define REG_RX_TIA_CONFIG 0x1DB
386#define REG_TIA1_C_LSB 0x1DC
387#define REG_TIA1_C_MSB 0x1DD
388#define REG_TIA2_C_LSB 0x1DE
389#define REG_TIA2_C_MSB 0x1DF
390#define REG_RX1_BBF_R1A 0x1E0
391#define REG_RX2_BBF_R1A 0x1E1
392#define REG_RX1_TUNE_CTRL 0x1E2
393#define REG_RX2_TUNE_CTRL 0x1E3
394#define REG_RX1_BBF_R5 0x1E4
395#define REG_RX2_BBF_R5 0x1E5
396#define REG_RX_BBF_R2346 0x1E6
397#define REG_RX_BBF_C1_MSB 0x1E7
398#define REG_RX_BBF_C1_LSB 0x1E8
399#define REG_RX_BBF_C2_MSB 0x1E9
400#define REG_RX_BBF_C2_LSB 0x1EA
401#define REG_RX_BBF_C3_MSB 0x1EB
402#define REG_RX_BBF_C3_LSB 0x1EC
403#define REG_RX_BBF_CC1_CTR 0x1ED
404#define REG_RX_BBF_POW_RZ_BYTE0 0x1EE
405#define REG_RX_BBF_CC2_CTR 0x1EF
406#define REG_RX_BBF_POW_RZ_BYTE1 0x1F0
407#define REG_RX_BBF_CC3_CTR 0x1F1
408#define REG_RX_BBF_R5_TUNE 0x1F2
409#define REG_RX_BBF_TUNE 0x1F3
410#define REG_RX1_BBF_MAN_GAIN 0x1F4
411#define REG_RX2_BBF_MAN_GAIN 0x1F5
412#define REG_RX_BBF_TUNE_DIVIDE 0x1F8
413#define REG_RX_BBF_TUNE_CONFIG 0x1F9
414#define REG_POLE_GAIN 0x1FA
415#define REG_RX_BBBW_MHZ 0x1FB
416#define REG_RX_BBBW_KHZ 0x1FC
417#define REG_FB_DAC_CLK_DELAY1 0x201
418#define REG_FB_DAC_CLK_DELAY2 0x202
419#define REG_FLASH_SAMPLE_CLK_DELAY_3P 0x203
420#define REG_FLASH_SAMPLE_CLK_DELAY_3N 0x204
421#define REG_TEST_MUX_2I 0x205
422#define REG_TEST_MUX_2Q 0x206
423#define REG_INTEGRATOR_1_RESISTANCE 0x207
424#define REG_INTEGRATOR_1_CAPACITANCE 0x208
425#define REG_INTEGRATOR_23_RESISTANCE 0x209
426#define REG_INTEGRATOR_2_RESISTANCE 0x20A
427#define REG_INTEGRATOR_2_CAPACITANCE 0x20B
428#define REG_INTEGRATOR_3_RESISTANCE 0x20C
429#define REG_INTEGRATOR_3_CAPACITANCE 0x20D
430#define REG_INTEGRATOR_AMP_CC 0x20E
431#define REG_INT_1_FB_DAC_NMOS_CURRENT_SOURCE 0x20F
432#define REG_INT_1_FB_DAC_NMOS_CASOADE_BIAS_CURRENT 0x210
433#define REG_INT_1_FB_DAC_PMOS_CURRENT_SOURCE 0x211
434#define REG_INT_2_FB_DAC_NMOS_CURRENT_SOURCE 0x212
435#define REG_INT_2_FB_DAC_NMOS_CASCODE_BIAS_CURRENT 0x213
436#define REG_INT_2_FB_DAC_PMOS_CURRENT_SOURCE 0x214
437#define REG_INT_3_FB_DAC_NMOS_CURRENT_SOURCE 0x215
438#define REG_INT_3_FB_DAC_NMOS_CASCODE_BIAS_CURRENT 0x216
439#define REG_INT_3_FB_DAC_PMOS_CURRENT_SOURCE 0x217
440#define REG_FB_DAC_BIAS_CURRENT 0x218
441#define REG_INT_1_1ST_STAGE_CURRENT 0x219
442#define REG_INT_1_1ST_STAGE_CASCODE_CURRENT 0x21A
443#define REG_INT_1_2ND_STAGE_CURRENT 0x21B
444#define REG_INTEGRATOR_2_1ST_STAGE_CURRENT 0x21C
445#define REG_INT_2_1ST_STAGE_CASCODE_CURRENT 0x21D
446#define REG_INT_2_2ND_STAGE_CURRENT 0x21E
447#define REG_INT_3_1ST_STAGE_CURRENT 0x21F
448#define REG_INT_3_1ST_STAGE_CASCODE_CURRENT 0x220
449#define REG_INT_3_2ND_STAGE_CURRENT 0x221
450#define REG_FLASH_BIAS_CURRENT 0x222
451#define REG_FLASH_LADDER_BIAS 0x223
452#define REG_FLASH_LADDER_CASCODE_CURRENT 0x224
453#define REG_FLASH_LADDER_BIAS2 0x225
454#define REG_RESET 0x226
455#define REG_RX_PFD_CONFIG 0x230
456#define REG_RX_INTEGER_BYTE_0 0x231
457#define REG_RX_INTEGER_BYTE_1 0x232
458#define REG_RX_FRACT_BYTE_0 0x233
459#define REG_RX_FRACT_BYTE_1 0x234
460#define REG_RX_FRACT_BYTE_2 0x235
461#define REG_RX_FORCE_ALC 0x236
462#define REG_RX_FORCE_VCO_TUNE_0 0x237
463#define REG_RX_FORCE_VCO_TUNE_1 0x238
464#define REG_RX_ALC_VARACTOR 0x239
465#define REG_RX_VCO_OUTPUT 0x23A
466#define REG_RX_CP_CURRENT 0x23B
467#define REG_RX_CP_OFFSET 0x23C
468#define REG_RX_CP_CONFIG 0x23D
469#define REG_RX_LOOP_FILTER_1 0x23E
470#define REG_RX_LOOP_FILTER_2 0x23F
471#define REG_RX_LOOP_FILTER_3 0x240
472#define REG_RX_DITHERCP_CAL 0x241
473#define REG_RX_VCO_BIAS_1 0x242
474#define REG_RX_CAL_STATUS 0x244
475#define REG_RX_VCO_CAL_REF 0x245
476#define REG_RX_VCO_PD_OVERRIDES 0x246
477#define REG_RX_CP_OVERRANGE_VCO_LOCK 0x247
478#define REG_RX_VCO_LDO 0x248
479#define REG_RX_VCO_CAL 0x249
480#define REG_RX_LOCK_DETECT_CONFIG 0x24A
481#define REG_RX_CP_LEVEL_DETECT 0x24B
482#define REG_RX_DSM_SETUP_0 0x24C
483#define REG_RX_DSM_SETUP_1 0x24D
484#define REG_RX_CORRECTION_WORD0 0x24E
485#define REG_RX_CORRECTION_WORD1 0x24F
486#define REG_RX_VCO_VARACTOR_CTRL_0 0x250
487#define REG_RX_VCO_VARACTOR_CTRL_1 0x251
488#define REG_RX_FAST_LOCK_SETUP 0x25A
489#define REG_RX_FAST_LOCK_SETUP_INIT_DELAY 0x25B
490#define REG_RX_FAST_LOCK_PROGRAM_ADDR 0x25C
491#define REG_RX_FAST_LOCK_PROGRAM_DATA 0x25D
492#define REG_RX_FAST_LOCK_PROGRAM_READ 0x25E
493#define REG_RX_FAST_LOCK_PROGRAM_CTRL 0x25F
494#define REG_RX_LO_GEN_POWER_MODE 0x261
495#define REG_TX_PFD_CONFIG 0x270
496#define REG_TX_INTEGER_BYTE_0 0x271
497#define REG_TX_INTEGER_BYTE_1 0x272
498#define REG_TX_FRACT_BYTE_0 0x273
499#define REG_TX_FRACT_BYTE_1 0x274
500#define REG_TX_FRACT_BYTE_2 0x275
501#define REG_TX_FORCE_ALC 0x276
502#define REG_TX_FORCE_VCO_TUNE_0 0x277
503#define REG_TX_FORCE_VCO_TUNE_1 0x278
504#define REG_TX_ALCVARACT_OR 0x279
505#define REG_TX_VCO_OUTPUT 0x27A
506#define REG_TX_CP_CURRENT 0x27B
507#define REG_TX_CP_OFFSET 0x27C
508#define REG_TX_CP_CONFIG 0x27D
509#define REG_TX_LOOP_FILTER_1 0x27E
510#define REG_TX_LOOP_FILTER_2 0x27F
511#define REG_TX_LOOP_FILTER_3 0x280
512#define REG_TX_DITHERCP_CAL 0x281
513#define REG_TX_VCO_BIAS_1 0x282
514#define REG_TX_VCO_BIAS_2 0x283
515#define REG_TX_CAL_STATUS 0x284
516#define REG_TX_VCO_CAL_REF 0x285
517#define REG_TX_VCO_PD_OVERRIDES 0x286
518#define REG_TX_CP_OVERRANGE_VCO_LOCK 0x287
519#define REG_TX_VCO_LDO 0x288
520#define REG_TX_VCO_CAL 0x289
521#define REG_TX_LOCK_DETECT_CONFIG 0x28A
522#define REG_TX_CP_LEVEL_DETECT 0x28B
523#define REG_TX_DSM_SETUP_0 0x28C
524#define REG_TX_DSM_SETUP_1 0x28D
525#define REG_TX_CORRECTION_WORD0 0x28E
526#define REG_TX_CORRECTION_WORD1 0x28F
527#define REG_TX_VCO_VARACTOR_CTRL_0 0x290
528#define REG_TX_VCO_VARACTOR_CTRL_1 0x291
529#define REG_DCXO_COARSE_TUNE 0x292
530#define REG_DCXO_FINE_TUNE_HIGH 0x293
531#define REG_DCXO_FINE_TUNE_LOW 0x294
532#define REG_DCXO_CONFIG 0x295
533#define REG_DCXO_TEMPCO_WRITE 0x296
534#define REG_DCXO_TEMPCO_READ 0x297
535#define REG_DCXO_TEMPCO_ADDR 0x298
536#define REG_DELTA_T_READ 0x299
537#define REG_TX_FAST_LOCK_SETUP 0x29A
538#define REG_TX_FAST_LOCK_SETUP_INIT_DELAY 0x29B
539#define REG_TX_FAST_LOCK_PROGRAM_ADDR 0x29C
540#define REG_TX_FAST_LOCK_PROGRAM_DATA 0x29D
541#define REG_TX_FAST_LOCK_PROGRAM_READ 0x29E
542#define REG_TX_FAST_LOCK_PROGRAM_CTRL 0x29F
543#define REG_TX_LO_GEN_POWER_MODE 0x2A1
544#define REG_BANDGAP_CONFIG0 0x2A6
545#define REG_BANDGAP_CONFIG1 0x2A8
546#define REG_REF_DIVIDE_CONFIG_1 0x2AB
547#define REG_REF_DIVIDE_CONFIG_2 0x2AC
548#define REG_GAIN_RX1 0x2B0
549#define REG_LPF_GAIN_RX1 0x2B1
550#define REG_DIG_GAIN_RX1 0x2B2
551#define REG_FAST_ATTACK_STATE 0x2B3
552#define REG_SLOW_LOOP_STATE 0x2B4
553#define REG_GAIN_RX2 0x2B5
554#define REG_LPF_GAIN_RX2 0x2B6
555#define REG_DIG_GAIN_RX2 0x2B7
556#define REG_OVRG_SIGS_RX1 0x2B8
557#define REG_OVRG_SIGS_RX2 0x2B9
558#define REG_CTRL 0x3DF
559#define REG_BIST_CONFIG 0x3F4
560#define REG_OBSERVE_CONFIG 0x3F5
561#define REG_BIST_AND_DATA_PORT_TEST_CONFIG 0x3F6
562#define REG_DAC_TEST_0 0x3FC
563#define REG_DAC_TEST_1 0x3FD
564#define REG_DAC_TEST_2 0x3FE
569#define SOFT_RESET (1 << 7)
570#define WIRE3_SPI (1 << 6)
571#define LSB_FIRST (1 << 5)
572#define _LSB_FIRST (1 << 2)
573#define _WIRE3_SPI (1 << 1)
574#define _SOFT_RESET (1 << 0)
579#define TX2_MONITOR_ENABLE (1 << 6)
580#define TX1_MONITOR_ENABLE (1 << 5)
581#define MCS_RF_ENABLE (1 << 3)
582#define MCS_BBPLL_ENABLE (1 << 2)
583#define MCS_DIGITAL_CLK_ENABLE (1 << 1)
584#define MCS_BB_ENABLE (1 << 0)
589#define THB2_EN (1 << 3)
590#define THB1_EN (1 << 2)
591#define TX_CHANNEL_ENABLE(x) (((x) & 0x3) << 6)
592#define THB3_ENABLE_INTERP(x) (((x) & 0x3) << 4)
593#define TX_FIR_ENABLE_INTERPOLATION(x) (((x) & 0x3) << 0)
602#define RHB2_EN (1 << 3)
603#define RHB1_EN (1 << 2)
604#define RX_CHANNEL_ENABLE(x) (((x) & 0x3) << 6)
605#define DEC3_ENABLE_DECIMATION(x) (((x) & 0x3) << 4)
606#define RX_FIR_ENABLE_DECIMATION(x) (((x) & 0x3) << 0)
615#define TX_OUTPUT (1 << 6)
616#define RX_INPUT(x) (((x) & 0x3F) << 0)
621#define TX_VCO_DIVIDER(x) (((x) & 0xF) << 4)
622#define RX_VCO_DIVIDER(x) (((x) & 0xF) << 0)
627#define DATA_CLK_DELAY(x) (((x) & 0xF) << 4)
628#define RX_DATA_DELAY(x) (((x) & 0xF) << 0)
633#define FB_CLK_DELAY(x) (((x) & 0xF) << 4)
634#define TX_DATA_DELAY(x) (((x) & 0xF) << 0)
639#define XO_BYPASS (1 << 4)
640#define DIGITAL_POWER_UP (1 << 2)
641#define CLOCK_ENABLE_DFLT (1 << 1)
642#define BBPLL_ENABLE (1 << 0)
647#define CLKOUT_ENABLE (1 << 4)
648#define DAC_CLK_DIV2 (1 << 3)
649#define CLKOUT_SELECT(x) (((x) & 0x7) << 5)
650#define BBPLL_DIVIDER(x) (((x) & 0x7) << 0)
655#define START_TEMP_READING (1 << 0)
660#define TEMP_SENSE_PERIODIC_ENABLE (1 << 0)
661#define MEASUREMENT_TIME_INTERVAL(x) (((x) & 0x7F) << 1)
666#define TEMP_SENSOR_DECIMATION(x) (((x) & 0x7) << 0)
671#define PP_TX_SWAP_IQ (1 << 7)
672#define PP_RX_SWAP_IQ (1 << 6)
673#define TX_CHANNEL_SWAP (1 << 5)
674#define RX_CHANNEL_SWAP (1 << 4)
675#define RX_FRAME_PULSE_MODE (1 << 3)
676#define R2T2_TIMING (1 << 2)
677#define INVERT_DATA_BUS (1 << 1)
678#define INVERT_DATA_CLK (1 << 0)
683#define FDD_ALT_WORD_ORDER (1 << 7)
684#define INVERT_RX1 (1 << 6)
685#define INVERT_RX2 (1 << 5)
686#define INVERT_TX1 (1 << 4)
687#define INVERT_TX2 (1 << 3)
688#define INVERT_RX_FRAME (1 << 2)
689#define DELAY_RX_DATA(x) (((x) & 0x3) << 0)
694#define FDD_RX_RATE_2TX_RATE (1 << 7)
695#define SWAP_PORTS (1 << 6)
696#define SINGLE_DATA_RATE (1 << 5)
697#define LVDS_MODE (1 << 4)
698#define HALF_DUPLEX_MODE (1 << 3)
699#define SINGLE_PORT_MODE (1 << 2)
700#define FULL_PORT (1 << 1)
701#define FULL_DUPLEX_SWAP_BITS (1 << 0)
706#define FDD_MODE (1 << 0)
711#define ENABLE_RX_DATA_PORT_FOR_CAL (1 << 7)
712#define FORCE_RX_ON (1 << 6)
713#define FORCE_TX_ON (1 << 5)
714#define ENABLE_ENSM_PIN_CTRL (1 << 4)
715#define LEVEL_MODE (1 << 3)
716#define FORCE_ALERT_STATE (1 << 2)
717#define AUTO_GAIN_LOCK (1 << 1)
718#define TO_ALERT (1 << 0)
723#define FDD_EXTERNAL_CTRL_ENABLE (1 << 7)
724#define POWER_DOWN_RX_SYNTH (1 << 6)
725#define POWER_DOWN_TX_SYNTH (1 << 5)
726#define TXNRX_SPI_CTRL (1 << 4)
727#define SYNTH_ENABLE_PIN_CTRL_MODE (1 << 3)
728#define DUAL_SYNTH_MODE (1 << 2)
729#define RX_SYNTH_READY_MASK (1 << 1)
730#define TX_SYNTH_READY_MASK (1 << 0)
735#define RX_BB_TUNE_CAL (1 << 7)
736#define TX_BB_TUNE_CAL (1 << 6)
737#define RX_QUAD_CAL (1 << 5)
738#define TX_QUAD_CAL (1 << 4)
739#define RX_GAIN_STEP_CAL (1 << 3)
740#define TXMON_CAL (1 << 2)
741#define RFDC_CAL (1 << 1)
742#define BBDC_CAL (1 << 0)
748#define CALIBRATION_SEQUENCE_STATE(x) (((x) & 0xF) << 4)
749#define ENSM_STATE(x) (((x) & 0xF) << 0)
750#define ENSM_STATE_SLEEP_WAIT 0x0
751#define ENSM_STATE_ALERT 0x5
752#define ENSM_STATE_TX 0x6
753#define ENSM_STATE_TX_FLUSH 0x7
754#define ENSM_STATE_RX 0x8
755#define ENSM_STATE_RX_FLUSH 0x9
756#define ENSM_STATE_FDD 0xA
757#define ENSM_STATE_FDD_FLUSH 0xB
758#define ENSM_STATE_INVALID 0xFF
759#define ENSM_STATE_SLEEP 0x80
764#define AUXDAC_2_WORD_MSB(x) (((x) & 0x3F) << 2)
765#define AUXDAC_1_WORD(x) (((x) & 0x3) << 0)
770#define COMP_CTRL_1 (1 << 5)
771#define AUXDAC1_STP_FACTOR (1 << 4)
772#define AUXDAC_1_VREF(x) (((x) & 0x3) << 2)
773#define AUXDAC_1_WORD_LSB(x) (((x) & 0x3) << 0)
778#define COMP_CTRL_2 (1 << 5)
779#define AUXDAC2_STP_FACTOR (1 << 4)
780#define AUXDAC_2_VREF(x) (((x) & 0xF) << 2)
781#define AUXDAC_2_WORD_LSB(x) (((x) & 0x3) << 0)
786#define AUXADC_CLOCK_DIVIDER(x) (((x) & 0x3F) << 0)
791#define AUXADC_POWER_DOWN (1 << 0)
792#define AUX_ADC_DECIMATION(x) (((x) & 0x7) << 1)
797#define AUXADC_WORD_LSB(x) (((x) & 0xF) << 0)
802#define GPO_ENABLE_AUTO_RX(x) (((x) & 0xF) << 4)
803#define GPO_ENABLE_AUTO_TX(x) (((x) & 0xF) << 0)
808#define INVERT_BYPASSED_LNA_POLARITY (1 << 6)
809#define AGC_ATTACK_DELAY(x) (((x) & 0x3F) << 0)
814#define AUXDAC_MANUAL_BAR(x) (((x) & 0x3) << 6)
815#define AUXDAC_AUTO_TX_BAR(x) (((x) & 0x3) << 4)
816#define AUXDAC_AUTO_RX_BAR(x) (((x) & 0x3) << 2)
817#define AUXDAC_INIT_BAR(x) (((x) & 0x3) << 0)
822#define AUXDAC_MANUAL_SELECT (1 << 7)
823#define EXTERNAL_LNA2_CTRL (1 << 6)
824#define EXTERNAL_LNA1_CTRL (1 << 5)
825#define GPO_MANUAL_SELECT (1 << 4)
826#define OPEN(x) (((x) & 0xF) << 0)
831#define GPO_MANUAL_CTRL(x) (((x) & 0xF) << 4)
832#define GPO_INIT_STATE(x) (((x) & 0xF) << 0)
837#define EN_CTRL7 (1 << 7)
838#define EN_CTRL6 (1 << 6)
839#define EN_CTRL5 (1 << 5)
840#define EN_CTRL4 (1 << 4)
841#define EN_CTRL3 (1 << 3)
842#define EN_CTRL2 (1 << 2)
843#define EN_CTRL1 (1 << 1)
844#define EN_CTRL0 (1 << 0)
849#define PRODUCT_ID_MASK 0xF8
850#define PRODUCT_ID_9361 0x08
856#define REFERENCE_CLOCK_CYCLES_PER_US(x) (((x) & 0x7F) << 0)
861#define CLK_OUT_DRIVE (1 << 7)
862#define DATACLK_DRIVE (1 << 6)
863#define DATA_PORT_DRIVE (1 << 2)
864#define DATACLK_SLEW(x) (((x) & 0x3) << 4)
865#define DATA_PORT_SLEW(x) (((x) & 0x3) << 0)
870#define RX_ON_CHIP_TERM (1 << 5)
871#define LVDS_BYPASS_BIAS_R (1 << 4)
872#define LVDS_TX_LO_VCM (1 << 3)
873#define CLK_OUT_SLEW(x) (((x) & 0x3) << 6)
874#define LVDS_BIAS(x) (((x) & 0x7) << 0)
879#define INIT_BB_FO_CAL (1 << 2)
880#define BBPLL_RESET_BAR (1 << 0)
885#define REF_FREQ_SCALER(x) (((x) & 0x3) << 0)
890#define CHARGE_PUMP_CURRENT(x) (((x) & 0x3F) << 0)
895#define MCS_REFCLK_SCALE_EN (1 << 7)
900#define C1_WORD(x) (((x) & 0x7) << 5)
901#define R1_WORD(x) (((x) & 0x1F) << 0)
906#define R2_WORD (1 << 7)
907#define C2_WORD(x) (((x) & 0x1F) << 2)
908#define C1_WORD_LSB(x) (((x) & 0x3) << 0)
913#define BYPASS_C3 (1 << 7)
914#define BYPASS_R2 (1 << 6)
915#define C3_WORD(x) (((x) & 0xF) << 2)
916#define R2_WORD_LSB(x) (((x) & 0x3) << 0)
921#define FREQ_CAL_ENABLE (1 << 7)
922#define FREQ_CAL_RESET (1 << 4)
923#define FREQ_CAL_COUNT_LENGTH(x) (((x) & 0x3) << 5)
928#define CAL_CLOCK_DIV_4 (1 << 4)
933#define RX_LO_POWER_DOWN (1 << 4)
934#define RX_SYNTH_VCO_ALC_POWER_DOWN (1 << 3)
935#define RX_SYNTH_PTAT_POWER_DOWN (1 << 2)
936#define RX_SYNTH_VCO_POWER_DOWN (1 << 1)
937#define RX_SYNTH_VCO_LDO_POWER_DOWN (1 << 0)
942#define TX_LO_POWER_DOWN (1 << 4)
943#define TX_SYNTH_VCO_ALC_POWER_DOWN (1 << 3)
944#define TX_SYNTH_PTAT_POWER_DOWN (1 << 2)
945#define TX_SYNTH_VCO_POWER_DOWN (1 << 1)
946#define TX_SYNTH_VCO_LDO_POWER_DOWN (1 << 0)
951#define RX_OFFSET_DAC_CGIN_POWER_DOWN(x) (((x) & 0x3) << 6)
952#define RX_LMT_OVERLOAD_POWER_DOWN(x) (((x) & 0x3) << 4)
953#define RX_MIXER_GM_POWER_DOWN(x) (((x) & 0x3) << 2)
954#define RX_CGB_POWER_DOWN(x) (((x) & 0x3) << 0)
959#define RX_BBF_POWER_DOWN(x) (((x) & 0x3) << 6)
960#define RX_TIA_POWER_DOWN(x) (((x) & 0x3) << 4)
961#define RX_MIXER_POWER_DOWN(x) (((x) & 0x3) << 2)
962#define RX_OFFSET_DAC_CGOUT_POWER_DOWN(x) (((x) & 0x3) << 0)
967#define TX_SECONDARY_FILTER_POWER_DOWN(x) (((x) & 0x3) << 6)
968#define TX_BBF_POWER_DOWN(x) (((x) & 0x3) << 4)
969#define TX_DAC_POWER_DOWN(x) (((x) & 0x3) << 2)
970#define TX_DAC_BIAS_POWER_DOWN(x) (((x) & 0x3) << 0)
975#define RX_EXT_VCO_BUFFER_POWER_DOWN (1 << 5)
976#define TX_EXT_VCO_BUFFER_POWER_DOWN (1 << 4)
977#define TX_MONITOR_POWER_DOWN(x) (((x) & 0x3) << 2)
978#define TX_UPCONVERTER_POWER_DOWN(x) (((x) & 0x3) << 0)
983#define RX_LNA_POWER_DOWN (1 << 6)
984#define DCXO_POWER_DOWN (1 << 1)
985#define MASTER_BIAS_POWER_DOWN (1 << 0)
986#define RX_CALIBRATION_POWER_DOWN(x) (((x) & 0x3) << 2)
991#define BBPLL_LOCK (1 << 7)
992#define CH_1_INT3 (1 << 6)
993#define CH1_HB3 (1 << 5)
994#define CH1_HB2 (1 << 4)
995#define CH1_QEC (1 << 3)
996#define CH1_HB1 (1 << 2)
997#define CH1_TFIR (1 << 1)
998#define CH1_RFIR (1 << 0)
1003#define CH2_INT3 (1 << 6)
1004#define CH2_HB3 (1 << 5)
1005#define CH2_HB2 (1 << 4)
1006#define CH2_QEC (1 << 3)
1007#define CH2_HB1 (1 << 2)
1008#define CH2_TFIR (1 << 1)
1009#define CH2_RFIR (1 << 0)
1014#define TX_FIR_GAIN_6DB (1 << 0)
1015#define FIR_START_CLK (1 << 1)
1016#define FIR_WRITE (1 << 2)
1017#define FIR_SELECT(x) (((x) & 0x3) << 3)
1018#define FIR_NUM_TAPS(x) (((x) & 0x7) << 5)
1023#define TX_MON_TRACK (1 << 5)
1024#define TX_MON_LOW_GAIN(x) (((x) & 0x1F) << 0)
1029#define TX_MON_HIGH_GAIN(x) (((x) & 0x1F) << 0)
1034#define TX_LEVEL_THRESH(x) (((x) & 0x3F) << 2)
1035#define TX_MON_DELAY_COUNTER(x) (((x) & 0x3) << 0)
1040#define TX_RSSI_2 (1 << 1)
1041#define TX_RSSI_1 (1 << 0)
1046#define TX2_MON_ENABLE (1 << 7)
1047#define TX1_MON_ENABLE (1 << 5)
1048#define ONE_SHOT_MODE (1 << 6)
1049#define TX_MON_DURATION(x) (((x) & 0xF) << 0)
1054#define TX_MON_1_LO_CM(x) (((x) & 0x3F) << 2)
1055#define TX_MON_1_GAIN(x) (((x) & 0x3) << 0)
1060#define TX_MON_2_LO_CM(x) (((x) & 0x3F) << 2)
1061#define TX_MON_2_GAIN(x) (((x) & 0x3) << 0)
1066#define TX_1_ATTEN (1 << 0)
1071#define TX_2_ATTEN (1 << 0)
1076#define MASK_CLR_ATTEN_UPDATE (1 << 6)
1077#define TX_ATTEN_OFFSET(x) (((x) & 0x3F) << 0)
1082#define SEL_TX1_TX2 (1 << 6)
1087#define IMMEDIATELY_UPDATE_TPC_ATTEN (1 << 6)
1092#define TX_1_SYMBOL_ATTEN(x) (((x) & 0x7F) << 0)
1097#define TX_2_SYMBOL_ATTEN(x) (((x) & 0x7F) << 0)
1102#define USE_TX1_PIN_SYMBOL_ATTEN (1 << 3)
1103#define USE_CTRL_IN_FOR_SYMBOL_ATTEN (1 << 1)
1104#define ENABLE_SYMBOL_ATTEN (1 << 0)
1109#define FORCE_OUT_2_TX2_OFFSET (1 << 7)
1110#define FORCE_OUT_2_TX1_OFFSET (1 << 6)
1111#define FORCE_OUT_2_TX2_PHASE_GAIN (1 << 5)
1112#define FORCE_OUT_2_TX1_PHASE_GAIN (1 << 4)
1113#define FORCE_OUT_1_TX2_OFFSET (1 << 3)
1114#define FORCE_OUT_1_TX1_OFFSET (1 << 2)
1115#define FORCE_OUT_1_TX2_PHASE_GAIN (1 << 1)
1116#define FORCE_OUT_1_TX1_PHASE_GAIN (1 << 0)
1121#define RX_NCO_FREQ(x) (((x) & 0x3) << 5)
1122#define RX_NCO_PHASE_OFFSET(x) (((x) & 0x1F) << 0)
1127#define FREE_RUN_ENABLE (1 << 7)
1128#define SETTLE_MAIN_ENABLE (1 << 6)
1129#define DC_OFFSET_ENABLE (1 << 5)
1130#define GAIN_ENABLE (1 << 4)
1131#define PHASE_ENABLE (1 << 3)
1132#define QUAD_CAL_SOFT_RESET (1 << 2)
1133#define M_DECIM(x) (((x) & 0x3) << 0)
1138#define KEXP_TX(x) (((x) & 0x3) << 6)
1139#define KEXP_TX_COMP(x) (((x) & 0x3) << 4)
1140#define KEXP_DC_I(x) (((x) & 0x3) << 2)
1141#define KEXP_DC_Q(x) (((x) & 0x3) << 0)
1146#define INVERT_I_DATA (1 << 5)
1147#define INVERT_Q_DATA (1 << 4)
1148#define TX_NCO_FREQ(x) (((x) & 0x3) << 6)
1149#define KEXP_PHASE(x) (((x) & 0x3) << 2)
1150#define KEXP_AMP(x) (((x) & 0x3) << 0)
1155#define TX1_LO_CONV (1 << 1)
1156#define TX1_SSB_CONV (1 << 0)
1157#define TX1_CONVERGENCE_COUNT(x) (((x) & 0x3F) << 2)
1162#define TX2_LO_CONV (1 << 1)
1163#define TX2_SSB_CONV (1 << 0)
1164#define TX2_CONVERGENCE_COUNT(x) (((x) & 0x3F) << 2)
1169#define RX_FULL_TABLELMT_TABLE_GAIN(x) (((x) & 0x7F) << 0)
1174#define GM_STAGE_TIME_CON_OVERRIDE (1 << 5)
1175#define GM_STAGE_MV_HP_POLE (1 << 4)
1176#define GM_STAGE_LOWER_CM (1 << 3)
1177#define BYPASS_BIAS_R (1 << 0)
1178#define VBIAS_CTRL(x) (((x) & 0x3) << 1)
1183#define THRESH_ACCUMULATOR(x) (((x) & 0xF) << 0)
1188#define RX_LPF_GAIN(x) (((x) & 0x1F) << 0)
1193#define TXDAC_VDS_I(x) (((x) & 0x3F) << 0)
1198#define TXDAC_VDS_Q(x) (((x) & 0x3F) << 0)
1203#define TXDAC_GN_I(x) (((x) & 0x3F) << 0)
1208#define TXDAC_GN_Q(x) (((x) & 0x3F) << 0)
1213#define OPAMPA_OUTPUT_BIAS(x) (((x) & 0x3) << 5)
1214#define OPAMPA_RZ(x) (((x) & 0x3) << 3)
1215#define OPAMP_A_CC(x) (((x) & 0x7) << 0)
1220#define OPAMPB_OUTPUT_BIAS(x) (((x) & 0x3) << 5)
1221#define OPAMPB_RZ(x) (((x) & 0x3) << 3)
1222#define OPAMP_B_CC(x) (((x) & 0x7) << 0)
1227#define OVERRIDE_ENABLE (1 << 7)
1228#define R1(x) (((x) & 0x1F) << 0)
1233#define R2(x) (((x) & 0x1F) << 0)
1238#define R3(x) (((x) & 0x1F) << 0)
1243#define R4(x) (((x) & 0x1F) << 0)
1248#define RP(x) (((x) & 0x1F) << 0)
1253#define C1(x) (((x) & 0x3F) << 0)
1258#define C2(x) (((x) & 0x3F) << 0)
1263#define CP(x) (((x) & 0x3F) << 0)
1268#define PD_TUNE (1 << 2)
1269#define TUNER_RESAMPLE (1 << 1)
1270#define TUNER_RESAMPLE_PHASE (1 << 0)
1271#define TUNE_CTRL(x) (((x) & 0x3) << 5)
1276#define TX_BBF_BYPASS_BIAS_R (1 << 7)
1277#define R2B_OVR (1 << 5)
1278#define R2B(x) (((x) & 0x1F) << 0)
1283#define BBF1_COMP_I (1 << 3)
1284#define BBF1_COMP_Q (1 << 2)
1285#define BBF2_COMP_I (1 << 1)
1286#define BBF2_COMP_Q (1 << 0)
1291#define BIAS(x) (((x) & 0x3) << 6)
1292#define RGM(x) (((x) & 0x3) << 4)
1293#define CC(x) (((x) & 0x3) << 2)
1294#define AMPBIAS(x) (((x) & 0x3) << 0)
1299#define RESISTOR(x) (((x) & 0xF) << 0)
1304#define CAPACITOR(x) (((x) & 0x3F) << 0)
1309#define LO_COMMON_MODE(x) (((x) & 0x3) << 5)
1314#define EVALTIME (1 << 4)
1315#define TX_BBF_TUNE_DIVIDER (1 << 0)
1316#define TUNE_COMP_MASK(x) (((x) & 0x3) << 5)
1317#define TUNER_MODE(x) (((x) & 0x7) << 1)
1322#define WRITE_RX (1 << 2)
1323#define START_RX_CLOCK (1 << 1)
1324#define NUMBER_OF_TAPS(x) (((x) & 0x7) << 5)
1325#define SELECT_RX_CH(x) (((x) & 0x3) << 3)
1330#define FILTER_GAIN(x) (((x) & 0x3) << 0)
1335#define DEC_PWR_FOR_LOW_PWR (1 << 7)
1336#define DEC_PWR_FOR_LOCK_LEVEL (1 << 6)
1337#define DEC_PWR_FOR_GAIN_LOCK_EXIT (1 << 5)
1338#define SLOW_ATTACK_HYBRID_MODE (1 << 4)
1339#define RX2_GAIN_CTRL_SETUP(x) (((x) & 0x3) << 2)
1340#define RX1_GAIN_CTRL_SETUP(x) (((x) & 0x3) << 0)
1341#define RX_GAIN_CTL_MASK 0x03
1342#define RX2_GAIN_CTRL_SHIFT 2
1343#define RX1_GAIN_CTRL_SHIFT 0
1344#define RX_GAIN_CTL_MGC 0x00
1345#define RX_GAIN_CTL_AGC_FAST_ATK 0x01
1346#define RX_GAIN_CTL_AGC_SLOW_ATK 0x02
1347#define RX_GAIN_CTL_AGC_SLOW_ATK_HYBD 0x03
1352#define AGC_SOFT_RESET (1 << 7)
1353#define AGC_GAIN_UNLOCK_CTRL (1 << 6)
1354#define AGC_USE_FULL_GAIN_TABLE (1 << 3)
1355#define DIG_GAIN_EN (1 << 2)
1356#define MAN_GAIN_CTRL_RX2 (1 << 1)
1357#define MAN_GAIN_CTRL_RX1 (1 << 0)
1362#define INCDEC_LMT_GAIN (1 << 4)
1363#define USE_AGC_FOR_LMTLPF_GAIN (1 << 3)
1364#define MANUAL_INCR_STEP_SIZE(x) (((x) & 0x7) << 5)
1365#define ADC_OVERRANGE_SAMPLE_SIZE(x) (((x) & 0x7) << 0)
1370#define MAXIMUM_FULL_TABLELMT_TABLE_INDEX(x) (((x) & 0x7F) << 0)
1375#define MANUAL_CTRL_IN_DECR_GAIN_STP_SIZE(x) (((x) & 0x7) << 5)
1376#define PEAK_OVERLOAD_WAIT_TIME(x) (((x) & 0x1F) << 0)
1381#define DIG_GAIN_STP_SIZE(x) (((x) & 0x7) << 5)
1382#define MAXIMUM_DIGITAL_GAIN(x) (((x) & 0x1F) << 0)
1387#define ENABLE_DIG_SAT_OVRG (1 << 7)
1388#define AGC_LOCK_LEVEL_FAST_AGC_INNER_HIGH_THRESH_SLOW(x) (((x) & 0x7F) << 0)
1393#define LMT_DETECTOR_SETTLING_TIME(x) (((x) & 0x7) << 5)
1394#define DEC_STP_SIZE_FOR_LARGE_LMT_OVERLOAD(x) (((x) & 0x7) << 2)
1395#define ADC_NOISE_CORRECTION_FACTOR(x) (((x) & 0x3) << 0)
1400#define DECREMENT_STP_SIZE_FOR_SMALL_LPF_GAIN_CHANGE(x) (((x) & 0x7) << 4)
1401#define LARGE_LPF_GAIN_STEP(x) (((x) & 0xF) << 0)
1406#define FORCE_PD_RESET_RX2 (1 << 7)
1407#define FORCE_PD_RESET_RX1 (1 << 6)
1408#define SMALL_LMT_OVERLOAD_THRESH(x) (((x) & 0x3F) << 0)
1413#define LARGE_LMT_OVERLOAD_THRESH(x) (((x) & 0x3F) << 0)
1418#define POWER_MEAS_IN_STATE_5_MSB (1 << 7)
1419#define RX1_MANUAL_FULL_TABLE_LMT_TABLE_GAIN_INDEX(x) (((x) & 0x7F) << 0)
1420#define RX_FULL_TBL_IDX_MASK RX1_MANUAL_FULL_TABLE_LMT_TABLE_GAIN_INDEX(~0)
1425#define POWER_MEAS_IN_STATE_5(x) (((x) & 0x7) << 5)
1426#define RX1_MANUAL_LPF_GAIN(x) (((x) & 0x1F) << 0)
1427#define RX_LPF_IDX_MASK RX1_MANUAL_LPF_GAIN(~0)
1432#define FORCE_RX1_DIGITAL_GAIN (1 << 5)
1433#define RX1_MANUALFORCED_DIGITAL_GAIN(x) (((x) & 0x1F) << 0)
1434#define RX_DIGITAL_IDX_MASK RX1_MANUALFORCED_DIGITAL_GAIN(~0)
1438#define RX2_MANUAL_FULL_TABLE_LMT_TABLE_GAIN_INDEX(x) (((x) & 0x7F) << 0)
1443#define RX2_MANUAL_LPF_GAIN(x) (((x) & 0x1F) << 0)
1448#define FORCE_RX2_DIGITAL_GAIN (1 << 5)
1449#define RX2_MANUALFORCED_DIGITAL_GAIN(x) (((x) & 0x1F) << 0)
1454#define ENABLE_GAIN_INC_AFTER_GAIN_LOCK (1 << 7)
1455#define GOTO_OPT_GAIN_IF_ENERGY_LOST_OR_EN_AGC_HIGH (1 << 6)
1456#define GOTO_SET_GAIN_IF_EN_AGC_HIGH (1 << 5)
1457#define GOTO_SET_GAIN_IF_EXIT_RX_STATE (1 << 4)
1458#define DONT_UNLOCK_GAIN_IF_ENERGY_LOST (1 << 3)
1459#define GOTO_OPTIMIZED_GAIN_IF_EXIT_RX_STATE (1 << 2)
1460#define DONT_UNLOCK_GAIN_IF_LG_ADC_OR_LMT_OVRG (1 << 1)
1461#define ENABLE_INCR_GAIN (1 << 0)
1466#define USE_LAST_LOCK_LEVEL_FOR_SET_GAIN (1 << 7)
1467#define ENABLE_LMT_GAIN_INC_FOR_LOCK_LEVEL (1 << 6)
1468#define GOTO_MAX_GAIN_OR_OPT_GAIN_IF_EN_AGC_HIGH (1 << 5)
1469#define SETTLING_DELAY(x) (((x) & 0x1F) << 0)
1474#define POST_LOCK_LEVEL_STP_SIZE_FOR_LPF_TABLE_FULL_TABLE(x) (((x) & 0x3) << 6)
1475#define ENERGY_LOST_THRESH(x) (((x) & 0x3F) << 0)
1480#define POST_LOCK_LEVEL_STP_FOR_LMT_TABLE(x) (((x) & 0x3) << 6)
1481#define STRONGER_SIGNAL_THRESH(x) (((x) & 0x3F) << 0)
1486#define DONT_UNLOCK_GAIN_IF_ADC_OVRG (1 << 7)
1487#define LOW_POWER_THRESH(x) (((x) & 0x7F) << 0)
1492#define DONT_UNLOCK_GAIN_IF_STRONGER_SIGNAL (1 << 7)
1497#define FINAL_OVER_RANGE_COUNT(x) (((x) & 0x7) << 5)
1498#define OPTIMIZE_GAIN_OFFSET(x) (((x) & 0xF) << 0)
1503#define INCREMENT_GAIN_STP_LPFLMT(x) (((x) & 0x7) << 5)
1504#define ENERGY_DETECT_COUNT(x) (((x) & 0x1F) << 0)
1509#define AGCLL_MAX_INCREASE(x) (((x) & 0x3F) << 0)
1514#define GAIN_LOCK_EXIT_COUNT(x) (((x) & 0x3F) << 0)
1519#define INITIAL_LMT_GAIN_LIMIT(x) (((x) & 0x7F) << 0)
1524#define PREVENT_GAIN_INC (1 << 7)
1525#define AGC_INNER_LOW_THRESH(x) (((x) & 0x7F) << 0)
1530#define LARGE_LMT_OVERLOAD_EXED_COUNTER(x) (((x) & 0xF) << 4)
1531#define SMALL_LMT_OVERLOAD_EXED_COUNTER(x) (((x) & 0xF) << 0)
1536#define LARGE_ADC_OVERLOAD_EXED_COUNTER(x) (((x) & 0xF) << 4)
1537#define SMALL_ADC_OVERLOAD_EXED_COUNTER(x) (((x) & 0xF) << 0)
1542#define IMMED_GAIN_CHANGE_IF_LG_LMT_OVERLOAD (1 << 7)
1543#define IMMED_GAIN_CHANGE_IF_LG_ADC_OVERLOAD (1 << 3)
1544#define AGC_INNER_HIGH_THRESH_EXED_STP_SIZE(x) (((x) & 0x7) << 4)
1545#define AGC_INNER_LOW_THRESH_EXED_STP_SIZE(x) (((x) & 0x7) << 0)
1550#define DOUBLE_GAIN_COUNTER (1 << 5)
1551#define ENABLE_SYNC_FOR_GAIN_COUNTER (1 << 4)
1552#define DIG_SATURATION_EXED_COUNTER(x) (((x) & 0xF) << 0)
1557#define AGC_OUTER_HIGH_THRESH(x) (((x) & 0xF) << 4)
1558#define AGC_OUTER_LOW_THRESH(x) (((x) & 0xF) << 0)
1563#define AGC_OUTER_HIGH_THRESH_EXED_STP_SIZE(x) (((x) & 0xF) << 4)
1564#define AGC_OUTER_LOW_THRESH_EXED_STP_SIZE(x) (((x) & 0xF) << 0)
1569#define EXT_LNA_HIGH_GAIN(x) (((x) & 0x3F) << 0)
1574#define EXT_LNA_LOW_GAIN(x) (((x) & 0x3F) << 0)
1579#define GAIN_TABLE_ADDRESS(x) (((x) & 0x7F) << 0)
1584#define EXT_LNA_CTRL (1 << 7)
1585#define LNA_GAIN(x) (((x) & 0x3) << 5)
1586#define MIXER_GM_GAIN(x) (((x) & 0x1F) << 0)
1591#define TIA_GAIN (1 << 5)
1592#define LPF_GAIN(x) (((x) & 0x1F) << 0)
1597#define RF_DC_CAL (1 << 5)
1598#define DIGITAL_GAIN(x) (((x) & 0x1F) << 0)
1603#define TO_LNA_GAIN(x) (((x) >> 5) & 0x3)
1604#define TO_MIXER_GM_GAIN(x) (((x) >> 0) & 0x1F)
1609#define TO_LPF_GAIN(x) (((x) >> 0) & 0x1F)
1614#define TO_DIGITAL_GAIN(x) (((x) >> 0) & 0x1F)
1619#define WRITE_GAIN_TABLE (1 << 2)
1620#define START_GAIN_TABLE_CLOCK (1 << 1)
1621#define RECEIVER_SELECT(x) (((x) & 0x3) << 3)
1629#define GM_SUB_TABLE_GAIN_WRITE(x) (((x) & 0x7F) << 0)
1634#define GM_SUB_TABLE_BIAS_WRITE(x) (((x) & 0x1F) << 0)
1639#define GM_SUB_TABLE_CTRL_WRITE(x) (((x) & 0x3F) << 0)
1644#define GM_SUB_TABLE_GAIN_READ(x) (((x) & 0x7F) << 0)
1649#define GM_SUB_TABLE_BIAS_READ(x) (((x) & 0x1F) << 0)
1654#define GM_SUB_TABLE_CTRL_READ(x) (((x) & 0x3F) << 0)
1659#define WRITE_GM_SUB_TABLE (1 << 2)
1660#define START_GM_SUB_TABLE_CLOCK (1 << 1)
1665#define CALIB_TABLE_GAIN_DIFFERROR_WORD(x) (((x) & 0x3F) << 0)
1670#define CALIB_TABLE_GAIN_ERROR(x) (((x) & 0x1F) << 0)
1675#define READ_SELECT (1 << 4)
1676#define WRITE_MIXER_ERROR_TABLE (1 << 3)
1677#define WRITE_LNA_ERROR_TABLE (1 << 2)
1678#define WRITE_LNA_GAIN_DIFF (1 << 1)
1679#define START_CALIB_TABLE_CLOCK (1 << 0)
1680#define CALIB_TABLE_SELECT(x) (((x) & 0x3) << 5)
1685#define LNA_CALIB_TABLE_GAIN_DIFFERENCE_WORD(x) (((x) & 0x3F) << 0)
1690#define MAX_MIXER_CALIBRATION_GAIN_INDEX(x) (((x) & 0x1F) << 0)
1695#define ENABLE_DIG_GAIN_CORR (1 << 7)
1696#define FORCE_TEMP_SENSOR_FOR_CAL (1 << 6)
1697#define SETTLE_TIME(x) (((x) & 0x3F) << 0)
1702#define GAIN_CAL_MEAS_DURATION(x) (((x) & 0xF) << 0)
1707#define MEASUREMENT_DURATION_1(x) (((x) & 0xF) << 4)
1708#define MEASUREMENT_DURATION_0(x) (((x) & 0xF) << 0)
1713#define MEASUREMENT_DURATION_3(x) (((x) & 0xF) << 4)
1714#define MEASUREMENT_DURATION_2(x) (((x) & 0xF) << 0)
1719#define START_RSSI_MEAS (1 << 5)
1720#define ENABLE_ADC_POWER_MEAS (1 << 1)
1721#define DEFAULT_RSSI_MEAS_MODE (1 << 0)
1722#define RFIR_FOR_RSSI_MEASUREMENT(x) (((x) & 0x3) << 6)
1723#define RSSI_MODE_SELECT(x) (((x) & 0x7) << 2)
1728#define ADC_POWER_MEASUREMENT_DURATION_1(x) (((x) & 0xF) << 4)
1729#define ADC_POWER_MEASUREMENT_DURATION_0(x) (((x) & 0xF) << 0)
1734#define USE_HB3_OUT_FOR_ADC_PWR_MEAS (1 << 7)
1735#define USE_HB1_OUT_FOR_DEC_PWR_MEAS (1 << 6)
1736#define ENABLE_DEC_PWR_MEAS (1 << 5)
1737#define DEFAULT_MODE_ADC_POWER (1 << 4)
1738#define DEC_POWER_MEASUREMENT_DURATION(x) (((x) & 0xF) << 0)
1743#define DB_GAIN_READBACK_CHANNEL (1 << 0)
1744#define MAX_LNA_GAIN(x) (((x) & 0x7F) << 1)
1749#define RX_QUAD_CAL_LEVEL(x) (((x) & 0xF) << 0)
1754#define ENABLE_PHASE_CORR (1 << 7)
1755#define ENABLE_GAIN_CORR (1 << 6)
1756#define USE_SETTLE_COUNT_FOR_DC_CAL_WAIT (1 << 5)
1757#define FIXED_DC_CAL_WAIT_TIME (1 << 4)
1758#define FREE_RUN_MODE (1 << 3)
1759#define ENABLE_CORR_WORD_DECIMATION (1 << 2)
1760#define ENABLE_TRACKING_MODE_CH2 (1 << 1)
1761#define ENABLE_TRACKING_MODE_CH1 (1 << 0)
1766#define SOFT_RESET (1 << 7)
1767#define CALIBRATION_CONFIG2_DFLT (0x3 << 5)
1768#define K_EXP_PHASE(x) (((x) & 0x1F) << 0)
1773#define PREVENT_POS_LOOP_GAIN (1 << 7)
1774#define K_EXP_AMPLITUDE(x) (((x) & 0x1F) << 0)
1779#define RX_FULL_TABLELMT_TABLE_GAIN(x) (((x) & 0x7F) << 0)
1784#define CORRECTION_WORD_DECIMATION_M(x) (((x) & 0x7) << 5)
1785#define RX_LPF_GAIN(x) (((x) & 0x1F) << 0)
1790#define RX1_INPUT_A_I_DC_OFFSET_LSB(x) (((x) & 0x3F) << 2)
1791#define RX1_INPUT_A_Q_DC_OFFSET(x) (((x) & 0x3) << 0)
1796#define RX2_INPUT_A_Q_DC_OFFSET_LSB(x) (((x) & 0xF) << 4)
1797#define RX1_INPUT_A_I_DC_OFFSET_MSB(x) (((x) & 0xF) << 0)
1802#define RX2_INPUT_A_I_DC_OFFSET(x) (((x) & 0x3) << 6)
1803#define RX2_INPUT_A_Q_DC_OFFSET_MSB(x) (((x) & 0x3F) << 0)
1808#define RX1_INPUT_BC_I_DC_OFFSET_LSB(x) (((x) & 0x3F) << 2)
1809#define RX1_INPUT_BC_Q_DC_OFFSET(x) (((x) & 0x3) << 0)
1814#define RX2_INPUT_BC_Q_DC_OFFSET_LSB(x) (((x) & 0xF) << 4)
1815#define RX1_INPUT_BC_I_DC_OFFSET_MSB(x) (((x) & 0xF) << 0)
1820#define RX2_INPUT_BC_I_DC_OFFSET(x) (((x) & 0x3) << 6)
1821#define RX2_INPUT_BC_Q_DC_OFFSET_MSB(x) (((x) & 0x3F) << 0)
1826#define RX2_INPUT_BC_FORCE_OFFSET (1 << 7)
1827#define RX1_INPUT_BC_FORCE_OFFSET (1 << 6)
1828#define RX2_INPUT_BC_FORCE_PHGAIN (1 << 5)
1829#define RX1_INPUT_BC_FORCE_PHGAIN (1 << 4)
1830#define RX2_INPUT_A_FORCE_OFFSET (1 << 3)
1831#define RX1_INPUT_A_FORCE_OFFSET (1 << 2)
1832#define RX2_INPUT_A_FORCE_PHGAIN (1 << 1)
1833#define RX1_INPUT_A_FORCE_PHGAIN (1 << 0)
1838#define DAC_FS(x) (((x) & 0x3) << 4)
1839#define RF_DC_CALIBRATION_COUNT(x) (((x) & 0xF) << 0)
1844#define RF_DC_OFFSET_TABLE_UPDATE_COUNT(x) (((x) & 0x7) << 5)
1845#define RF_DC_OFFSET_ATTEN(x) (((x) & 0x1F) << 0)
1850#define INVERT_RX2_RF_DC_CGIN_WORD (1 << 7)
1851#define INVERT_RX1_RF_DC_CGIN_WORD (1 << 6)
1852#define INVERT_RX2_RF_DC_CGOUT_WORD (1 << 5)
1853#define INVERT_RX1_RF_DC_CGOUT_WORD (1 << 4)
1858#define USE_WAIT_COUNTER_FOR_RF_DC_INIT_CAL (1 << 7)
1859#define ENABLE_FAST_SETTLE_MODE (1 << 6)
1860#define ENABLE_BB_DC_OFFSET_TRACKING (1 << 5)
1861#define RESET_ACC_ON_GAIN_CHANGE (1 << 4)
1862#define ENABLE_RF_OFFSET_TRACKING (1 << 3)
1863#define DC_OFFSET_UPDATE(x) (((x) & 0x7) << 0)
1868#define RF_MINIMUM_CALIBRATION_GAIN_INDEX(x) (((x) & 0x7F) << 0)
1873#define RF_SOI_THRESH(x) (((x) & 0x7F) << 0)
1878#define INCREASE_COUNT_DURATION (1 << 7)
1879#define BB_TRACKING_DECIMATE(x) (((x) & 0x3) << 5)
1880#define BB_DC_M_SHIFT(x) (((x) & 0x1F) << 0)
1885#define READ_BACK_CH_SEL (1 << 7)
1886#define UPDATE_TRACKING_WORD (1 << 6)
1887#define FORCE_RX_NULL (1 << 5)
1888#define BB_DC_TRACKING_FAST_SETTLE_M_SHIFT(x) (((x) & 0x1F) << 0)
1893#define BB_DC_OFFSET_ATTEN(x) (((x) & 0xF) << 0)
1898#define RX1_BB_DC_OFFSET_CORRECTION_WORD_I(x) (((x) & 0x7F) << 0)
1903#define RX1_BB_DC_OFFSET_CORRECTION_WORD_Q(x) (((x) & 0x7F) << 0)
1908#define RX2_BB_DC_OFFSET_CORRECTION_WORD_I(x) (((x) & 0x7F) << 0)
1913#define RX2_BB_DC_OFFSET_CORRECTION_WORD_Q(x) (((x) & 0x7F) << 0)
1918#define RX1RX2_BB_DC_OFFSET_TRACKING_CORRECTION_WORD_I(x) (((x) & 0x7F) << 0)
1923#define RX1RX2_BB_DC_OFFSET_TRACKING_CORRECTION_WORD_Q(x) (((x) & 0x7F) << 0)
1928#define RX2_RSSI_SYMBOL (1 << 1)
1929#define RX1_RSSI_SYMBOL (1 << 0)
1934#define RX2_RSSI_PREAMBLE (1 << 1)
1935#define RX1_RSSI_PREAMBLE (1 << 0)
1941#define RSSI_LSB_SHIFT 1
1942#define RSSI_LSB_MASK1 0x01
1943#define RSSI_LSB_MASK2 0x02
1948#define RX_PATH_GAIN (1 << 0)
1953#define FORCE_RX2_LNA_GAIN (1 << 7)
1954#define RX2_LNA_BYPASS (1 << 6)
1955#define FORCE_RX1_LNA_GAIN (1 << 3)
1956#define RX1_LNA_BYPASS (1 << 2)
1957#define RX2_LNA_GAIN(x) (((x) & 0x3) << 4)
1958#define RX1_LNA_GAIN(x) (((x) & 0x3) << 0)
1963#define RX_LNA_BIAS_COARSE(x) (((x) & 0xF) << 0)
1968#define RX_LNA_PCASCODE_BIAS(x) (((x) & 0x7) << 5)
1969#define RX_LNA_BIAS(x) (((x) & 0x1F) << 0)
1974#define RX_LNA_P_CASCODE_BIAS_FINE(x) (((x) & 0x3) << 0)
1979#define RX_MIX_GM_CM_OUT(x) (((x) & 0x7) << 5)
1980#define RX_MIX_GM_PLOAD(x) (((x) & 0x3) << 0)
1985#define FORCE_RX1_MIX_GM (1 << 6)
1986#define RX1_MIX_GM_GAIN(x) (((x) & 0x3F) << 0)
1991#define RX1_MIX_GM_BIAS(x) (((x) & 0x1F) << 0)
1996#define FORCE_RX2_MIX_GM (1 << 6)
1997#define RX2_MIX_GM_GAIN(x) (((x) & 0x3F) << 0)
2002#define RX2_MIX_GM_BIAS(x) (((x) & 0x1F) << 0)
2007#define INPUT_A_RX1_Q(x) (((x) & 0x3) << 6)
2008#define INPUT_A_RX1_I(x) (((x) & 0x3) << 4)
2009#define INPUT_A_RX2_I(x) (((x) & 0x3) << 2)
2010#define INPUT_A_RX2_Q(x) (((x) & 0x3) << 0)
2015#define INPUTS_BC_RX1_Q(x) (((x) & 0x3) << 6)
2016#define INPUTS_BC_RX1_I(x) (((x) & 0x3) << 4)
2017#define INPUTS_BC_RX2_I(x) (((x) & 0x3) << 2)
2018#define INPUTS_BC_RX2_Q(x) (((x) & 0x3) << 0)
2023#define FORCE_CGIN_DAC (1 << 2)
2028#define RX_MIX_LO_CM(x) (((x) & 0x3F) << 0)
2033#define RX_CGB_SEG_ENABLE(x) (((x) & 0x3F) << 0)
2038#define RX_CGB_INPUT_CM_SEL(x) (((x) & 0x3) << 4)
2039#define RX_CGB_BIAS(x) (((x) & 0xF) << 0)
2044#define TIA2_OVERRIDE_C (1 << 3)
2045#define TIA2_OVERRIDE_R (1 << 2)
2046#define TIA1_OVERRIDE_C (1 << 1)
2047#define TIA1_OVERRIDE_R (1 << 0)
2048#define TIA_SEL_CC(x) (((x) & 0x7) << 5)
2053#define TIA1_RF(x) (((x) & 0x3) << 6)
2054#define TIA1_C_LSB(x) (((x) & 0x3F) << 0)
2059#define TIA1_C_MSB(x) (((x) & 0x7F) << 0)
2064#define TIA2_RF(x) (((x) & 0x3) << 6)
2065#define TIA2_C_LSB(x) (((x) & 0x3F) << 0)
2070#define TIA2_C_MSB(x) (((x) & 0x7F) << 0)
2075#define FORCE_RX1_RESISTORS (1 << 7)
2076#define RX1_BBF_R1A(x) (((x) & 0x3F) << 0)
2081#define FORCE_RX2_RESISTORS (1 << 7)
2082#define RX2_BBF_R1A(x) (((x) & 0x3F) << 0)
2087#define RX1_TUNE_RESAMPLE_PHASE (1 << 2)
2088#define RX1_TUNE_RESAMPLE (1 << 1)
2089#define RX1_PD_TUNE (1 << 0)
2094#define RX2_TUNE_RESAMPLE_PHASE (1 << 2)
2095#define RX2_TUNE_RESAMPLE (1 << 1)
2096#define RX2_PD_TUNE (1 << 0)
2101#define TUNE_OVERRIDE (1 << 7)
2102#define RX_BBF_R2346(x) (((x) & 0x7) << 0)
2107#define RX_BBF_C1_MSB(x) (((x) & 0x3F) << 0)
2112#define RX_BBF_C1_LSB(x) (((x) & 0x7F) << 0)
2117#define RX_BBF_C2_MSB(x) (((x) & 0x3F) << 0)
2122#define RX_BBF_C2_LSB(x) (((x) & 0x7F) << 0)
2127#define RX_BBF_C3_MSB(x) (((x) & 0x3F) << 0)
2132#define RX_BBF_C3_LSB(x) (((x) & 0x7F) << 0)
2137#define RX_BBF_CC1_CTR(x) (((x) & 0x7F) << 0)
2142#define MUST_BE_ZERO (1 << 7)
2143#define RX1_BBF_POW_CTR(x) (((x) & 0x3) << 5)
2144#define RX_BBF_RZ1_CTR(x) (((x) & 0x3) << 3)
2149#define RX_BBF_CC2_CTR(x) (((x) & 0x7F) << 0)
2154#define RX_BBF_POW3_CTR(x) (((x) & 0x3) << 6)
2155#define RX_BBF_RZ3_CTR(x) (((x) & 0x3) << 4)
2156#define RX_BBF_POW2_CTR(x) (((x) & 0x3) << 2)
2157#define RX_BBF_RZ2_CTR(x) (((x) & 0x3) << 0)
2162#define RX_BBF_CC3_CTR(x) (((x) & 0x7F) << 0)
2167#define RXBBF_BYPASS_BIAS_R (1 << 7)
2168#define RX_BBF_R5_TUNE (1 << 4)
2169#define RX1_BBF_TUNE_COMP_I (1 << 3)
2170#define RX1_BBF_TUNE_COMP_Q (1 << 2)
2171#define RX2_BBF_TUNE_COMP_I (1 << 1)
2172#define RX2_BBF_TUNE_COMP_Q (1 << 0)
2173#define RX_BBF_TUNE_CTR(x) (((x) & 0x3) << 5)
2178#define RX1_BBF_FORCE_GAIN (1 << 5)
2179#define RX1_BBF_BQ_GAIN(x) (((x) & 0x3) << 3)
2180#define RX1_BBF_POLE_GAIN(x) (((x) & 0x7) << 0)
2185#define RX2_BBF_FORCE_GAIN (1 << 5)
2186#define RX2_BBF_BQ_GAIN(x) (((x) & 0x3) << 3)
2187#define RX2_BBF_POLE_GAIN(x) (((x) & 0x7) << 0)
2192#define RX_TUNE_EVALTIME (1 << 4)
2193#define RX_BBF_TUNE_DIVIDE (1 << 0)
2194#define TUNE_COMP_MASK(x) (((x) & 0x3) << 5)
2195#define RX_TUNE_MODE(x) (((x) & 0x7) << 1)
2200#define POLE_GAIN_TUNE(x) (((x) & 0x3) << 0)
2205#define RX_TUNE_BBBW_MHZ(x) (((x) & 0x1F) << 0)
2210#define RX_TUNE_BBBW_KHZ(x) (((x) & 0x7F) << 0)
2215#define BYPASS_LD_SYNTH (1 << 0)
2220#define SYNTH_INTEGER_WORD(x) (((x) & 0x7) << 0)
2225#define SYNTH_FRACT_WORD(x) (((x) & 0x7F) << 0)
2230#define VCO_CAL_OFFSET(x) (((x) & 0xF) << 3)
2235#define INIT_ALC_VALUE(x) (((x) & 0xF) << 4)
2236#define VCO_VARACTOR(x) (((x) & 0xF) << 0)
2241#define PORB_VCO_LOGIC (1 << 6)
2242#define VCO_OUTPUT_LEVEL(x) (((x) & 0xF) << 0)
2247#define CHARGE_PUMP_CURRENT(x) (((x) & 0x3F) << 0)
2252#define SYNTH_RECAL (1 << 7)
2257#define HALF_VCO_CAL_CLK (1 << 7)
2258#define CP_OFFSET_OFF (1 << 4)
2259#define F_CPCAL (1 << 3)
2260#define CP_CAL_ENABLE (1 << 2)
2265#define LOOP_FILTER_C2(x) (((x) & 0xF) << 4)
2266#define LOOP_FILTER_C1(x) (((x) & 0xF) << 0)
2271#define LOOP_FILTER_R1(x) (((x) & 0xF) << 4)
2272#define LOOP_FILTER_C3(x) (((x) & 0xF) << 0)
2277#define LOOP_FILTER_BYPASS_R3 (1 << 7)
2278#define LOOP_FILTER_BYPASS_R1 (1 << 6)
2279#define LOOP_FILTER_BYPASS_C2 (1 << 5)
2280#define LOOP_FILTER_BYPASS_C1 (1 << 4)
2281#define LOOP_FILTER_R3(x) (((x) & 0xF) << 0)
2286#define FORCED_CP_CAL_WORD(x) (((x) & 0xF) << 0)
2291#define VCO_BIAS_TCF(x) (((x) & 0x3) << 3)
2292#define VCO_BIAS_REF(x) (((x) & 0x7) << 0)
2297#define CP_CAL_VALID (1 << 7)
2298#define CP_CAL_DONE (1 << 5)
2299#define VCO_CAL_BUSY (1 << 4)
2300#define CP_CAL_WORD(x) (((x) & 0xF) << 0)
2305#define VCO_CAL_REF_TCF(x) (((x) & 0x7) << 0)
2310#define POWER_DOWN_VARACTOR_REF (1 << 3)
2311#define PWR_DOWN_VARACT_REF_TCF (1 << 2)
2312#define POWER_DOWN_CAL_TCF (1 << 1)
2313#define POWER_DOWN_VCO_BUFFFER (1 << 0)
2318#define CP_OVRG_HIGH (1 << 7)
2319#define CP_OVRG_LOW (1 << 6)
2320#define VCO_LOCK (1 << 1)
2325#define VCO_LDO_BYPASS (1 << 7)
2326#define VCO_LDO_INRUSH(x) (((x) & 0x3) << 5)
2327#define VCO_LDO_SEL(x) (((x) & 0x7) << 2)
2328#define VCO_LDO_VDROP_SEL(x) (((x) & 0x3) << 0)
2333#define VCO_CAL_EN (1 << 7)
2334#define VCO_CAL_ALC_WAIT(x) (((x) & 0x7) << 4)
2335#define VCO_CAL_COUNT(x) (((x) & 0x3) << 2)
2340#define LOCK_DETECT_COUNT(x) (((x) & 0x3) << 2)
2341#define LOCK_DETECT_MODE(x) (((x) & 0x3) << 0)
2346#define CP_LEVEL_DETECT_POWER_DOWN (1 << 6)
2347#define CP_LEVEL_THRESH_LOW(x) (((x) & 0x7) << 3)
2348#define CP_LEVEL_THRESH_HIGH(x) (((x) & 0x7) << 0)
2353#define DSM_PROG(x) (((x) & 0xF) << 0)
2358#define SIF_CLOCK (1 << 6)
2359#define SIF_RESET_BAR (1 << 5)
2360#define SIF_ADDR(x) (((x) & 0x1F) << 0)
2365#define UPDATE_FREQ_WORD (1 << 7)
2366#define READ_EFFECTIVE_TUNING_WORD (1 << 5)
2367#define FREQ_CORRECTION_WORD_MSB(x) (((x) & 0x1F) << 0)
2372#define UPDATE_FREQ_WORD (1 << 7)
2373#define FREQ_CORRECTION_WORD_LSB(x) (((x) & 0x7F) << 0)
2378#define VCO_VARACTOR_REFERENCE_TCF(x) (((x) & 0x7) << 4)
2379#define VCO_VARACTOR_OFFSET(x) (((x) & 0xF) << 0)
2384#define VCO_VARACTOR_REFERENCE(x) (((x) & 0xF) << 0)
2389#define RX_FAST_LOCK_LOAD_SYNTH (1 << 3)
2390#define RX_FAST_LOCK_PROFILE_INIT (1 << 2)
2391#define RX_FAST_LOCK_PROFILE_PIN_SELECT (1 << 1)
2392#define RX_FAST_LOCK_MODE_ENABLE (1 << 0)
2393#define RX_FAST_LOCK_PROFILE(x) (((x) & 0x7) << 5)
2398#define RX_FAST_LOCK_PROFILE_ADDR(x) (((x) & 0x7) << 4)
2399#define RX_FAST_LOCK_PROFILE_WORD(x) (((x) & 0xF) << 0)
2405#define RX_FAST_LOCK_PROGRAM_WRITE (1 << 1)
2406#define RX_FAST_LOCK_PROGRAM_CLOCK_ENABLE (1 << 0)
2408#define RX_FAST_LOCK_CONFIG_WORD_NUM 16
2413#define RX_LO_GEN_POWER_MODE(x) (((x) & 0x3) << 4)
2418#define DIV_TEST_EN (1 << 5)
2419#define PFD_CLK_EDGE (1 << 1)
2420#define BYPASS_LD_SYNTH (1 << 0)
2421#define PFD_WIDTH(x) (((x) & 0x3) << 2)
2426#define SDM_BYPASS (1 << 7)
2427#define SDM_POWER_DOWN (1 << 6)
2428#define SYNTH_INTEGER_WORD(x) (((x) & 0x7) << 0)
2433#define SYNTH_FRACT_WORD(x) (((x) & 0x7F) << 0)
2438#define FORCE_ALC_ENABLE (1 << 7)
2439#define FORCE_ALC_WORD(x) (((x) & 0x7F) << 0)
2444#define BYPASS_LOAD_DELAY (1 << 7)
2445#define FORCE_VCO_TUNE_ENABLE (1 << 1)
2446#define FORCE_VCO_TUNE (1 << 0)
2447#define VCO_CAL_OFFSET(x) (((x) & 0xF) << 3)
2452#define INIT_ALC_VALUE(x) (((x) & 0xF) << 4)
2453#define VCO_VARACTOR(x) (((x) & 0xF) << 0)
2458#define PORB_VCO_LOGIC (1 << 6)
2459#define VCO_OUTPUT_LEVEL(x) (((x) & 0xF) << 0)
2464#define TX_CP_CURRENT_DFLT (1 << 7)
2465#define VTUNE_FORCE (1 << 6)
2466#define CHARGE_PUMP_CURRENT(x) (((x) & 0x3F) << 0)
2471#define SYNTH_RECAL (1 << 7)
2472#define CHARGE_PUMP_OFFSET(x) (((x) & 0x3F) << 0)
2477#define HALF_VCO_CAL_CLK (1 << 7)
2478#define DITHER_MODE (1 << 6)
2479#define CP_OFFSET_OFF (1 << 4)
2480#define F_CPCAL (1 << 3)
2481#define CP_CAL_ENABLE (1 << 2)
2482#define CP_TEST(x) (((x) & 0x3) << 0)
2487#define LOOP_FILTER_C2(x) (((x) & 0xF) << 4)
2488#define LOOP_FILTER_C1(x) (((x) & 0xF) << 0)
2493#define LOOP_FILTER_R1(x) (((x) & 0xF) << 4)
2494#define LOOP_FILTER_C3(x) (((x) & 0xF) << 0)
2499#define LOOP_FILTER_BYPASS_R3 (1 << 7)
2500#define LOOP_FILTER_BYPASS_R1 (1 << 6)
2501#define LOOP_FILTER_BYPASS_C2 (1 << 5)
2502#define LOOP_FILTER_BYPASS_C1 (1 << 4)
2503#define LOOP_FILTER_R3(x) (((x) & 0xF) << 0)
2508#define NUMBER_SDM_DITHER_BITS(x) (((x) & 0xF) << 4)
2509#define FORCED_CP_CAL_WORD(x) (((x) & 0xF) << 0)
2514#define MUST_BE_ZEROS(x) (((x) & 0x3) << 5)
2515#define VCO_BIAS_TCF(x) (((x) & 0x3) << 3)
2516#define VCO_BIAS_REF(x) (((x) & 0x7) << 0)
2521#define VCO_BYPASS_BIAS_DAC_R (1 << 7)
2522#define VCO_COMP_BYPASS_BIAS_R (1 << 4)
2523#define BYPASS_PRESCALE_R (1 << 3)
2524#define LAST_ALC_ENABLE (1 << 2)
2525#define PRESCALE_BIAS(x) (((x) & 0x3) << 0)
2530#define CP_CAL_VALID (1 << 7)
2531#define COMP_OUT (1 << 6)
2532#define CP_CAL_DONE (1 << 5)
2533#define VCO_CAL_BUSY (1 << 4)
2534#define CP_CAL_WORD(x) (((x) & 0xF) << 0)
2539#define VCO_CAL_REF_MONITOR (1 << 3)
2540#define VCO_CAL_REF_TCF(x) (((x) & 0x7) << 0)
2545#define POWER_DOWN_VARACTOR_REF (1 << 3)
2546#define POWER_DOWN_VARACT_REF_TCF (1 << 2)
2547#define POWER_DOWN_CAL_TCF (1 << 1)
2548#define POWER_DOWN_VCO_BUFFFER (1 << 0)
2553#define CP_OVRG_HIGH (1 << 7)
2554#define CP_OVRG_LOW (1 << 6)
2555#define VCO_LOCK (1 << 1)
2560#define VCO_LDO_BYPASS (1 << 7)
2561#define VCO_LDO_INRUSH(x) (((x) & 0x3) << 5)
2562#define VCO_LDO_VOUT_SEL(x) (((x) & 0x7) << 2)
2563#define VCO_LDO_VDROP_SEL(x) (((x) & 0x3) << 0)
2568#define VCO_CAL_EN (1 << 7)
2569#define VCO_CAL_ALC_WAIT(x) (((x) & 0x7) << 4)
2570#define VCO_CAL_COUNT(x) (((x) & 0x3) << 2)
2571#define FB_CLOCK_ADV(x) (((x) & 0x3) << 0)
2576#define LOCK_DETECT_COUNT(x) (((x) & 0x3) << 2)
2577#define LOCK_DETECT_MODE(x) (((x) & 0x3) << 0)
2582#define CP_LEVEL_DETECT_POWER_DOWN (1 << 6)
2583#define CP_LEVEL_DETECT_THRESH_LOW(x) (((x) & 0x7) << 3)
2584#define CP_LEVEL_DETECT_THRESH_HIGH(x) (((x) & 0x7) << 0)
2589#define DSM_PROG(x) (((x) & 0xF) << 0)
2594#define SIF_CLOCK (1 << 6)
2595#define SIF_RESET_BAR (1 << 5)
2596#define SIF_ADDR(x) (((x) & 0x1F) << 0)
2601#define UPDATE_FREQ_WORD (1 << 7)
2602#define READ_EFFECTIVE_TUNING_WORD (1 << 5)
2603#define FREQ_CORRECTION_WORD_MSB(x) (((x) & 0x1F) << 0)
2608#define UPDATE_FREQ_WORD (1 << 7)
2609#define FREQ_CORRECTION_WORD_LSB(x) (((x) & 0x7F) << 0)
2614#define VCO_VARACTOR_REFERENCE_TCF(x) (((x) & 0x7) << 4)
2615#define VCO_VARACTOR_OFFSET(x) (((x) & 0xF) << 0)
2620#define VCO_VARACTOR_REFERENCE(x) (((x) & 0xF) << 0)
2625#define DCXO_TUNE_COARSE(x) (((x) & 0x3F) << 0)
2630#define DCXO_TUNE_FINE_LOW(x) (((x) & 0x1F) << 3)
2635#define DCXO_TUNE_FINE_HIGH(x) ((x) >> 5)
2640#define MUST_BE_ZERO (1 << 7)
2641#define DCXO_RTAIL(x) (((x) & 0x7) << 4)
2642#define DCXO_RD(x) (((x) & 0x3) << 2)
2647#define DCXO_TEMPCO_EN (1 << 7)
2648#define DCXO_TEMPCO_CLK (1 << 6)
2649#define DCXO_TEMPERATURE_COEF_ADDRESS(x) (((x) & 0x3F) << 0)
2654#define TX_FAST_LOCK_LOAD_SYNTH (1 << 3)
2655#define TX_FAST_LOCK_PROFILE_INIT (1 << 2)
2656#define TX_FAST_LOCK_PROFILE_PIN_SELECT (1 << 1)
2657#define TX_FAST_LOCK_MODE_ENABLE (1 << 0)
2658#define TX_FAST_LOCK_PROFILE(x) (((x) & 0x7) << 5)
2663#define TX_FAST_LOCK_PROGRAM_WRITE (1 << 1)
2664#define TX_FAST_LOCK_PROGRAM_CLOCK_ENABLE (1 << 0)
2669#define TX_LO_GEN_POWER_MODE(x) (((x) & 0xF) << 4)
2674#define POWER_DOWN_BANDGAP_REF (1 << 7)
2675#define MASTER_BIAS_FILTER_BYPASS (1 << 6)
2676#define MASTER_BIAS_REF_SEL (1 << 5)
2677#define MASTER_BIAS_TRIM(x) (((x) & 0x1F) << 0)
2682#define VCO_LDO_FILTER_BYPASS (1 << 7)
2683#define VCO_LDO_REF_SEL (1 << 6)
2684#define BANDGAP_REF_RESET (1 << 5)
2685#define BANDGAP_TEMP_TRIM(x) (((x) & 0x1F) << 0)
2690#define REF_DIVIDE_CONFIG_1_DFLT (1 << 2)
2691#define RX_REF_RESET_BAR (1 << 1)
2692#define RX_REF_DIVIDER_MSB (1 << 0)
2697#define RX_REF_DIVIDER_LSB (1 << 7)
2698#define TX_REF_RESET_BAR (1 << 4)
2699#define RX_REF_DOUBLER_FB_DELAY(x) (((x) & 0x3) << 5)
2700#define TX_REF_DIVIDER(x) (((x) & 0x3) << 2)
2701#define TX_REF_DOUBLER_FB_DELAY(x) (((x) & 0x3) << 0)
2706#define FULL_TABLE_GAIN_INDEX(x) (((x) & 0x7F) << 0)
2711#define LPF_GAIN_RX(x) (((x) & 0x1F) << 0)
2716#define DIGITAL_GAIN_RX(x) (((x) & 0x1F) << 0)
2721#define FAST_ATTACK_STATE_RX2(x) (((x) & 0x7) << 4)
2722#define FAST_ATTACK_STATE_RX1(x) (((x) & 0x7) << 0)
2723#define FAST_ATK_MASK 0x7
2724#define RX1_FAST_ATK_SHIFT 0
2725#define RX2_FAST_ATK_SHIFT 4
2726#define FAST_ATK_RESET 0
2727#define FAST_ATK_PEAK_DETECT 1
2728#define FAST_ATK_PWR_MEASURE 2
2729#define FAST_ATK_FINAL_SETTELING 3
2730#define FAST_ATK_FINAL_OVER 4
2731#define FAST_ATK_GAIN_LOCKED 5
2736#define SLOW_LOOP_STATE_RX2(x) (((x) & 0x7) << 4)
2737#define SLOW_LOOP_STATE_RX1(x) (((x) & 0x7) << 0)
2743#define GAIN_LOCK_1 (1 << 6)
2744#define LOW_POWER_1 (1 << 5)
2745#define LARGE_LMT_OL (1 << 4)
2746#define SMALL_LMT_OL (1 << 3)
2747#define LARGE_ADC_OL (1 << 2)
2748#define SMALL_ADC_OL (1 << 1)
2749#define DIG_SAT (1 << 0)
2753#define CTRL_ENABLE (1 << 0)
2758#define TONE_PRBS (1 << 1)
2759#define BIST_ENABLE (1 << 0)
2760#define TONE_FREQ(x) (((x) & 0x3) << 6)
2761#define TONE_LEVEL(x) (((x) & 0x3) << 4)
2762#define BIST_CTRL_POINT(x) (((x) & 0x3) << 2)
2767#define DATA_PORT_SP_HD_LOOP_TEST_OE (1 << 7)
2768#define RX_MASK (1 << 6)
2769#define CHANNEL (1 << 5)
2770#define DATA_PORT_LOOP_TEST_ENABLE (1 << 0)
2771#define OBSERVATION_POINT(x) (((x) & 0xF) << 1)
2776#define BIST_MASK_CHANNEL_2_Q_DATA (1 << 5)
2777#define BIST_MASK_CHANNEL_2_I_DATA (1 << 4)
2778#define BIST_MASK_CHANNEL_1_Q_DATA (1 << 3)
2779#define BIST_MASK_CHANNEL_1_I_DATA (1 << 2)
2780#define DATA_PORT_HILOW (1 << 1)
2781#define USE_DATA_PORT (1 << 0)
2782#define TEMP_SENSE_VBE_TEST(x) (((x) & 0x3) << 6)
2787#define DAC_TEST_ENABLE (1 << 7)
2788#define DAC_TEST_WORD(x) (((x) & 0x7F) << 0)
2793#define AD_READ (0 << 15)
2794#define AD_WRITE (1 << 15)
2795#define AD_CNT(x) ((((x) - 1) & 0x7) << 12)
2796#define AD_ADDR(x) ((x) & 0x3FF)
2803#define RSSI_MULTIPLIER 100
2804#define RSSI_RESOLUTION ((int) (0.25 * RSSI_MULTIPLIER))
2805#define RSSI_MAX_WEIGHT 255
2807#define MAX_LMT_INDEX 40
2808#define MAX_LPF_GAIN 24
2809#define MAX_DIG_GAIN 31
2811#define MAX_BBPLL_FREF 70007000UL
2812#define MIN_BBPLL_FREQ 714928500UL
2813#define MAX_BBPLL_FREQ 1430143000UL
2814#define MAX_BBPLL_DIV 64
2815#define MIN_BBPLL_DIV 2
2823#define MIN_ADC_CLK 25000000U
2825#define MAX_ADC_CLK 640000000U
2826#define MAX_DAC_CLK (MAX_ADC_CLK / 2)
2829#define MAX_RX_HB1 245760000UL
2830#define MAX_RX_HB2 320000000UL
2831#define MAX_RX_HB3 640000000UL
2833#define MAX_TX_HB1 160000000UL
2834#define MAX_TX_HB2 320000000UL
2835#define MAX_TX_HB3 320000000UL
2837#define MAX_BASEBAND_RATE 61440000UL
2839#define MAX_MBYTE_SPI 8
2841#define RFPLL_MODULUS 8388593UL
2842#define BBPLL_MODULUS 2088960UL
2844#define MAX_SYNTH_FREF 80008000UL
2845#define MIN_SYNTH_FREF 9999000UL
2846#define MIN_VCO_FREQ_HZ 6000000000ULL
2847#define MAX_CARRIER_FREQ_HZ 6000000000ULL
2848#define MIN_RX_CARRIER_FREQ_HZ 70000000ULL
2849#define MIN_TX_CARRIER_FREQ_HZ 46875001ULL
2851#define AD9363A_MAX_CARRIER_FREQ_HZ 3800000000ULL
2852#define AD9363A_MIN_CARRIER_FREQ_HZ 325000000ULL
2854#define MAX_TX_ATTENUATION_DB 89750
3301#define FASTLOOK_INIT 1
3347#ifndef AXI_ADC_NOT_PRESENT
3442 uint8_t *rbuf, uint32_t num);
3445 uint32_t reg, uint32_t *val);
3447 uint32_t reg, uint32_t val);
3449 uint32_t reg, uint32_t val);
3465 uint32_t rf_rx_bw, uint32_t rf_tx_bw);
3467 uint32_t tx_sample_rate,
3469 uint32_t *rx_path_clks,
3470 uint32_t *tx_path_clks);
3472 uint32_t *rx_path_clks,
3473 uint32_t *tx_path_clks);
3475 uint32_t *rx_path_clks,
3476 uint32_t *tx_path_clks);
3483 enum fir_dest dest, int32_t gain_dB,
3484 uint32_t ntaps,
short *coef);
3487 bool tx1,
bool tx2,
bool immed);
3490 uint32_t parent_rate);
3495 uint32_t parent_rate);
3497 uint32_t parent_rate);
3501 uint32_t parent_rate);
3503 uint32_t parent_rate);
3508 uint32_t parent_rate);
3517 bool rfdc_track,
bool rxquad_track);
3525 uint32_t level_dB, uint32_t mask);
3528 uint32_t *level_dB, uint32_t *mask);
3530 uint32_t rx_inputs, uint32_t txb);
3539 uint32_t
profile, uint8_t *values);
3541 uint32_t
profile, uint8_t *values);
3548int32_t
ad9361_find_opt(uint8_t *field, uint32_t size, uint32_t *ret_start);
3551 char *buf, int32_t buflen);
3562 uint32_t coarse, uint32_t fine);
@ CLKOUT_DISABLE
Definition ad5758.h:281
int32_t ad9361_fastlock_load(struct ad9361_rf_phy *phy, bool tx, uint32_t profile, uint8_t *values)
Definition ad9361.c:5002
ad9361_bist_mode
Definition ad9361.h:3322
@ BIST_DISABLE
Definition ad9361.h:3323
@ BIST_INJ_TX
Definition ad9361.h:3324
@ BIST_INJ_RX
Definition ad9361.h:3325
int32_t ad9361_rfpll_set_rate(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361.c:7111
ad9361_pdata_rx_freq
Definition ad9361.h:3127
@ R2_FREQ
Definition ad9361.h:3130
@ R1_FREQ
Definition ad9361.h:3131
@ RX_SAMPL_FREQ
Definition ad9361.h:3133
@ ADC_FREQ
Definition ad9361.h:3129
@ NUM_RX_CLOCKS
Definition ad9361.h:3134
@ CLKRF_FREQ
Definition ad9361.h:3132
@ BBPLL_FREQ
Definition ad9361.h:3128
void ad9361_get_bist_prbs(struct ad9361_rf_phy *phy, enum ad9361_bist_mode *mode)
Definition ad9361.c:1207
int32_t ad9361_tracking_control(struct ad9361_rf_phy *phy, bool bbdc_track, bool rfdc_track, bool rxquad_track)
Definition ad9361.c:3310
int32_t ad9361_read_rssi(struct ad9361_rf_phy *phy, struct rf_rssi *rssi)
Definition ad9361.c:2446
uint8_t ad9361_ensm_get_state(struct ad9361_rf_phy *phy)
Definition ad9361.c:1966
int32_t ad9361_reset(struct ad9361_rf_phy *phy)
Definition ad9361.c:1036
int32_t ad9361_set_tx_atten(struct ad9361_rf_phy *phy, uint32_t atten_mdb, bool tx1, bool tx2, bool immed)
Definition ad9361.c:1634
int32_t ad9361_rfpll_dummy_set_rate(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361.c:7012
uint64_t ad9361_from_clk(uint32_t freq)
Definition ad9361.c:1395
int32_t ad9361_rssi_gain_step_calib(struct ad9361_rf_phy *phy)
Definition ad9361.c:7472
uint32_t ad9361_rfpll_int_recalc_rate(struct refclk_scale *clk_priv, uint32_t parent_rate)
Definition ad9361.c:6795
int32_t ad9361_bbpll_round_rate(struct refclk_scale *clk_priv, uint32_t rate, uint32_t *prate)
Definition ad9361.c:6616
int32_t ad9361_read_clock_data_delays(struct ad9361_rf_phy *phy)
Definition ad9361.c:7644
int32_t ad9361_dig_tune(struct ad9361_rf_phy *phy, uint32_t max_freq, enum dig_tune_flags flags)
Definition ad9361_conv.c:512
int32_t ad9361_get_dig_tune_data(struct ad9361_rf_phy *phy, struct ad9361_dig_tune_data *data)
Definition ad9361.c:7674
int32_t ad9361_reg_read(struct ad9361_rf_phy *phy, uint32_t reg, uint32_t *val)
Definition ad9361.c:748
int32_t ad9361_bist_prbs(struct ad9361_rf_phy *phy, enum ad9361_bist_mode mode)
Definition ad9361.c:1177
int32_t ad9361_reg_write(struct ad9361_rf_phy *phy, uint32_t reg, uint32_t val)
Definition ad9361.c:837
int32_t ad9361_spi_readm(struct no_os_spi_desc *spi, uint32_t reg, uint8_t *rbuf, uint32_t num)
Definition ad9361.c:688
dig_tune_flags
Definition ad9361.h:3313
@ RESTORE_DEFAULT
Definition ad9361.h:3319
@ DO_ODELAY
Definition ad9361.h:3317
@ BE_VERBOSE
Definition ad9361.h:3314
@ SKIP_STORE_RESULT
Definition ad9361.h:3318
@ BE_MOREVERBOSE
Definition ad9361.h:3315
@ DO_IDELAY
Definition ad9361.h:3316
void ad9361_ensm_restore_state(struct ad9361_rf_phy *phy, uint8_t ensm_state)
Definition ad9361.c:2057
ad9361_pdata_tx_freq
Definition ad9361.h:3137
@ DAC_FREQ
Definition ad9361.h:3139
@ T1_FREQ
Definition ad9361.h:3141
@ IGNORE
Definition ad9361.h:3138
@ CLKTF_FREQ
Definition ad9361.h:3142
@ T2_FREQ
Definition ad9361.h:3140
@ TX_SAMPL_FREQ
Definition ad9361.h:3143
@ NUM_TX_CLOCKS
Definition ad9361.h:3144
int32_t ad9361_do_calib_run(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg)
Definition ad9361.c:5694
rf_gain_ctrl_mode
Definition ad9361.h:2896
@ RF_GAIN_MGC
Definition ad9361.h:2897
@ RF_GAIN_SLOWATTACK_AGC
Definition ad9361.h:2899
@ RF_GAIN_HYBRID_AGC
Definition ad9361.h:2900
@ RF_GAIN_FASTATTACK_AGC
Definition ad9361.h:2898
int32_t ad9361_calculate_rf_clock_chain(struct ad9361_rf_phy *phy, uint32_t tx_sample_rate, uint32_t rate_gov, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition ad9361.c:4770
ad9361_clkout
Definition ad9361.h:3147
@ ADC_CLK_DIV_3
Definition ad9361.h:3151
@ ADC_CLK_DIV_16
Definition ad9361.h:3154
@ ADC_CLK_DIV_8
Definition ad9361.h:3153
@ ADC_CLK_DIV_2
Definition ad9361.h:3150
@ BUFFERED_XTALN_DCXO
Definition ad9361.h:3149
@ ADC_CLK_DIV_4
Definition ad9361.h:3152
int32_t ad9361_unregister_clocks(struct ad9361_rf_phy *phy)
Definition ad9361.c:7452
int32_t ad9361_set_trx_clock_chain_freq(struct ad9361_rf_phy *phy, uint32_t freq)
Definition ad9361.c:4892
int32_t ad9361_rfpll_int_round_rate(struct refclk_scale *clk_priv, uint32_t rate, uint32_t *prate)
Definition ad9361.c:6851
int32_t ad9361_rfpll_int_set_rate(struct refclk_scale *clk_priv, uint32_t rate, uint32_t parent_rate)
Definition ad9361.c:6880
int32_t ad9361_ensm_set_state(struct ad9361_rf_phy *phy, uint8_t ensm_state, bool pinctrl)
Definition ad9361.c:4438
@ LUT_FTDD_40
Definition ad9361.h:3260
@ LUT_FTDD_60
Definition ad9361.h:3261
@ LUT_FTDD_80
Definition ad9361.h:3262
@ LUT_FTDD_ENT
Definition ad9361.h:3263
uint32_t ad9361_rfpll_dummy_recalc_rate(struct refclk_scale *clk_priv)
Definition ad9361.c:6999
int32_t ad9361_rssi_program_lna_gain(struct ad9361_rf_phy *phy)
Definition ad9361.c:7569
int32_t ad9361_tx_mute(struct ad9361_rf_phy *phy, uint32_t state)
Definition ad9361.c:1698
int32_t ad9361_spi_write(struct no_os_spi_desc *spi, uint32_t reg, uint32_t val)
Definition ad9361.c:805
int32_t ad9361_find_opt(uint8_t *field, uint32_t size, uint32_t *ret_start)
Definition ad9361.c:976
int32_t ad9361_register_clocks(struct ad9361_rf_phy *phy)
Definition ad9361.c:7337
uint32_t ad9361_gt(struct ad9361_rf_phy *phy)
Definition ad9361.c:1368
int32_t ad9361_mcs(struct ad9361_rf_phy *phy, int32_t step)
Definition ad9361.c:5253
int32_t ad9361_get_rx_gain(struct ad9361_rf_phy *phy, uint32_t rx_id, struct rf_rx_gain *rx_gain)
Definition ad9361.c:1900
void ad9361_clear_state(struct ad9361_rf_phy *phy)
Definition ad9361.c:5307
int32_t ad9361_get_temp(struct ad9361_rf_phy *phy)
Definition ad9361.c:4207
int32_t ad9361_hdl_loopback(struct ad9361_rf_phy *phy, bool enable)
Definition ad9361_conv.c:101
uint32_t ad9361_rfpll_recalc_rate(struct refclk_scale *clk_priv)
Definition ad9361.c:7027
int32_t ad9361_post_setup(struct ad9361_rf_phy *phy)
Definition ad9361_conv.c:592
int32_t ad9361_get_tx_atten(struct ad9361_rf_phy *phy, uint32_t tx_num)
Definition ad9361.c:1673
int32_t ad9361_get_trx_clock_chain(struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition ad9361.c:4732
void ad9361_get_bist_tone(struct ad9361_rf_phy *phy, enum ad9361_bist_mode *mode, uint32_t *freq_Hz, uint32_t *level_dB, uint32_t *mask)
Definition ad9361.c:1279
int32_t ad9361_rssi_write_err_tbl(struct ad9361_rf_phy *phy)
Definition ad9361.c:7601
int32_t ad9361_update_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t rf_rx_bw, uint32_t rf_tx_bw)
Definition ad9361.c:5735
f_agc_target_gain_index_type
Definition ad9361.h:2903
@ SET_GAIN
Definition ad9361.h:2905
@ NO_GAIN_CHANGE
Definition ad9361.h:2907
@ OPTIMIZED_GAIN
Definition ad9361.h:2906
@ MAX_GAIN
Definition ad9361.h:2904
uint32_t ad9361_clk_factor_recalc_rate(struct refclk_scale *clk_priv, uint32_t parent_rate)
Definition ad9361.c:6506
int32_t ad9361_fastlock_save(struct ad9361_rf_phy *phy, bool tx, uint32_t profile, uint8_t *values)
Definition ad9361.c:5233
int32_t ad9361_set_rx_gain(struct ad9361_rf_phy *phy, uint32_t rx_id, struct rf_rx_gain *rx_gain)
Definition ad9361.c:2212
int32_t ad9361_bbpll_set_rate(struct refclk_scale *clk_priv, uint32_t rate, uint32_t parent_rate)
Definition ad9361.c:6656
uint32_t ad9361_validate_rf_bw(struct ad9361_rf_phy *phy, uint32_t bw)
Definition ad9361.c:934
int32_t ad9361_ensm_mode_restore_pinctrl(struct ad9361_rf_phy *phy)
Definition ad9361.c:7719
void ad9361_get_bist_loopback(struct ad9361_rf_phy *phy, int32_t *mode)
Definition ad9361.c:1166
int32_t ad9361_write_bist_reg(struct ad9361_rf_phy *phy, uint32_t val)
Definition ad9361.c:7695
rssi_restart_mode
Definition ad9361.h:3030
@ AGC_IN_FAST_ATTACK_MODE_LOCKS_THE_GAIN
Definition ad9361.h:3031
@ ENTERS_RX_MODE
Definition ad9361.h:3033
@ SPI_WRITE_TO_REGISTER
Definition ad9361.h:3035
@ GAIN_CHANGE_OCCURS_OR_EN_AGC_PIN_PULLED_HIGH
Definition ad9361.h:3036
@ EN_AGC_PIN_IS_PULLED_HIGH
Definition ad9361.h:3032
@ GAIN_CHANGE_OCCURS
Definition ad9361.h:3034
int32_t ad9361_set_cal_sw(struct ad9361_rf_phy *phy, uint32_t val)
Definition ad9361.c:7736
ad9361_clocks
Definition ad9361.h:3266
@ RX_RFPLL
Definition ad9361.h:3285
@ CLKTF_CLK
Definition ad9361.h:3279
@ T2_CLK
Definition ad9361.h:3277
@ R1_CLK
Definition ad9361.h:3273
@ RX_RFPLL_DUMMY
Definition ad9361.h:3283
@ DAC_CLK
Definition ad9361.h:3276
@ TX_RFPLL_INT
Definition ad9361.h:3282
@ TX_RFPLL
Definition ad9361.h:3286
@ TX_REFCLK
Definition ad9361.h:3269
@ NUM_AD9361_CLKS
Definition ad9361.h:3287
@ R2_CLK
Definition ad9361.h:3272
@ BB_REFCLK
Definition ad9361.h:3267
@ RX_RFPLL_INT
Definition ad9361.h:3281
@ CLKRF_CLK
Definition ad9361.h:3274
@ T1_CLK
Definition ad9361.h:3278
@ RX_SAMPL_CLK
Definition ad9361.h:3275
@ EXT_REF_CLK
Definition ad9361.h:3288
@ ADC_CLK
Definition ad9361.h:3271
@ BBPLL_CLK
Definition ad9361.h:3270
@ TX_SAMPL_CLK
Definition ad9361.h:3280
@ TX_RFPLL_DUMMY
Definition ad9361.h:3284
@ RX_REFCLK
Definition ad9361.h:3268
uint32_t ad9361_bbpll_recalc_rate(struct refclk_scale *clk_priv, uint32_t parent_rate)
Definition ad9361.c:6589
int32_t ad9361_clk_factor_round_rate(struct refclk_scale *clk_priv, uint32_t rate, uint32_t *prate)
Definition ad9361.c:6524
int32_t ad9361_load_fir_filter_coef(struct ad9361_rf_phy *phy, enum fir_dest dest, int32_t gain_dB, uint32_t ntaps, short *coef)
uint32_t ad9361_to_clk(uint64_t freq)
Definition ad9361.c:1384
int32_t ad9361_setup(struct ad9361_rf_phy *phy)
Definition ad9361.c:5366
rx_gain_table_type
Definition ad9361.h:2860
@ RXGAIN_SPLIT_TBL
Definition ad9361.h:2862
@ RXGAIN_FULL_TBL
Definition ad9361.h:2861
int32_t ad9361_write_clock_data_delays(struct ad9361_rf_phy *phy)
Definition ad9361.c:7659
int32_t ad9361_rfpll_round_rate(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361.c:7069
int32_t ad9361_1rx1tx_channel_map(struct ad9361_rf_phy *phy, bool tx, int32_t channel)
Definition ad9361.c:1012
int ad9361_synth_lo_powerdown(struct ad9361_rf_phy *phy, enum synth_pd_ctrl rx, enum synth_pd_ctrl tx)
Definition ad9361.c:3461
void ad9361_ensm_restore_prev_state(struct ad9361_rf_phy *phy)
Definition ad9361.c:2111
int32_t ad9361_clk_mux_set_parent(struct refclk_scale *clk_priv, uint8_t index)
Definition ad9361.c:7172
int32_t ad9361_clk_factor_set_rate(struct refclk_scale *clk_priv, uint32_t rate, uint32_t parent_rate)
Definition ad9361.c:6558
int32_t ad9361_set_dcxo_tune(struct ad9361_rf_phy *phy, uint32_t coarse, uint32_t fine)
Definition ad9361.c:3516
fir_dest
Definition ad9361.h:2881
@ FIR_IS_RX
Definition ad9361.h:2888
@ FIR_TX1
Definition ad9361.h:2882
@ FIR_TX2
Definition ad9361.h:2883
@ FIR_RX1_RX2
Definition ad9361.h:2887
@ FIR_TX1_TX2
Definition ad9361.h:2884
@ FIR_RX2
Definition ad9361.h:2886
@ FIR_RX1
Definition ad9361.h:2885
int32_t ad9361_fastlock_recall(struct ad9361_rf_phy *phy, bool tx, uint32_t profile)
Definition ad9361.c:5177
int32_t ad9361_dig_interface_timing_analysis(struct ad9361_rf_phy *phy, char *buf, int32_t buflen)
Definition ad9361_conv.c:275
int32_t ad9361_en_dis_tx(struct ad9361_rf_phy *phy, uint32_t tx_if, uint32_t enable)
Definition ad9361.c:1067
int32_t ad9361_set_ensm_mode(struct ad9361_rf_phy *phy, bool fdd, bool pinctrl)
Definition ad9361.c:4912
dev_id
Definition ad9361.h:3334
@ ID_AD9364
Definition ad9361.h:3336
@ ID_AD9363A
Definition ad9361.h:3337
@ ID_AD9361
Definition ad9361.h:3335
int32_t ad9361_set_gain_ctrl_mode(struct ad9361_rf_phy *phy, struct rf_gain_ctrl *gain_ctrl)
Definition ad9361.c:2365
int32_t ad9361_bist_loopback(struct ad9361_rf_phy *phy, int32_t mode)
Definition ad9361.c:1119
rx_gain_table_name
Definition ad9361.h:2865
@ TBL_1300_4000_MHZ
Definition ad9361.h:2867
@ TBL_4000_6000_MHZ
Definition ad9361.h:2868
@ RXGAIN_TBLS_END
Definition ad9361.h:2869
@ TBL_200_1300_MHZ
Definition ad9361.h:2866
int32_t ad9361_ensm_mode_disable_pinctrl(struct ad9361_rf_phy *phy)
Definition ad9361.c:7707
int32_t ad9361_en_dis_rx(struct ad9361_rf_phy *phy, uint32_t rx_if, uint32_t enable)
Definition ad9361.c:1084
int32_t ad9361_spi_read(struct no_os_spi_desc *spi, uint32_t reg)
Definition ad9361.c:729
int32_t ad9361_init_gain_tables(struct ad9361_rf_phy *phy)
int32_t ad9361_set_trx_clock_chain(struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition ad9361.c:4644
int32_t ad9361_rf_port_setup(struct ad9361_rf_phy *phy, bool is_out, uint32_t rx_inputs, uint32_t txb)
Definition ad9361.c:3630
debugfs_cmd
Definition ad9361.h:3430
@ DBGFS_BIST_PRBS
Definition ad9361.h:3434
@ DBGFS_BIST_TONE
Definition ad9361.h:3435
@ DBGFS_BIST_DT_ANALYSIS
Definition ad9361.h:3436
@ DBGFS_RXGAIN_1
Definition ad9361.h:3437
@ DBGFS_LOOPBACK
Definition ad9361.h:3433
@ DBGFS_RXGAIN_2
Definition ad9361.h:3438
@ DBGFS_NONE
Definition ad9361.h:3431
@ DBGFS_INIT
Definition ad9361.h:3432
void ad9361_ensm_force_state(struct ad9361_rf_phy *phy, uint8_t ensm_state)
Definition ad9361.c:1978
int32_t ad9361_validate_enable_fir(struct ad9361_rf_phy *phy)
Definition ad9361.c:6102
int32_t ad9361_fastlock_store(struct ad9361_rf_phy *phy, bool tx, uint32_t profile)
Definition ad9361.c:5045
synth_pd_ctrl
Definition ad9361.h:3328
@ LO_ON
Definition ad9361.h:3331
@ LO_DONTCARE
Definition ad9361.h:3329
@ LO_OFF
Definition ad9361.h:3330
int32_t ad9361_bist_tone(struct ad9361_rf_phy *phy, enum ad9361_bist_mode mode, uint32_t freq_Hz, uint32_t level_dB, uint32_t mask)
Definition ad9361.c:1222
Header file of Common Driver.
Header file of GPIO Interface.
uint8_t VCO_Output_Level
Definition ad9361.h:3245
uint8_t LF_R1
Definition ad9361.h:3254
uint8_t VCO_Cal_Offset
Definition ad9361.h:3249
uint8_t VCO_Bias_Ref
Definition ad9361.h:3247
uint8_t LF_C3
Definition ad9361.h:3255
uint8_t VCO_Bias_Tcf
Definition ad9361.h:3248
uint16_t VCO_MHz
Definition ad9361.h:3244
uint8_t VCO_Varactor
Definition ad9361.h:3246
uint8_t LF_C2
Definition ad9361.h:3252
uint8_t Charge_Pump_Current
Definition ad9361.h:3251
uint8_t LF_R3
Definition ad9361.h:3256
uint8_t VCO_Varactor_Reference
Definition ad9361.h:3250
uint8_t LF_C1
Definition ad9361.h:3253
const char * propname
Definition ad9361.h:3293
uint8_t cmd
Definition ad9361.h:3297
uint8_t size
Definition ad9361.h:3296
uint32_t val
Definition ad9361.h:3295
void * out_value
Definition ad9361.h:3294
struct ad9361_rf_phy * phy
Definition ad9361.h:3292
uint8_t rx_data_delay
Definition ad9361.h:3574
uint8_t rx_clk_delay
Definition ad9361.h:3573
uint8_t tx_clk_delay
Definition ad9361.h:3575
uint8_t tx_data_delay
Definition ad9361.h:3576
uint8_t skip_mode
Definition ad9361.h:3572
Definition ad9361_ext_band_ctrl.h:113
uint8_t flags
Definition ad9361.h:3302
uint8_t alc_written
Definition ad9361.h:3304
uint8_t alc_orig
Definition ad9361.h:3303
uint8_t save_profile
Definition ad9361.h:3308
struct ad9361_fastlock_entry entry[2][8]
Definition ad9361.h:3310
uint8_t current_profile[2]
Definition ad9361.h:3309
bool rfdc_track_en
Definition ad9361.h:3399
uint8_t agc_mode[2]
Definition ad9361.h:3398
uint32_t tx1_atten_cached
Definition ad9361.h:3405
uint32_t current_tx_bw_Hz
Definition ad9361.h:3383
uint32_t bist_tone_freq_Hz
Definition ad9361.h:3414
bool bypass_tx_fir
Definition ad9361.h:3387
enum dev_id dev_sel
Definition ad9361.h:3341
struct no_os_gpio_desc * gpio_desc_sync
Definition ad9361.h:3344
bool auto_cal_en
Definition ad9361.h:3370
struct axiadc_state * adc_state
Definition ad9361.h:3409
int32_t bist_loopback_mode
Definition ad9361.h:3410
struct ad9361_phy_platform_data * pdata
Definition ad9361.h:3359
struct no_os_spi_desc * spi
Definition ad9361.h:3342
uint32_t rxbbf_div
Definition ad9361.h:3384
struct axi_adc * rx_adc
Definition ad9361.h:3348
struct refclk_scale * ref_clk_scale[NUM_AD9361_CLKS]
Definition ad9361.h:3353
struct gain_table_info * gt_info
Definition ad9361.h:3367
uint32_t rate_governor
Definition ad9361.h:3385
enum ad9361_bist_mode bist_prbs_mode
Definition ad9361.h:3412
int32_t(* ad9361_rfpll_ext_set_rate)(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361.h:3357
struct no_os_gpio_desc * gpio_desc_cal_sw1
Definition ad9361.h:3345
uint32_t current_rx_path_clks[NUM_RX_CLOCKS]
Definition ad9361.h:3378
uint8_t cached_tx_rfpll_div
Definition ad9361.h:3363
enum ad9361_bist_mode bist_tone_mode
Definition ad9361.h:3413
uint16_t auxdac2_value
Definition ad9361.h:3404
uint32_t bist_tone_level_dB
Definition ad9361.h:3415
struct axi_dac * tx_dac
Definition ad9361.h:3349
uint32_t current_table
Definition ad9361.h:3366
struct no_os_clk * clk_refin
Definition ad9361.h:3351
struct axiadc_converter * adc_conv
Definition ad9361.h:3408
uint8_t tx_fir_ntaps
Definition ad9361.h:3395
uint32_t current_rx_bw_Hz
Definition ad9361.h:3382
uint8_t cached_rx_rfpll_div
Definition ad9361.h:3362
bool current_rx_use_tdd_table
Definition ad9361.h:3377
bool bypass_rx_fir
Definition ad9361.h:3386
int32_t tx_quad_lpf_tia_match
Definition ad9361.h:3365
uint32_t filt_tx_bw_Hz
Definition ad9361.h:3393
uint32_t flags
Definition ad9361.h:3380
uint64_t current_rx_lo_freq
Definition ad9361.h:3375
uint8_t cached_synth_pd[2]
Definition ad9361.h:3364
bool current_tx_use_tdd_table
Definition ad9361.h:3376
uint32_t bist_tone_mask
Definition ad9361.h:3416
bool txmon_tdd_en
Definition ad9361.h:3402
uint64_t last_tx_quad_cal_freq
Definition ad9361.h:3372
uint32_t filt_tx_path_clks[NUM_TX_CLOCKS]
Definition ad9361.h:3391
uint32_t cal_threshold_freq
Definition ad9361.h:3381
uint8_t rx_fir_ntaps
Definition ad9361.h:3397
bool ensm_pin_ctl_en
Definition ad9361.h:3368
bool manual_tx_quad_cal_en
Definition ad9361.h:3371
struct ad9361_fastlock fastlock
Definition ad9361.h:3407
bool rx_eq_2tx
Definition ad9361.h:3388
uint32_t(* ad9361_rfpll_ext_recalc_rate)(struct refclk_scale *clk_priv)
Definition ad9361.h:3354
uint32_t filt_rx_path_clks[NUM_RX_CLOCKS]
Definition ad9361.h:3390
uint32_t filt_rx_bw_Hz
Definition ad9361.h:3392
uint16_t auxdac1_value
Definition ad9361.h:3403
struct no_os_gpio_desc * gpio_desc_resetb
Definition ad9361.h:3343
uint32_t last_tx_quad_cal_phase
Definition ad9361.h:3373
uint8_t tx_fir_int
Definition ad9361.h:3394
bool quad_track_en
Definition ad9361.h:3401
uint8_t prev_ensm_state
Definition ad9361.h:3360
int32_t bist_config
Definition ad9361.h:3411
bool bbdc_track_en
Definition ad9361.h:3400
bool filt_valid
Definition ad9361.h:3389
uint32_t tx2_atten_cached
Definition ad9361.h:3406
struct no_os_gpio_desc * gpio_desc_cal_sw2
Definition ad9361.h:3346
struct no_os_clk * clks[NUM_AD9361_CLKS]
Definition ad9361.h:3352
struct ad9361_ext_band_ctl * ext_band_ctl
Definition ad9361.h:3418
uint32_t current_tx_path_clks[NUM_TX_CLOCKS]
Definition ad9361.h:3379
uint8_t rx_fir_dec
Definition ad9361.h:3396
uint8_t curr_ensm_state
Definition ad9361.h:3361
bool bbpll_initialized
Definition ad9361.h:3417
uint64_t current_tx_lo_freq
Definition ad9361.h:3374
int32_t(* ad9361_rfpll_ext_round_rate)(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361.h:3355
int8_t offset
Definition ad9361.h:3080
uint32_t auxadc_decimation
Definition ad9361.h:3085
uint32_t temp_sensor_decimation
Definition ad9361.h:3082
uint32_t auxadc_clock_rate
Definition ad9361.h:3084
uint32_t temp_time_inteval_ms
Definition ad9361.h:3081
bool periodic_temp_measuremnt
Definition ad9361.h:3083
bool dac2_in_alert_en
Definition ad9361.h:3022
uint8_t dac2_rx_delay_us
Definition ad9361.h:3026
uint8_t dac1_tx_delay_us
Definition ad9361.h:3025
bool dac1_in_rx_en
Definition ad9361.h:3016
bool dac2_in_tx_en
Definition ad9361.h:3021
bool dac1_in_tx_en
Definition ad9361.h:3017
uint16_t dac2_default_value
Definition ad9361.h:3012
bool dac2_in_rx_en
Definition ad9361.h:3020
uint16_t dac1_default_value
Definition ad9361.h:3011
bool dac1_in_alert_en
Definition ad9361.h:3018
uint8_t dac2_tx_delay_us
Definition ad9361.h:3027
bool auxdac_manual_mode_en
Definition ad9361.h:3014
uint8_t dac1_rx_delay_us
Definition ad9361.h:3024
AXI ADC Device Descriptor.
Definition axi_adc_core.h:123
AXI DAC Device Descriptor.
Definition axi_dac_core.h:53
Definition ad9361_util.h:81
Definition ad9361_util.h:71
uint8_t index
Definition ad9361.h:3066
uint8_t en_mask
Definition ad9361.h:3067
uint16_t bypass_loss_mdB
Definition ad9361.h:3072
bool elna_2_control_en
Definition ad9361.h:3075
bool elna_in_gaintable_all_index_en
Definition ad9361.h:3076
bool elna_1_control_en
Definition ad9361.h:3074
uint32_t settling_delay_ns
Definition ad9361.h:3073
uint16_t gain_mdB
Definition ad9361.h:3071
uint8_t f_agc_final_overrange_count
Definition ad9361.h:2984
uint8_t agc_attack_delay_extra_margin_us
Definition ad9361.h:2937
uint32_t f_agc_power_measurement_duration_in_state5
Definition ad9361.h:3006
uint8_t agc_inner_thresh_low_inc_steps
Definition ad9361.h:2944
uint8_t f_agc_lock_level_gain_increase_upper_limit
Definition ad9361.h:2980
bool dig_gain_en
Definition ad9361.h:2925
uint8_t lmt_overload_small_exceed_counter
Definition ad9361.h:2956
bool immed_gain_change_if_large_adc_overload
Definition ad9361.h:2964
uint8_t agc_outer_thresh_high
Definition ad9361.h:2939
uint8_t adc_small_overload_exceed_counter
Definition ad9361.h:2948
uint8_t adc_ovr_sample_size
Definition ad9361.h:2915
bool sync_for_gain_counter_en
Definition ad9361.h:2961
uint8_t adc_large_overload_inc_steps
Definition ad9361.h:2950
uint8_t adc_large_overload_thresh
Definition ad9361.h:2917
uint8_t mgc_dec_gain_step
Definition ad9361.h:2933
bool f_agc_gain_increase_after_gain_lock_en
Definition ad9361.h:2986
uint8_t f_agc_lp_thresh_increment_steps
Definition ad9361.h:2975
uint8_t f_agc_optimized_gain_offset
Definition ad9361.h:2992
uint8_t f_agc_large_overload_inc_steps
Definition ad9361.h:3007
uint8_t low_power_thresh
Definition ad9361.h:2922
enum f_agc_target_gain_index_type f_agc_gain_index_type_after_exit_rx_mode
Definition ad9361.h:2989
enum f_agc_target_gain_index_type f_agc_rst_gla_if_en_agc_pulled_high_mode
Definition ad9361.h:3004
uint8_t f_agc_lmt_final_settling_steps
Definition ad9361.h:2983
bool mgc_rx2_ctrl_inp_en
Definition ad9361.h:2930
uint8_t f_agc_lp_thresh_increment_time
Definition ad9361.h:2974
uint8_t f_agc_lock_level
Definition ad9361.h:2978
uint8_t adc_small_overload_thresh
Definition ad9361.h:2916
enum rf_gain_ctrl_mode rx2_mode
Definition ad9361.h:2912
uint8_t agc_inner_thresh_high
Definition ad9361.h:2941
uint8_t f_agc_lpf_final_settling_steps
Definition ad9361.h:2982
uint8_t agc_outer_thresh_low
Definition ad9361.h:2945
uint8_t mgc_split_table_ctrl_inp_gain_mode
Definition ad9361.h:2934
bool f_agc_rst_gla_stronger_sig_thresh_exceeded_en
Definition ad9361.h:2993
uint32_t f_agc_state_wait_time_ns
Definition ad9361.h:2971
bool mgc_rx1_ctrl_inp_en
Definition ad9361.h:2929
bool use_rx_fir_out_for_dec_pwr_meas
Definition ad9361.h:2923
bool f_agc_rst_gla_engergy_lost_sig_thresh_exceeded_en
Definition ad9361.h:2995
uint8_t dig_gain_step_size
Definition ad9361.h:2960
bool f_agc_lock_level_lmt_gain_increase_en
Definition ad9361.h:2979
bool agc_dig_sat_ovrg_en
Definition ad9361.h:2953
uint8_t f_agc_rst_gla_engergy_lost_sig_thresh_below_ll
Definition ad9361.h:2997
uint32_t f_agc_dec_pow_measuremnt_duration
Definition ad9361.h:2970
uint8_t dig_saturation_exceed_counter
Definition ad9361.h:2959
bool f_agc_rst_gla_large_lmt_overload_en
Definition ad9361.h:3000
uint16_t lmt_overload_low_thresh
Definition ad9361.h:2920
uint8_t mgc_inc_gain_step
Definition ad9361.h:2932
uint8_t f_agc_energy_lost_stronger_sig_gain_lock_exit_cnt
Definition ad9361.h:2998
uint8_t agc_outer_thresh_low_inc_steps
Definition ad9361.h:2946
uint8_t adc_large_overload_exceed_counter
Definition ad9361.h:2949
bool f_agc_rst_gla_en_agc_pulled_high_en
Definition ad9361.h:3001
uint8_t lmt_overload_large_exceed_counter
Definition ad9361.h:2955
uint8_t f_agc_rst_gla_stronger_sig_thresh_above_ll
Definition ad9361.h:2994
bool f_agc_rst_gla_large_adc_overload_en
Definition ad9361.h:2999
bool adc_lmt_small_overload_prevent_gain_inc
Definition ad9361.h:2952
bool f_agc_use_last_lock_level_for_set_gain_en
Definition ad9361.h:2991
bool immed_gain_change_if_large_lmt_overload
Definition ad9361.h:2965
uint32_t dec_pow_measuremnt_duration
Definition ad9361.h:2921
bool f_agc_allow_agc_gain_increase
Definition ad9361.h:2973
uint32_t gain_update_interval_us
Definition ad9361.h:2963
uint8_t agc_inner_thresh_high_dec_steps
Definition ad9361.h:2942
enum rf_gain_ctrl_mode rx1_mode
Definition ad9361.h:2911
uint8_t agc_outer_thresh_high_dec_steps
Definition ad9361.h:2940
uint8_t max_dig_gain
Definition ad9361.h:2926
uint8_t agc_inner_thresh_low
Definition ad9361.h:2943
uint16_t lmt_overload_high_thresh
Definition ad9361.h:2919
bool f_agc_rst_gla_engergy_lost_goto_optim_gain_en
Definition ad9361.h:2996
uint8_t lmt_overload_large_inc_steps
Definition ad9361.h:2957
uint64_t start
Definition ad9361.h:2873
uint64_t end
Definition ad9361.h:2874
uint8_t max_index
Definition ad9361.h:2875
uint8_t split_table
Definition ad9361.h:2876
int8_t * abs_gain_tbl
Definition ad9361.h:2877
uint8_t(* tab)[3]
Definition ad9361.h:2878
bool gpo3_slave_rx_en
Definition ad9361.h:3101
uint8_t gpo3_tx_delay_us
Definition ad9361.h:3110
bool gpo1_inactive_state_high_en
Definition ad9361.h:3092
bool gpo3_slave_tx_en
Definition ad9361.h:3102
uint8_t gpo2_rx_delay_us
Definition ad9361.h:3107
bool gpo2_slave_rx_en
Definition ad9361.h:3099
uint8_t gpo3_rx_delay_us
Definition ad9361.h:3109
bool gpo0_slave_rx_en
Definition ad9361.h:3095
bool gpo1_slave_rx_en
Definition ad9361.h:3097
bool gpo1_slave_tx_en
Definition ad9361.h:3098
bool gpo2_inactive_state_high_en
Definition ad9361.h:3093
uint8_t gpo0_tx_delay_us
Definition ad9361.h:3104
uint32_t gpo_manual_mode_enable_mask
Definition ad9361.h:3089
bool gpo2_slave_tx_en
Definition ad9361.h:3100
uint8_t gpo0_rx_delay_us
Definition ad9361.h:3103
uint8_t gpo2_tx_delay_us
Definition ad9361.h:3108
bool gpo0_slave_tx_en
Definition ad9361.h:3096
uint8_t gpo1_tx_delay_us
Definition ad9361.h:3106
uint8_t gpo1_rx_delay_us
Definition ad9361.h:3105
bool gpo3_inactive_state_high_en
Definition ad9361.h:3094
bool gpo_manual_mode_en
Definition ad9361.h:3090
bool gpo0_inactive_state_high_en
Definition ad9361.h:3091
Definition no_os_clk.h:58
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding SPI descriptor.
Definition no_os_spi.h:180
uint8_t lvds_invert[2]
Definition ad9361.h:3062
uint8_t rx_clk_data_delay
Definition ad9361.h:3058
uint8_t tx_clk_data_delay
Definition ad9361.h:3059
uint8_t lvds_bias_ctrl
Definition ad9361.h:3061
uint8_t pp_conf[3]
Definition ad9361.h:3057
uint8_t digital_io_ctrl
Definition ad9361.h:3060
struct ad9361_rf_phy * phy
Definition ad9361.h:3423
uint32_t mult
Definition ad9361.h:3424
struct no_os_spi_desc * spi
Definition ad9361.h:3422
enum ad9361_clocks parent_source
Definition ad9361.h:3427
uint32_t div
Definition ad9361.h:3425
enum ad9361_clocks source
Definition ad9361.h:3426
uint32_t ant
Definition ad9361.h:2892
uint8_t mode
Definition ad9361.h:2893
uint32_t lna_index
Definition ad9361.h:3230
uint32_t ant
Definition ad9361.h:3223
uint32_t mixer_index
Definition ad9361.h:3232
uint32_t tia_index
Definition ad9361.h:3231
uint32_t fgt_lmt_index
Definition ad9361.h:3225
int32_t gain_db
Definition ad9361.h:3224
uint32_t lpf_gain
Definition ad9361.h:3227
uint32_t digital_gain
Definition ad9361.h:3228
uint32_t lmt_gain
Definition ad9361.h:3226
int32_t idx_step_offset
Definition ad9361.h:3053
int32_t starting_gain_db
Definition ad9361.h:3049
int32_t max_gain_db
Definition ad9361.h:3050
enum rx_gain_table_type tbl_type
Definition ad9361.h:3048
int32_t max_idx
Definition ad9361.h:3052
int32_t gain_step_db
Definition ad9361.h:3051
uint8_t low_gain_dB
Definition ad9361.h:3117
uint8_t high_gain_dB
Definition ad9361.h:3118
uint32_t low_high_gain_threshold_mdB
Definition ad9361.h:3116
uint8_t tx1_mon_lo_cm
Definition ad9361.h:3123
uint8_t tx2_mon_front_end_gain
Definition ad9361.h:3122
uint16_t tx_mon_delay
Definition ad9361.h:3119
uint16_t tx_mon_duration
Definition ad9361.h:3120
bool tx_mon_track_en
Definition ad9361.h:3114
uint8_t tx1_mon_front_end_gain
Definition ad9361.h:3121
bool one_shot_mode_en
Definition ad9361.h:3115
uint8_t tx2_mon_lo_cm
Definition ad9361.h:3124