42#define REG_SPI_INTFCONFA 0x000
43#define REG_SPI_INTFCONFB 0x001
44#define REG_SPI_DEVCONF 0x002
45#define REG_SPI_PRODIDL 0x004
46#define REG_SPI_PRODIDH 0x005
47#define REG_SPI_CHIPGRADE 0x006
48#define REG_SPI_PAGEINDX 0x008
49#define REG_SPI_DEVINDX2 0x009
50#define REG_SPI_SCRATCHPAD 0x00A
51#define REG_SPI_MS_UPDATE 0x00F
52#define REG_PWRCNTRL0 0x011
53#define REG_TXENMASK1 0x012
54#define REG_PWRCNTRL3 0x013
55#define REG_COARSE_GROUP_DLY 0x014
56#define REG_IRQ_ENABLE0 0x01F
57#define REG_IRQ_ENABLE1 0x020
58#define REG_IRQ_ENABLE2 0x021
59#define REG_IRQ_ENABLE3 0x022
60#define REG_IRQ_STATUS0 0x023
61#define REG_IRQ_STATUS1 0x024
62#define REG_IRQ_STATUS2 0x025
63#define REG_IRQ_STATUS3 0x026
64#define REG_JESD_CHECKS 0x030
65#define REG_SYNC_TESTCTRL 0x031
66#define REG_SYNC_DACDELAY_L 0x032
67#define REG_SYNC_DACDELAY_H 0x033
68#define REG_SYNC_ERRWINDOW 0x034
69#define REG_SYNC_DLYCOUNT 0x035
70#define REG_SYNC_REFCOUNT 0x036
71#define REG_SYNC_LASTERR_L 0x038
72#define REG_SYNC_LASTERR_H 0x039
73#define REG_SYNC_CTRL 0x03A
74#define REG_SYNC_STATUS 0x03B
75#define REG_SYNC_CURRERR_L 0x03C
76#define REG_SYNC_CURRERR_H 0x03D
77#define REG_ERROR_THERM 0x03E
78#define REG_DACGAIN0_1 0x040
79#define REG_DACGAIN0_0 0x041
80#define REG_DACGAIN1_1 0x042
81#define REG_DACGAIN1_0 0x043
82#define REG_DACGAIN2_1 0x044
83#define REG_DACGAIN2_0 0x045
84#define REG_DACGAIN3_1 0x046
85#define REG_DACGAIN3_0 0x047
86#define REG_PD_DACLDO 0x048
87#define REG_STAT_DACLDO 0x049
88#define REG_DECODE_CTRL0 0x04B
89#define REG_DECODE_CTRL1 0x04C
90#define REG_DECODE_CTRL2 0x04D
91#define REG_DECODE_CTRL3 0x04E
92#define REG_NCO_CLRMODE 0x050
93#define REG_NCOKEY_ILSB 0x051
94#define REG_NCOKEY_IMSB 0x052
95#define REG_NCOKEY_QLSB 0x053
96#define REG_NCOKEY_QMSB 0x054
97#define REG_PA_THRES0 0x060
98#define REG_PA_THRES1 0x061
99#define REG_PA_AVG_TIME 0x062
100#define REG_PA_POWER0 0x063
101#define REG_PA_POWER1 0x064
102#define REG_CLKCFG0 0x080
103#define REG_SYSREF_ACTRL0 0x081
104#define REG_SYSREF_ACTRL1 0x082
105#define REG_DACPLLCNTRL 0x083
106#define REG_DACPLLSTATUS 0x084
107#define REG_DACINTEGERWORD0 0x085
108#define REG_DACLOOPFILT1 0x087
109#define REG_DACLOOPFILT2 0x088
110#define REG_DACLOOPFILT3 0x089
111#define REG_DACCPCNTRL 0x08A
112#define REG_DACLOGENCNTRL 0x08B
113#define REG_DACLDOCNTRL1 0x08C
114#define REG_CAL_DAC_ERR 0x0E0
115#define REG_CAL_MSB_THRES 0x0E1
116#define REG_CAL_CTRL_GLOBAL 0x0E2
117#define REG_CAL_MSBHILVL 0x0E3
118#define REG_CAL_MSBLOLVL 0x0E4
119#define REG_CAL_THRESH 0x0E5
120#define REG_CAL_AVG_CNT 0x0E6
121#define REG_CAL_CLKDIV 0x0E7
122#define REG_CAL_INDX 0x0E8
123#define REG_CAL_CTRL 0x0E9
124#define REG_CAL_ADDR 0x0EA
125#define REG_CAL_DATA 0x0EB
126#define REG_CAL_UPDATE 0x0EC
127#define REG_CAL_INIT 0x0ED
128#define REG_DATA_FORMAT 0x110
129#define REG_DATAPATH_CTRL 0x111
130#define REG_INTERP_MODE 0x112
131#define REG_NCO_FTW_UPDATE 0x113
132#define REG_FTW0 0x114
133#define REG_FTW1 0x115
134#define REG_FTW2 0x116
135#define REG_FTW3 0x117
136#define REG_FTW4 0x118
137#define REG_FTW5 0x119
138#define REG_NCO_PHASE_OFFSET0 0x11A
139#define REG_NCO_PHASE_OFFSET1 0x11B
140#define REG_NCO_PHASE_ADJ0 0x11C
141#define REG_NCO_PHASE_ADJ1 0x11D
142#define REG_TXEN_FUNC 0x11E
143#define REG_TXEN_SM_0 0x11F
144#define REG_TXEN_SM_1 0x120
145#define REG_TXEN_SM_2 0x121
146#define REG_TXEN_SM_3 0x122
147#define REG_TXEN_SM_4 0x123
148#define REG_TXEN_SM_5 0x124
149#define REG_DACOUT_ON_DOWN 0x125
150#define REG_DACOFF 0x12C
151#define REG_DATA_PATH_FLUSH_COUNT0 0x12D
152#define REG_DATA_PATH_FLUSH_COUNT1 0x12E
153#define REG_DIE_TEMP_CTRL0 0x12F
154#define REG_DIE_TEMP_CTRL1 0x130
155#define REG_DIE_TEMP_CTRL2 0x131
156#define REG_DIE_TEMP0 0x132
157#define REG_DIE_TEMP1 0x133
158#define REG_DIE_TEMP_UPDATE 0x134
159#define REG_DC_OFFSET_CTRL 0x135
160#define REG_IPATH_DC_OFFSET_1PART0 0x136
161#define REG_IPATH_DC_OFFSET_1PART1 0x137
162#define REG_QPATH_DC_OFFSET_1PART0 0x138
163#define REG_QPATH_DC_OFFSET_1PART1 0x139
164#define REG_IPATH_DC_OFFSET_2PART 0x13A
165#define REG_QPATH_DC_OFFSET_2PART 0x13B
166#define REG_IDAC_DIG_GAIN0 0x13C
167#define REG_IDAC_DIG_GAIN1 0x13D
168#define REG_QDAC_DIG_GAIN0 0x13E
169#define REG_QDAC_DIG_GAIN1 0x13F
170#define REG_GAIN_RAMP_UP_STP0 0x140
171#define REG_GAIN_RAMP_UP_STP1 0x141
172#define REG_GAIN_RAMP_DOWN_STP0 0x142
173#define REG_GAIN_RAMP_DOWN_STP1 0x143
174#define REG_BLSM_CTRL 0x146
175#define REG_BLSM_STAT 0x147
176#define REG_PRBS 0x14B
177#define REG_PRBS_ERROR_I 0x14C
178#define REG_PRBS_ERROR_Q 0x14D
179#define REG_DACPLLT5 0x1B5
180#define REG_DACPLLTB 0x1BB
181#define REG_DACPLLTD 0x1BD
182#define REG_DACPLLT17 0x1C4
183#define REG_DACPLLT18 0x1C5
184#define REG_ASPI_SPARE0 0x1C6
185#define REG_ASPI_SPARE1 0x1C7
186#define REG_SPISTRENGTH 0x1DF
187#define REG_CLK_TEST 0x1EB
188#define REG_ATEST_VOLTS 0x1EC
189#define REG_ASPI_CLKSRC 0x1ED
190#define REG_MASTER_PD 0x200
191#define REG_PHY_PD 0x201
192#define REG_GENERIC_PD 0x203
193#define REG_CDR_RESET 0x206
194#define REG_CDR_OPERATING_MODE_REG_0 0x230
195#define REG_CONFIG_REG3 0x232
196#define REG_EQ_CONFIG_PHY_0_1 0x250
197#define REG_EQ_CONFIG_PHY_2_3 0x251
198#define REG_EQ_CONFIG_PHY_4_5 0x252
199#define REG_EQ_CONFIG_PHY_6_7 0x253
200#define REG_EQ_BIAS_REG 0x268
201#define REG_SYNTH_ENABLE_CNTRL 0x280
202#define REG_PLL_STATUS 0x281
203#define REG_REF_CLK_DIVIDER_LDO 0x289
204#define REG_SERDES_PLL_CTRL 0x291
205#define REG_SERDES_PLL_CP3 0x29c
206#define REG_SERDES_PLL_VAR3 0x29f
207#define REG_DEV_CONFIG_8 0x2A4
208#define REG_TERM_BLK1_CTRLREG0 0x2A7
209#define REG_TERM_BLK1_CTRLREG1 0x2A8
210#define REG_DEV_CONFIG_9 0x2AA
211#define REG_DEV_CONFIG_10 0x2AB
212#define REG_TERM_BLK2_CTRLREG0 0x2AE
213#define REG_TERM_BLK2_CTRLREG1 0x2AF
214#define REG_DEV_CONFIG_11 0x2B1
215#define REG_DEV_CONFIG_12 0x2B2
216#define REG_GENERAL_JRX_CTRL_0 0x300
217#define REG_GENERAL_JRX_CTRL_1 0x301
218#define REG_DYN_LINK_LATENCY_0 0x302
219#define REG_DYN_LINK_LATENCY_1 0x303
220#define REG_LMFC_DELAY_0 0x304
221#define REG_LMFC_DELAY_1 0x305
222#define REG_LMFC_VAR_0 0x306
223#define REG_LMFC_VAR_1 0x307
224#define REG_XBAR(x) (0x308 +(x))
225#define REG_FIFO_STATUS_REG_0 0x30C
226#define REG_FIFO_STATUS_REG_1 0x30D
227#define REG_FIFO_STATUS_REG_2 0x30E
228#define REG_SYNCB_GEN_0 0x311
229#define REG_SYNCB_GEN_1 0x312
230#define REG_SYNCB_GEN_3 0x313
231#define REG_SERDES_SPI_REG 0x314
232#define REG_PHY_PRBS_TEST_EN 0x315
233#define REG_PHY_PRBS_TEST_CTRL 0x316
234#define REG_PHY_PRBS_TEST_THRESH_LOBITS 0x317
235#define REG_PHY_PRBS_TEST_THRESH_MIDBITS 0x318
236#define REG_PHY_PRBS_TEST_THRESH_HIBITS 0x319
237#define REG_PHY_PRBS_TEST_ERRCNT_LOBITS 0x31A
238#define REG_PHY_PRBS_TEST_ERRCNT_MIDBITS 0x31B
239#define REG_PHY_PRBS_TEST_ERRCNT_HIBITS 0x31C
240#define REG_PHY_PRBS_TEST_STATUS 0x31D
241#define REG_SHORT_TPL_TEST_0 0x32C
242#define REG_SHORT_TPL_TEST_1 0x32D
243#define REG_SHORT_TPL_TEST_2 0x32E
244#define REG_SHORT_TPL_TEST_3 0x32F
245#define REG_DEVICE_CONFIG_REG_13 0x333
246#define REG_JESD_BIT_INVERSE_CTRL 0x334
247#define REG_DID_REG 0x400
248#define REG_BID_REG 0x401
249#define REG_LID0_REG 0x402
250#define REG_SCR_L_REG 0x403
251#define REG_F_REG 0x404
252#define REG_K_REG 0x405
253#define REG_M_REG 0x406
254#define REG_CS_N_REG 0x407
255#define REG_NP_REG 0x408
256#define REG_S_REG 0x409
257#define REG_HD_CF_REG 0x40A
258#define REG_RES1_REG 0x40B
259#define REG_RES2_REG 0x40C
260#define REG_CHECKSUM_REG 0x40D
261#define REG_COMPSUM0_REG 0x40E
262#define REG_LID1_REG 0x412
263#define REG_CHECKSUM1_REG 0x415
264#define REG_COMPSUM1_REG 0x416
265#define REG_LID2_REG 0x41A
266#define REG_CHECKSUM2_REG 0x41D
267#define REG_COMPSUM2_REG 0x41E
268#define REG_LID3_REG 0x422
269#define REG_CHECKSUM3_REG 0x425
270#define REG_COMPSUM3_REG 0x426
271#define REG_LID4_REG 0x42A
272#define REG_CHECKSUM4_REG 0x42D
273#define REG_COMPSUM4_REG 0x42E
274#define REG_LID5_REG 0x432
275#define REG_CHECKSUM5_REG 0x435
276#define REG_COMPSUM5_REG 0x436
277#define REG_LID6_REG 0x43A
278#define REG_CHECKSUM6_REG 0x43D
279#define REG_COMPSUM6_REG 0x43E
280#define REG_LID7_REG 0x442
281#define REG_CHECKSUM7_REG 0x445
282#define REG_COMPSUM7_REG 0x446
283#define REG_ILS_DID 0x450
284#define REG_ILS_BID 0x451
285#define REG_ILS_LID0 0x452
286#define REG_ILS_SCR_L 0x453
287#define REG_ILS_F 0x454
288#define REG_ILS_K 0x455
289#define REG_ILS_M 0x456
290#define REG_ILS_CS_N 0x457
291#define REG_ILS_NP 0x458
292#define REG_ILS_S 0x459
293#define REG_ILS_HD_CF 0x45A
294#define REG_ILS_RES1 0x45B
295#define REG_ILS_RES2 0x45C
296#define REG_ILS_CHECKSUM 0x45D
297#define REG_ERRCNTRMON 0x46B
298#define REG_LANEDESKEW 0x46C
299#define REG_BADDISPARITY 0x46D
300#define REG_NITDISPARITY 0x46E
301#define REG_UNEXPECTEDKCHAR 0x46F
302#define REG_CODEGRPSYNCFLG 0x470
303#define REG_FRAMESYNCFLG 0x471
304#define REG_GOODCHKSUMFLG 0x472
305#define REG_INITLANESYNCFLG 0x473
306#define REG_CTRLREG1 0x476
307#define REG_CTRLREG2 0x477
308#define REG_KVAL 0x478
309#define REG_IRQVECTOR 0x47A
310#define REG_SYNCASSERTIONMASK 0x47B
311#define REG_ERRORTHRES 0x47C
312#define REG_LANEENABLE 0x47D
317#define SOFTRESET_M (1 << 7)
318#define LSBFIRST_M (1 << 6)
319#define ADDRINC_M (1 << 5)
320#define SDOACTIVE_M (1 << 4)
321#define SDOACTIVE (1 << 3)
322#define ADDRINC (1 << 2)
323#define LSBFIRST (1 << 1)
324#define SOFTRESET (1 << 0)
329#define SINGLEINS (1 << 7)
330#define CSBSTALL (1 << 6)
335#define DEVSTATUS(x) (((x) & 0xF) << 4)
336#define CUSTOPMODE(x) (((x) & 0x3) << 2)
337#define SYSOPMODE(x) (((x) & 0x3) << 0)
342#define PROD_GRADE(x) (((x) & 0xF) << 4)
343#define DEV_REVISION(x) (((x) & 0xF) << 0)
348#define PAGEINDX(x) (((x) & 0x3) << 0)
353#define SLAVEUPDATE (1 << 0)
358#define PD_BG (1 << 7)
359#define PD_DAC_0 (1 << 6)
360#define PD_DAC_1 (1 << 5)
361#define PD_DAC_2 (1 << 4)
362#define PD_DAC_3 (1 << 3)
363#define PD_DACM (1 << 2)
368#define SYS_MASK (1 << 2)
369#define DACB_MASK (1 << 1)
370#define DACA_MASK (1 << 0)
375#define ENA_PA_CTRL_FROM_PAPROT_ERR (1 << 6)
376#define ENA_PA_CTRL_FROM_TXENSM (1 << 5)
377#define ENA_PA_CTRL_FROM_BLSM (1 << 4)
378#define ENA_PA_CTRL_FROM_SPI (1 << 3)
379#define SPI_PA_CTRL (1 << 2)
380#define ENA_SPI_TXEN (1 << 1)
381#define SPI_TXEN (1 << 0)
386#define COARSE_GROUP_DLY(x) (((x) & 0xF) << 0)
391#define EN_CALPASS (1 << 7)
392#define EN_CALFAIL (1 << 6)
393#define EN_DACPLLLOST (1 << 5)
394#define EN_DACPLLLOCK (1 << 4)
395#define EN_SERPLLLOST (1 << 3)
396#define EN_SERPLLLOCK (1 << 2)
397#define EN_LANEFIFOERR (1 << 1)
398#define EN_DRDLFIFOERR (1 << 0)
403#define EN_PARMBAD (1 << 7)
404#define EN_PRBSQ1 (1 << 3)
405#define EN_PRBSI1 (1 << 2)
406#define EN_PRBSQ0 (1 << 1)
407#define EN_PRBSI0 (1 << 0)
412#define EN_PAERR0 (1 << 7)
413#define EN_BIST_DONE0 (1 << 6)
414#define EN_BLNKDONE0 (1 << 5)
415#define EN_REFNCOCLR0 (1 << 4)
416#define EN_REFLOCK0 (1 << 3)
417#define EN_REFROTA0 (1 << 2)
418#define EN_REFWLIM0 (1 << 1)
419#define EN_REFTRIP0 (1 << 0)
424#define EN_PAERR1 (1 << 7)
425#define EN_BIST_DONE1 (1 << 6)
426#define EN_BLNKDONE1 (1 << 5)
427#define EN_REFNCOCLR1 (1 << 4)
428#define EN_REFLOCK1 (1 << 3)
429#define EN_REFROTA1 (1 << 2)
430#define EN_REFWLIM1 (1 << 1)
431#define EN_REFTRIP1 (1 << 0)
436#define IRQ_CALPASS (1 << 7)
437#define IRQ_CALFAIL (1 << 6)
438#define IRQ_DACPLLLOST (1 << 5)
439#define IRQ_DACPLLLOCK (1 << 4)
440#define IRQ_SERPLLLOST (1 << 3)
441#define IRQ_SERPLLLOCK (1 << 2)
442#define IRQ_LANEFIFOERR (1 << 1)
443#define IRQ_DRDLFIFOERR (1 << 0)
448#define IRQ_PARMBAD (1 << 7)
449#define IRQ_PRBSQ1 (1 << 3)
450#define IRQ_PRBSI1 (1 << 2)
451#define IRQ_PRBSQ0 (1 << 1)
452#define IRQ_PRBSI0 (1 << 0)
457#define IRQ_PAERR0 (1 << 7)
458#define IRQ_BIST_DONE0 (1 << 6)
459#define IRQ_BLNKDONE0 (1 << 5)
460#define IRQ_REFNCOCLR0 (1 << 4)
461#define IRQ_REFLOCK0 (1 << 3)
462#define IRQ_REFROTA0 (1 << 2)
463#define IRQ_REFWLIM0 (1 << 1)
464#define IRQ_REFTRIP0 (1 << 0)
469#define IRQ_PAERR1 (1 << 7)
470#define IRQ_BIST_DONE1 (1 << 6)
471#define IRQ_BLNKDONE1 (1 << 5)
472#define IRQ_REFNCOCLR1 (1 << 4)
473#define IRQ_REFLOCK1 (1 << 3)
474#define IRQ_REFROTA1 (1 << 2)
475#define IRQ_REFWLIM1 (1 << 1)
476#define IRQ_REFTRIP1 (1 << 0)
481#define ERR_DLYOVER (1 << 5)
482#define ERR_WINLIMIT (1 << 4)
483#define ERR_JESDBAD (1 << 3)
484#define ERR_KUNSUPP (1 << 2)
485#define ERR_SUBCLASS (1 << 1)
486#define ERR_INTSUPP (1 << 0)
491#define TARRFAPHAZ (1 << 0)
492#define SYNCBYPASS(x) (((x) & 0x3) << 6)
497#define DAC_DELAY_H (1 << 0)
502#define ERRWINDOW(x) (((x) & 0x7) << 0)
507#define LASTUNDER (1 << 7)
508#define LASTOVER (1 << 6)
509#define LASTERROR_H (1 << 0)
514#define SYNCENABLE (1 << 7)
515#define SYNCARM (1 << 6)
516#define SYNCCLRSTKY (1 << 5)
517#define SYNCCLRLAST (1 << 4)
518#define SYNCMODE(x) (((x) & 0xF) << 0)
523#define REFBUSY (1 << 7)
524#define REFLOCK (1 << 3)
525#define REFROTA (1 << 2)
526#define REFWLIM (1 << 1)
527#define REFTRIP (1 << 0)
532#define CURRUNDER (1 << 7)
533#define CURROVER (1 << 6)
534#define CURRERROR_H (1 << 0)
539#define THRMOLD (1 << 7)
540#define THRMOVER (1 << 4)
541#define THRMPOS (1 << 3)
542#define THRMZERO (1 << 2)
543#define THRMNEG (1 << 1)
544#define THRMUNDER (1 << 0)
549#define DACGAIN_IM0(x) (((x) & 0x3) << 0)
554#define DACGAIN_IM1(x) (((x) & 0x3) << 0)
559#define DACGAIN_IM2(x) (((x) & 0x3) << 0)
564#define DACGAIN_IM3(x) (((x) & 0x3) << 0)
569#define ENB_DACLDO3 (1 << 7)
570#define ENB_DACLDO2 (1 << 6)
571#define ENB_DACLDO1 (1 << 5)
572#define ENB_DACLDO0 (1 << 4)
577#define STAT_LDO3 (1 << 3)
578#define STAT_LDO2 (1 << 2)
579#define STAT_LDO1 (1 << 1)
580#define STAT_LDO0 (1 << 0)
585#define SHUFFLE_MSB0 (1 << 2)
586#define SHUFFLE_ISB0 (1 << 1)
591#define SHUFFLE_MSB1 (1 << 2)
592#define SHUFFLE_ISB1 (1 << 1)
597#define SHUFFLE_MSB2 (1 << 2)
598#define SHUFFLE_ISB2 (1 << 1)
603#define SHUFFLE_MSB3 (1 << 2)
604#define SHUFFLE_ISB3 (1 << 1)
609#define NCOCLRARM (1 << 7)
610#define NCOCLRMTCH (1 << 5)
611#define NCOCLRPASS (1 << 4)
612#define NCOCLRFAIL (1 << 3)
613#define NCOCLRMODE(x) (((x) & 0x3) << 0)
618#define PA_THRESH_MSB(x) (((x) & 0x1F) << 0)
623#define PA_ENABLE (1 << 7)
624#define PA_BUS_SWAP (1 << 6)
625#define PA_AVG_TIME(x) (((x) & 0xF) << 0)
630#define PA_POWER_MSB(x) (((x) & 0x1F) << 0)
635#define PD_CLK01 (1 << 7)
636#define PD_CLK23 (1 << 6)
637#define PD_CLK_DIG (1 << 5)
638#define PD_PCLK (1 << 4)
639#define PD_CLK_REC (1 << 3)
644#define PD_SYSREF (1 << 4)
645#define HYS_ON (1 << 3)
646#define SYSREF_RISE (1 << 2)
647#define HYS_CNTRL1(x) (((x) & 0x3) << 0)
652#define SYNTH_RECAL (1 << 7)
653#define ENABLE_SYNTH (1 << 4)
658#define CP_CAL_VALID (1 << 5)
659#define RFPLL_LOCK (1 << 1)
664#define LF_C2_WORD(x) (((x) & 0xF) << 4)
665#define LF_C1_WORD(x) (((x) & 0xF) << 0)
670#define LF_R1_WORD(x) (((x) & 0xF) << 4)
671#define LF_C3_WORD(x) (((x) & 0xF) << 0)
676#define LF_BYPASS_R3 (1 << 7)
677#define LF_BYPASS_R1 (1 << 6)
678#define LF_BYPASS_C2 (1 << 5)
679#define LF_BYPASS_C1 (1 << 4)
680#define LF_R3_WORD(x) (((x) & 0xF) << 0)
685#define CP_CURRENT(x) (((x) & 0x3F) << 0)
690#define LO_DIV_MODE(x) (((x) & 0x3) << 0)
695#define REF_DIVRATE(x) (((x) & 0x7) << 0)
700#define INIT_SWEEP_ERR_DAC (1 << 1)
701#define MSB_SWEEP_ERR_DAC (1 << 0)
706#define CAL_MSB_TAC(x) (((x) & 0x7) << 0)
711#define CAL_START_GL (1 << 1)
712#define CAL_EN_GL (1 << 0)
717#define CAL_MSBLVLHI(x) (((x) & 0x3F) << 0)
722#define CAL_MSBLVLLO(x) (((x) & 0x3F) << 0)
727#define CAL_LTAC_THRES(x) (((x) & 0x7) << 3)
728#define CAL_TAC_THRES(x) (((x) & 0x7) << 0)
733#define MSB_GLOBAL_SUBAVG(x) (((x) & 0x3) << 6)
734#define GLOBAL_AVG_CNT(x) (((x) & 0x7) << 3)
735#define LOCAL_AVRG_CNT(x) (((x) & 0x7) << 0)
740#define CAL_CLKDIV(x) (((x) & 0xF) << 0)
745#define CAL_INDX(x) (((x) & 0xF) << 0)
750#define CAL_FIN (1 << 7)
751#define CAL_ACTIVE (1 << 6)
752#define CAL_ERRHI (1 << 5)
753#define CAL_ERRLO (1 << 4)
754#define CAL_TXDACBYDAC (1 << 3)
755#define CAL_START (1 << 1)
756#define CAL_EN (1 << 0)
761#define CAL_ADDR(x) (((x) & 0x3F) << 0)
766#define CAL_DATA(x) (((x) & 0x3F) << 0)
771#define CAL_UPDATE (1 << 7)
776#define BINARY_FORMAT (1 << 7)
781#define INVSINC_ENABLE (1 << 7)
782#define DIG_GAIN_ENABLE (1 << 5)
783#define PHASE_ADJ_ENABLE (1 << 4)
784#define SEL_SIDEBAND (1 << 1)
785#define I_TO_Q (1 << 0)
786#define MODULATION_TYPE(x) (((x) & 0x3) << 2)
787#define MODULATION_TYPE_MASK (0x03 << 2)
792#define INTERP_MODE(x) (((x) & 0x7) << 0)
797#define FTW_UPDATE_ACK (1 << 1)
798#define FTW_UPDATE_REQ (1 << 0)
803#define TX_DIG_CLK_PD (1 << 0)
808#define GP_PA_ON_INVERT (1 << 2)
809#define GP_PA_CTRL (1 << 1)
810#define TXEN_SM_EN (1 << 0)
811#define PA_FALL(x) (((x) & 0x3) << 6)
812#define PA_RISE(x) (((x) & 0x3) << 4)
817#define DIG_FALL(x) (((x) & 0x3) << 6)
818#define DIG_RISE(x) (((x) & 0x3) << 4)
819#define DAC_FALL(x) (((x) & 0x3) << 2)
820#define DAC_RISE(x) (((x) & 0x3) << 0)
825#define DACOUT_SHUTDOWN (1 << 1)
826#define DACOUT_ON_TRIGGER (1 << 0)
831#define PROTECT_MODE (1 << 7)
832#define DACOFF_AVG_PW (1 << 0)
837#define ADC_TESTMODE (1 << 7)
838#define AUXADC_ENABLE (1 << 0)
839#define FS_CURRENT(x) (((x) & 0x7) << 4)
840#define REF_CURRENT(x) (((x) & 0x7) << 1)
845#define SELECT_CLKDIG (1 << 3)
846#define EN_DIV2 (1 << 2)
847#define INCAP_CTRL(x) (((x) & 0x3) << 0)
852#define DIE_TEMP_UPDATE (1 << 0)
857#define DISABLE_NOISE (1 << 1)
858#define DC_OFFSET_ON (1 << 0)
863#define IPATH_DC_OFFSET_2PART(x) (((x) & 0x1F) << 0)
868#define QPATH_DC_OFFSET_2PART(x) (((x) & 0x1F) << 0)
873#define IDAC_DIG_GAIN1(x) (((x) & 0xF) << 0)
878#define QDAC_DIG_GAIN1(x) (((x) & 0xF) << 0)
883#define GAIN_RAMP_UP_STP1(x) (((x) & 0xF) << 0)
888#define GAIN_RAMP_DOWN_STP1(x) (((x) & 0xF) << 0)
893#define RESET_BLSM (1 << 7)
894#define EN_FORCE_GAIN_SOFT_OFF (1 << 4)
895#define GAIN_SOFT_OFF (1 << 3)
896#define GAIN_SOFT_ON (1 << 2)
897#define EN_FORCE_GAIN_SOFT_ON (1 << 1)
902#define SOFT_OFF_DONE (1 << 5)
903#define SOFT_ON_DONE (1 << 4)
904#define GAIN_SOFT_OFF_RB (1 << 3)
905#define GAIN_SOFT_ON_RB (1 << 2)
906#define SOFT_OFF_EN_RB (1 << 1)
907#define SOFT_ON_EN_RB (1 << 0)
908#define SOFTBLANKRB(x) (((x) & 0x3) << 6)
913#define PRBS_GOOD_Q (1 << 7)
914#define PRBS_GOOD_I (1 << 6)
915#define PRBS_INV_Q (1 << 4)
916#define PRBS_INV_I (1 << 3)
917#define PRBS_MODE (1 << 2)
918#define PRBS_RESET (1 << 1)
919#define PRBS_EN (1 << 0)
924#define VCO_VAR(x) (((x) & 0xF) << 0)
929#define VCO_BIAS_REF(x) (((x) & 0x7) << 0)
934#define VCO_CAL_REF_MON (1 << 3)
935#define VCO_CAL_REF_TCF(x) (((x) & 0x7) << 0)
940#define VCO_VAR_REF_TCF(x) (((x) & 0x7) << 4)
941#define VCO_VAR_OFF(x) (((x) & 0xF) << 0)
946#define SPIDRV(x) (((x) & 0xF) << 0)
951#define DUTYCYCLEON (1 << 0)
956#define ATEST_EN (1 << 0)
957#define ATEST_TOPVSEL(x) (((x) & 0x3) << 5)
958#define ATEST_DACSEL(x) (((x) & 0x3) << 3)
959#define ATEST_VSEL(x) (((x) & 0x3) << 1)
964#define EN_CLKDIV (1 << 3)
965#define ASPI_OSC_RATE (1 << 2)
966#define ASPI_CLK_SRC (1 << 1)
967#define EN_ASPI_OSC (1 << 0)
972#define SPI_PD_MASTER (1 << 0)
977#define SPI_SYNC1_PD (1 << 1)
978#define SPI_SYNC2_PD (1 << 0)
983#define SPI_ENHALFRATE (1 << 5)
984#define SPI_DIVISION_RATE(x) (((x) & 0x3) << 1)
989#define SPI_EQ_CONFIG1(x) (((x) & 0xF) << 4)
990#define SPI_EQ_CONFIG0(x) (((x) & 0xF) << 0)
995#define SPI_EQ_CONFIG3(x) (((x) & 0xF) << 4)
996#define SPI_EQ_CONFIG2(x) (((x) & 0xF) << 0)
1001#define SPI_EQ_CONFIG5(x) (((x) & 0xF) << 4)
1002#define SPI_EQ_CONFIG4(x) (((x) & 0xF) << 0)
1007#define SPI_EQ_CONFIG7(x) (((x) & 0xF) << 4)
1008#define SPI_EQ_CONFIG6(x) (((x) & 0xF) << 0)
1013#define SPI_EQ_EXTRA_SPI_LSBITS(x) (((x) & 0x3) << 6)
1014#define SPI_EQ_BIASPTAT(x) (((x) & 0x7) << 3)
1015#define SPI_EQ_BIASPLY(x) (((x) & 0x7) << 0)
1020#define SPI_RECAL_SYNTH (1 << 2)
1021#define SPI_ENABLE_SYNTH (1 << 0)
1026#define SPI_CP_CAL_VALID_RB (1 << 3)
1027#define SPI_PLL_LOCK_RB (1 << 0)
1032#define SPI_CDR_OVERSAMP(x) (((x) & 0x3) << 0)
1037#define SPI_I_TUNE_R_CAL_TERMBLK1 (1 << 0)
1042#define SPI_I_TUNE_R_CAL_TERMBLK2 (1 << 0)
1047#define CHECKSUM_MODE (1 << 6)
1048#define LINK_MODE (1 << 3)
1049#define SEL_REG_MAP_1 (1 << 2)
1050#define LINK_EN(x) (((x) & 0x3) << 0)
1055#define SUBCLASSV_LOCAL(x) (((x) & 0x7) << 0)
1060#define DYN_LINK_LATENCY_0(x) (((x) & 0x1F) << 0)
1065#define DYN_LINK_LATENCY_1(x) (((x) & 0x1F) << 0)
1070#define LMFC_DELAY_0(x) (((x) & 0x1F) << 0)
1075#define LMFC_DELAY_1(x) (((x) & 0x1F) << 0)
1080#define LMFC_VAR_0(x) (((x) & 0x1F) << 0)
1085#define LMFC_VAR_1(x) (((x) & 0x1F) << 0)
1090#define SRC_LANE1(x) (((x) & 0x7) << 3)
1091#define SRC_LANE0(x) (((x) & 0x7) << 0)
1096#define SRC_LANE3(x) (((x) & 0x7) << 3)
1097#define SRC_LANE2(x) (((x) & 0x7) << 0)
1102#define SRC_LANE5(x) (((x) & 0x7) << 3)
1103#define SRC_LANE4(x) (((x) & 0x7) << 0)
1108#define SRC_LANE7(x) (((x) & 0x7) << 3)
1109#define SRC_LANE6(x) (((x) & 0x7) << 0)
1114#define DRDL_FIFO_EMPTY (1 << 1)
1115#define DRDL_FIFO_FULL (1 << 0)
1120#define EOMF_MASK_1 (1 << 3)
1121#define EOMF_MASK_0 (1 << 2)
1122#define EOF_MASK_1 (1 << 1)
1123#define EOF_MASK_0 (1 << 0)
1128#define SYNCB_ERR_DUR(x) (((x) & 0xF) << 4)
1129#define SYNCB_SYNCREQ_DUR(x) (((x) & 0xF) << 0)
1134#define PHY_TEST_START (1 << 1)
1135#define PHY_TEST_RESET (1 << 0)
1136#define PHY_SRC_ERR_CNT(x) (((x) & 0x7) << 4)
1137#define PHY_PRBS_PAT_SEL(x) (((x) & 0x3) << 2)
1142#define SHORT_TPL_TEST_RESET (1 << 1)
1143#define SHORT_TPL_TEST_EN (1 << 0)
1144#define SHORT_TPL_SP_SEL(x) (((x) & 0x3) << 4)
1145#define SHORT_TPL_M_SEL(x) (((x) & 0x3) << 2)
1150#define SHORT_TPL_FAIL (1 << 0)
1155#define ADJCNT_RD(x) (((x) & 0xF) << 4)
1156#define BID_RD(x) (((x) & 0xF) << 0)
1161#define ADJDIR_RD (1 << 6)
1162#define PHADJ_RD (1 << 5)
1163#define LID0_RD(x) (((x) & 0x1F) << 0)
1168#define SCR_RD (1 << 7)
1169#define L_RD(x) (((x) & 0x1F) << 0)
1174#define K_RD(x) (((x) & 0x1F) << 0)
1179#define CS_RD(x) (((x) & 0x3) << 6)
1180#define N_RD(x) (((x) & 0x1F) << 0)
1185#define SUBCLASSV_RD(x) (((x) & 0x7) << 5)
1186#define NP_RD(x) (((x) & 0x1F) << 0)
1191#define JESDV_RD(x) (((x) & 0x7) << 5)
1192#define S_RD(x) (((x) & 0x1F) << 0)
1197#define HD_RD (1 << 7)
1198#define CF_RD(x) (((x) & 0x1F) << 0)
1203#define LID1_RD(x) (((x) & 0x1F) << 0)
1208#define LID2_RD(x) (((x) & 0x1F) << 0)
1213#define LID3_RD(x) (((x) & 0x1F) << 0)
1218#define LID4_RD(x) (((x) & 0x1F) << 0)
1223#define LID5_RD(x) (((x) & 0x1F) << 0)
1228#define LID6_RD(x) (((x) & 0x1F) << 0)
1233#define LID7_RD(x) (((x) & 0x1F) << 0)
1238#define ADJCNT(x) (((x) & 0xF) << 4)
1239#define BID(x) (((x) & 0xF) << 0)
1244#define ADJDIR (1 << 6)
1245#define PHADJ (1 << 5)
1246#define LID0(x) (((x) & 0x1F) << 0)
1252#define L(x) (((x) & 0x1F) << 0)
1257#define K(x) (((x) & 0x1F) << 0)
1262#define CS(x) (((x) & 0x3) << 6)
1263#define N(x) (((x) & 0x1F) << 0)
1268#define SUBCLASSV(x) (((x) & 0x7) << 5)
1269#define NP(x) (((x) & 0x1F) << 0)
1274#define JESDV(x) (((x) & 0x7) << 5)
1275#define S(x) (((x) & 0x1F) << 0)
1281#define CF(x) (((x) & 0x1F) << 0)
1286#define LANESEL(x) (((x) & 0x7) << 4)
1287#define CNTRSEL(x) (((x) & 0x3) << 0)
1292#define RST_IRQ_DIS (1 << 7)
1293#define DIS_ERR_CNTR_DIS (1 << 6)
1294#define RST_ERR_CNTR_DIS (1 << 5)
1295#define LANE_ADDR_DIS(x) (((x) & 0x7) << 0)
1300#define RST_IRQ_NIT (1 << 7)
1301#define DIS_ERR_CNTR_NIT (1 << 6)
1302#define RST_ERR_CNTR_NIT (1 << 5)
1303#define LANE_ADDR_NIT(x) (((x) & 0x7) << 0)
1308#define RST_IRQ_K (1 << 7)
1309#define DIS_ERR_CNTR_K (1 << 6)
1310#define RST_ERR_CNTR_K (1 << 5)
1311#define LANE_ADDR_K(x) (((x) & 0x7) << 0)
1316#define ILAS_MODE (1 << 7)
1317#define REPDATATEST (1 << 5)
1318#define QUETESTERR (1 << 4)
1319#define AUTO_ECNTR_RST (1 << 3)
1324#define BADDIS_FLAG_OR_MASK (1 << 7)
1325#define NITD_FLAG_OR_MASK (1 << 6)
1326#define UEKC_FLAG_OR_MASK (1 << 5)
1327#define INITIALLANESYNC_FLAG_OR_MASK (1 << 3)
1328#define BADCHECKSUM_FLAG_OR_MASK (1 << 2)
1329#define CODEGRPSYNC_FLAG_OR_MASK (1 << 0)
1334#define BAD_DIS_S (1 << 7)
1335#define NIT_DIS_S (1 << 6)
1336#define UNEX_K_S (1 << 5)
1337#define CMM_FLAG_OR_MASK (1 << 4)
1338#define CMM_ENABLE (1 << 3)
1341#define AD9144_MAX_DAC_RATE 2000000000UL
1342#define AD9144_CHIP_ID 0x44
1343#define AD9144_PRBS7 0x0
1344#define AD9144_PRBS15 0x1
1416 uint8_t exp_reg_data);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int32_t ad9144_remove(struct ad9144_dev *dev)
Definition ad9144.c:1226
int32_t ad9144_spi_read(struct ad9144_dev *dev, uint16_t reg_addr, uint8_t *reg_data)
ad9144_spi_read
Definition ad9144.c:78
int32_t ad9144_dac_calibrate(struct ad9144_dev *dev)
Definition ad9144.c:1188
int32_t ad9144_set_nco(struct ad9144_dev *dev, int32_t f_carrier_khz, int16_t phase)
Definition ad9144.c:372
int32_t ad9144_setup_legacy(struct ad9144_dev **device, const struct ad9144_init_param *init_param)
Definition ad9144.c:967
int32_t ad9144_short_pattern_test(struct ad9144_dev *dev, const struct ad9144_init_param *init_param)
ad9144_short_pattern_test
Definition ad9144.c:1279
int32_t ad9144_status(struct ad9144_dev *dev)
ad9144_status - return the status of the JESD interface
Definition ad9144.c:1240
int32_t ad9144_setup_jesd_fsm(struct ad9144_dev **device, const struct ad9144_init_param *init_param)
Definition ad9144.c:1124
int32_t ad9144_datapath_prbs_test(struct ad9144_dev *dev, const struct ad9144_init_param *init_param)
ad9144_datapath_prbs_test
Definition ad9144.c:1317
int32_t ad9144_spi_write(struct ad9144_dev *dev, uint16_t reg_addr, uint8_t reg_data)
ad9144_spi_write
Definition ad9144.c:101
int32_t ad9144_spi_check_status(struct ad9144_dev *dev, uint16_t reg_addr, uint8_t reg_mask, uint8_t exp_reg_data)
ad9144_spi_check_status
Definition ad9144.c:123
Header file of Delay functions.
Header file of SPI Interface.
Header file of utility functions.
uint32_t pll_dac_frequency_khz
Definition ad9144.h:1367
uint8_t pll_enable
Definition ad9144.h:1363
uint8_t num_lanes
Definition ad9144.h:1355
unsigned int fcenter_shift
Definition ad9144.h:1358
unsigned int interpolation
Definition ad9144.h:1357
uint32_t pll_ref_frequency_khz
Definition ad9144.h:1365
uint8_t lane_mux[8]
Definition ad9144.h:1360
struct jesd204_dev * jdev
Definition ad9144.h:1350
uint8_t num_converters
Definition ad9144.h:1354
uint32_t sample_rate_khz
Definition ad9144.h:1353
struct no_os_spi_desc * spi_desc
Definition ad9144.h:1348
struct jesd204_link link_config
Definition ad9144.h:1351
uint8_t jesd204_mode
Definition ad9144.h:1383
unsigned int fcenter_shift
Definition ad9144.h:1378
uint32_t lane_rate_kbps
Definition ad9144.h:1380
uint8_t jesd204_subclass
Definition ad9144.h:1384
uint8_t lane_mux[8]
Definition ad9144.h:1386
uint32_t pll_dac_frequency_khz
Definition ad9144.h:1393
uint32_t stpl_samples[4][4]
Definition ad9144.h:1379
uint8_t spi3wire
Definition ad9144.h:1374
uint32_t pll_ref_frequency_khz
Definition ad9144.h:1391
uint8_t num_lanes
Definition ad9144.h:1376
uint8_t interpolation
Definition ad9144.h:1377
struct no_os_spi_init_param spi_init
Definition ad9144.h:1372
uint8_t jesd204_scrambling
Definition ad9144.h:1385
uint8_t num_converters
Definition ad9144.h:1375
uint8_t pll_enable
Definition ad9144.h:1389
uint32_t prbs_type
Definition ad9144.h:1381
Definition ad9361_util.h:63
JESD204 link configuration settings.
Definition jesd204.h:105
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128