1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (C) 2018-2022 Marvell International Ltd.
4  */
5 
6 #include <mach/cvmx-regs.h>
7 #include <mach/octeon-model.h>
8 #include <mach/cvmx-fuse.h>
9 #include <mach/octeon-feature.h>
10 #include <mach/cvmx-qlm.h>
11 #include <mach/octeon_qlm.h>
12 
13 const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn63xx[] = {
14 	{ "prbs_err_cnt", 299, 252 },	   // prbs_err_cnt[47..0]
15 	{ "prbs_lock", 251, 251 },	   // prbs_lock
16 	{ "jtg_prbs_rst_n", 250, 250 },	   // jtg_prbs_rst_n
17 	{ "jtg_run_prbs31", 249, 249 },	   // jtg_run_prbs31
18 	{ "jtg_run_prbs7", 248, 248 },	   // jtg_run_prbs7
19 	{ "Unused1", 247, 245 },	   // 0
20 	{ "cfg_pwrup_set", 244, 244 },	   // cfg_pwrup_set
21 	{ "cfg_pwrup_clr", 243, 243 },	   // cfg_pwrup_clr
22 	{ "cfg_rst_n_set", 242, 242 },	   // cfg_rst_n_set
23 	{ "cfg_rst_n_clr", 241, 241 },	   // cfg_rst_n_clr
24 	{ "cfg_tx_idle_set", 240, 240 },   // cfg_tx_idle_set
25 	{ "cfg_tx_idle_clr", 239, 239 },   // cfg_tx_idle_clr
26 	{ "cfg_tx_byp", 238, 238 },	   // cfg_tx_byp
27 	{ "cfg_tx_byp_inv", 237, 237 },	   // cfg_tx_byp_inv
28 	{ "cfg_tx_byp_val", 236, 227 },	   // cfg_tx_byp_val[9..0]
29 	{ "cfg_loopback", 226, 226 },	   // cfg_loopback
30 	{ "shlpbck", 225, 224 },	   // shlpbck[1..0]
31 	{ "sl_enable", 223, 223 },	   // sl_enable
32 	{ "sl_posedge_sample", 222, 222 }, // sl_posedge_sample
33 	{ "trimen", 221, 220 },		   // trimen[1..0]
34 	{ "serdes_tx_byp", 219, 219 },	   // serdes_tx_byp
35 	{ "serdes_pll_byp", 218, 218 },	   // serdes_pll_byp
36 	{ "lowf_byp", 217, 217 },	   // lowf_byp
37 	{ "spdsel_byp", 216, 216 },	   // spdsel_byp
38 	{ "div4_byp", 215, 215 },	   // div4_byp
39 	{ "clkf_byp", 214, 208 },	   // clkf_byp[6..0]
40 	{ "Unused2", 207, 206 },	   // 0
41 	{ "biasdrv_hs_ls_byp", 205, 201 }, // biasdrv_hs_ls_byp[4..0]
42 	{ "tcoeff_hf_ls_byp", 200, 197 },  // tcoeff_hf_ls_byp[3..0]
43 	{ "biasdrv_hf_byp", 196, 192 },	   // biasdrv_hf_byp[4..0]
44 	{ "tcoeff_hf_byp", 191, 188 },	   // tcoeff_hf_byp[3..0]
45 	{ "Unused3", 187, 186 },	   // 0
46 	{ "biasdrv_lf_ls_byp", 185, 181 }, // biasdrv_lf_ls_byp[4..0]
47 	{ "tcoeff_lf_ls_byp", 180, 177 },  // tcoeff_lf_ls_byp[3..0]
48 	{ "biasdrv_lf_byp", 176, 172 },	   // biasdrv_lf_byp[4..0]
49 	{ "tcoeff_lf_byp", 171, 168 },	   // tcoeff_lf_byp[3..0]
50 	{ "Unused4", 167, 167 },	   // 0
51 	{ "interpbw", 166, 162 },	   // interpbw[4..0]
52 	{ "pll_cpb", 161, 159 },	   // pll_cpb[2..0]
53 	{ "pll_cps", 158, 156 },	   // pll_cps[2..0]
54 	{ "pll_diffamp", 155, 152 },	   // pll_diffamp[3..0]
55 	{ "Unused5", 151, 150 },	   // 0
56 	{ "cfg_rx_idle_set", 149, 149 },   // cfg_rx_idle_set
57 	{ "cfg_rx_idle_clr", 148, 148 },   // cfg_rx_idle_clr
58 	{ "cfg_rx_idle_thr", 147, 144 },   // cfg_rx_idle_thr[3..0]
59 	{ "cfg_com_thr", 143, 140 },	   // cfg_com_thr[3..0]
60 	{ "cfg_rx_offset", 139, 136 },	   // cfg_rx_offset[3..0]
61 	{ "cfg_skp_max", 135, 132 },	   // cfg_skp_max[3..0]
62 	{ "cfg_skp_min", 131, 128 },	   // cfg_skp_min[3..0]
63 	{ "cfg_fast_pwrup", 127, 127 },	   // cfg_fast_pwrup
64 	{ "Unused6", 126, 100 },	   // 0
65 	{ "detected_n", 99, 99 },	   // detected_n
66 	{ "detected_p", 98, 98 },	   // detected_p
67 	{ "dbg_res_rx", 97, 94 },	   // dbg_res_rx[3..0]
68 	{ "dbg_res_tx", 93, 90 },	   // dbg_res_tx[3..0]
69 	{ "cfg_tx_pol_set", 89, 89 },	   // cfg_tx_pol_set
70 	{ "cfg_tx_pol_clr", 88, 88 },	   // cfg_tx_pol_clr
71 	{ "cfg_rx_pol_set", 87, 87 },	   // cfg_rx_pol_set
72 	{ "cfg_rx_pol_clr", 86, 86 },	   // cfg_rx_pol_clr
73 	{ "cfg_rxd_set", 85, 85 },	   // cfg_rxd_set
74 	{ "cfg_rxd_clr", 84, 84 },	   // cfg_rxd_clr
75 	{ "cfg_rxd_wait", 83, 80 },	   // cfg_rxd_wait[3..0]
76 	{ "cfg_cdr_limit", 79, 79 },	   // cfg_cdr_limit
77 	{ "cfg_cdr_rotate", 78, 78 },	   // cfg_cdr_rotate
78 	{ "cfg_cdr_bw_ctl", 77, 76 },	   // cfg_cdr_bw_ctl[1..0]
79 	{ "cfg_cdr_trunc", 75, 74 },	   // cfg_cdr_trunc[1..0]
80 	{ "cfg_cdr_rqoffs", 73, 64 },	   // cfg_cdr_rqoffs[9..0]
81 	{ "cfg_cdr_inc2", 63, 58 },	   // cfg_cdr_inc2[5..0]
82 	{ "cfg_cdr_inc1", 57, 52 },	   // cfg_cdr_inc1[5..0]
83 	{ "fusopt_voter_sync", 51, 51 },   // fusopt_voter_sync
84 	{ "rndt", 50, 50 },		   // rndt
85 	{ "hcya", 49, 49 },		   // hcya
86 	{ "hyst", 48, 48 },		   // hyst
87 	{ "idle_dac", 47, 45 },		   // idle_dac[2..0]
88 	{ "bg_ref_sel", 44, 44 },	   // bg_ref_sel
89 	{ "ic50dac", 43, 39 },		   // ic50dac[4..0]
90 	{ "ir50dac", 38, 34 },		   // ir50dac[4..0]
91 	{ "tx_rout_comp_bypass", 33, 33 }, // tx_rout_comp_bypass
92 	{ "tx_rout_comp_value", 32, 29 },  // tx_rout_comp_value[3..0]
93 	{ "tx_res_offset", 28, 25 },	   // tx_res_offset[3..0]
94 	{ "rx_rout_comp_bypass", 24, 24 }, // rx_rout_comp_bypass
95 	{ "rx_rout_comp_value", 23, 20 },  // rx_rout_comp_value[3..0]
96 	{ "rx_res_offset", 19, 16 },	   // rx_res_offset[3..0]
97 	{ "rx_cap_gen2", 15, 12 },	   // rx_cap_gen2[3..0]
98 	{ "rx_eq_gen2", 11, 8 },	   // rx_eq_gen2[3..0]
99 	{ "rx_cap_gen1", 7, 4 },	   // rx_cap_gen1[3..0]
100 	{ "rx_eq_gen1", 3, 0 },		   // rx_eq_gen1[3..0]
101 	{ NULL, -1, -1 }
102 };
103 
104 const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn66xx[] = {
105 	{ "prbs_err_cnt", 303, 256 },	   // prbs_err_cnt[47..0]
106 	{ "prbs_lock", 255, 255 },	   // prbs_lock
107 	{ "jtg_prbs_rx_rst_n", 254, 254 }, // jtg_prbs_rx_rst_n
108 	{ "jtg_prbs_tx_rst_n", 253, 253 }, // jtg_prbs_tx_rst_n
109 	{ "jtg_prbs_mode", 252, 251 },	   // jtg_prbs_mode[252:251]
110 	{ "jtg_prbs_rst_n", 250, 250 },	   // jtg_prbs_rst_n
111 	{ "jtg_run_prbs31", 249,
112 	  249 }, // jtg_run_prbs31 - Use jtg_prbs_mode instead
113 	{ "jtg_run_prbs7", 248,
114 	  248 },		  // jtg_run_prbs7 - Use jtg_prbs_mode instead
115 	{ "Unused1", 247, 246 },  // 0
116 	{ "div5_byp", 245, 245 }, // div5_byp
117 	{ "cfg_pwrup_set", 244, 244 },	   // cfg_pwrup_set
118 	{ "cfg_pwrup_clr", 243, 243 },	   // cfg_pwrup_clr
119 	{ "cfg_rst_n_set", 242, 242 },	   // cfg_rst_n_set
120 	{ "cfg_rst_n_clr", 241, 241 },	   // cfg_rst_n_clr
121 	{ "cfg_tx_idle_set", 240, 240 },   // cfg_tx_idle_set
122 	{ "cfg_tx_idle_clr", 239, 239 },   // cfg_tx_idle_clr
123 	{ "cfg_tx_byp", 238, 238 },	   // cfg_tx_byp
124 	{ "cfg_tx_byp_inv", 237, 237 },	   // cfg_tx_byp_inv
125 	{ "cfg_tx_byp_val", 236, 227 },	   // cfg_tx_byp_val[9..0]
126 	{ "cfg_loopback", 226, 226 },	   // cfg_loopback
127 	{ "shlpbck", 225, 224 },	   // shlpbck[1..0]
128 	{ "sl_enable", 223, 223 },	   // sl_enable
129 	{ "sl_posedge_sample", 222, 222 }, // sl_posedge_sample
130 	{ "trimen", 221, 220 },		   // trimen[1..0]
131 	{ "serdes_tx_byp", 219, 219 },	   // serdes_tx_byp
132 	{ "serdes_pll_byp", 218, 218 },	   // serdes_pll_byp
133 	{ "lowf_byp", 217, 217 },	   // lowf_byp
134 	{ "spdsel_byp", 216, 216 },	   // spdsel_byp
135 	{ "div4_byp", 215, 215 },	   // div4_byp
136 	{ "clkf_byp", 214, 208 },	   // clkf_byp[6..0]
137 	{ "biasdrv_hs_ls_byp", 207, 203 }, // biasdrv_hs_ls_byp[4..0]
138 	{ "tcoeff_hf_ls_byp", 202, 198 },  // tcoeff_hf_ls_byp[4..0]
139 	{ "biasdrv_hf_byp", 197, 193 },	   // biasdrv_hf_byp[4..0]
140 	{ "tcoeff_hf_byp", 192, 188 },	   // tcoeff_hf_byp[4..0]
141 	{ "biasdrv_lf_ls_byp", 187, 183 }, // biasdrv_lf_ls_byp[4..0]
142 	{ "tcoeff_lf_ls_byp", 182, 178 },  // tcoeff_lf_ls_byp[4..0]
143 	{ "biasdrv_lf_byp", 177, 173 },	   // biasdrv_lf_byp[4..0]
144 	{ "tcoeff_lf_byp", 172, 168 },	   // tcoeff_lf_byp[4..0]
145 	{ "Unused4", 167, 167 },	   // 0
146 	{ "interpbw", 166, 162 },	   // interpbw[4..0]
147 	{ "pll_cpb", 161, 159 },	   // pll_cpb[2..0]
148 	{ "pll_cps", 158, 156 },	   // pll_cps[2..0]
149 	{ "pll_diffamp", 155, 152 },	   // pll_diffamp[3..0]
150 	{ "cfg_err_thr", 151, 150 },	   // cfg_err_thr
151 	{ "cfg_rx_idle_set", 149, 149 },   // cfg_rx_idle_set
152 	{ "cfg_rx_idle_clr", 148, 148 },   // cfg_rx_idle_clr
153 	{ "cfg_rx_idle_thr", 147, 144 },   // cfg_rx_idle_thr[3..0]
154 	{ "cfg_com_thr", 143, 140 },	   // cfg_com_thr[3..0]
155 	{ "cfg_rx_offset", 139, 136 },	   // cfg_rx_offset[3..0]
156 	{ "cfg_skp_max", 135, 132 },	   // cfg_skp_max[3..0]
157 	{ "cfg_skp_min", 131, 128 },	   // cfg_skp_min[3..0]
158 	{ "cfg_fast_pwrup", 127, 127 },	   // cfg_fast_pwrup
159 	{ "Unused6", 126, 101 },	   // 0
160 	{ "cfg_indep_dis", 100, 100 },	   // cfg_indep_dis
161 	{ "detected_n", 99, 99 },	   // detected_n
162 	{ "detected_p", 98, 98 },	   // detected_p
163 	{ "dbg_res_rx", 97, 94 },	   // dbg_res_rx[3..0]
164 	{ "dbg_res_tx", 93, 90 },	   // dbg_res_tx[3..0]
165 	{ "cfg_tx_pol_set", 89, 89 },	   // cfg_tx_pol_set
166 	{ "cfg_tx_pol_clr", 88, 88 },	   // cfg_tx_pol_clr
167 	{ "cfg_rx_pol_set", 87, 87 },	   // cfg_rx_pol_set
168 	{ "cfg_rx_pol_clr", 86, 86 },	   // cfg_rx_pol_clr
169 	{ "cfg_rxd_set", 85, 85 },	   // cfg_rxd_set
170 	{ "cfg_rxd_clr", 84, 84 },	   // cfg_rxd_clr
171 	{ "cfg_rxd_wait", 83, 80 },	   // cfg_rxd_wait[3..0]
172 	{ "cfg_cdr_limit", 79, 79 },	   // cfg_cdr_limit
173 	{ "cfg_cdr_rotate", 78, 78 },	   // cfg_cdr_rotate
174 	{ "cfg_cdr_bw_ctl", 77, 76 },	   // cfg_cdr_bw_ctl[1..0]
175 	{ "cfg_cdr_trunc", 75, 74 },	   // cfg_cdr_trunc[1..0]
176 	{ "cfg_cdr_rqoffs", 73, 64 },	   // cfg_cdr_rqoffs[9..0]
177 	{ "cfg_cdr_inc2", 63, 58 },	   // cfg_cdr_inc2[5..0]
178 	{ "cfg_cdr_inc1", 57, 52 },	   // cfg_cdr_inc1[5..0]
179 	{ "fusopt_voter_sync", 51, 51 },   // fusopt_voter_sync
180 	{ "rndt", 50, 50 },		   // rndt
181 	{ "hcya", 49, 49 },		   // hcya
182 	{ "hyst", 48, 48 },		   // hyst
183 	{ "idle_dac", 47, 45 },		   // idle_dac[2..0]
184 	{ "bg_ref_sel", 44, 44 },	   // bg_ref_sel
185 	{ "ic50dac", 43, 39 },		   // ic50dac[4..0]
186 	{ "ir50dac", 38, 34 },		   // ir50dac[4..0]
187 	{ "tx_rout_comp_bypass", 33, 33 }, // tx_rout_comp_bypass
188 	{ "tx_rout_comp_value", 32, 29 },  // tx_rout_comp_value[3..0]
189 	{ "tx_res_offset", 28, 25 },	   // tx_res_offset[3..0]
190 	{ "rx_rout_comp_bypass", 24, 24 }, // rx_rout_comp_bypass
191 	{ "rx_rout_comp_value", 23, 20 },  // rx_rout_comp_value[3..0]
192 	{ "rx_res_offset", 19, 16 },	   // rx_res_offset[3..0]
193 	{ "rx_cap_gen2", 15, 12 },	   // rx_cap_gen2[3..0]
194 	{ "rx_eq_gen2", 11, 8 },	   // rx_eq_gen2[3..0]
195 	{ "rx_cap_gen1", 7, 4 },	   // rx_cap_gen1[3..0]
196 	{ "rx_eq_gen1", 3, 0 },		   // rx_eq_gen1[3..0]
197 	{ NULL, -1, -1 }
198 };
199 
200 const __cvmx_qlm_jtag_field_t __cvmx_qlm_jtag_field_cn68xx[] = {
201 	{ "prbs_err_cnt", 303, 256 },	   // prbs_err_cnt[47..0]
202 	{ "prbs_lock", 255, 255 },	   // prbs_lock
203 	{ "jtg_prbs_rx_rst_n", 254, 254 }, // jtg_prbs_rx_rst_n
204 	{ "jtg_prbs_tx_rst_n", 253, 253 }, // jtg_prbs_tx_rst_n
205 	{ "jtg_prbs_mode", 252, 251 },	   // jtg_prbs_mode[252:251]
206 	{ "jtg_prbs_rst_n", 250, 250 },	   // jtg_prbs_rst_n
207 	{ "jtg_run_prbs31", 249,
208 	  249 }, // jtg_run_prbs31 - Use jtg_prbs_mode instead
209 	{ "jtg_run_prbs7", 248,
210 	  248 },		 // jtg_run_prbs7 - Use jtg_prbs_mode instead
211 	{ "Unused1", 247, 245 }, // 0
212 	{ "cfg_pwrup_set", 244, 244 },	   // cfg_pwrup_set
213 	{ "cfg_pwrup_clr", 243, 243 },	   // cfg_pwrup_clr
214 	{ "cfg_rst_n_set", 242, 242 },	   // cfg_rst_n_set
215 	{ "cfg_rst_n_clr", 241, 241 },	   // cfg_rst_n_clr
216 	{ "cfg_tx_idle_set", 240, 240 },   // cfg_tx_idle_set
217 	{ "cfg_tx_idle_clr", 239, 239 },   // cfg_tx_idle_clr
218 	{ "cfg_tx_byp", 238, 238 },	   // cfg_tx_byp
219 	{ "cfg_tx_byp_inv", 237, 237 },	   // cfg_tx_byp_inv
220 	{ "cfg_tx_byp_val", 236, 227 },	   // cfg_tx_byp_val[9..0]
221 	{ "cfg_loopback", 226, 226 },	   // cfg_loopback
222 	{ "shlpbck", 225, 224 },	   // shlpbck[1..0]
223 	{ "sl_enable", 223, 223 },	   // sl_enable
224 	{ "sl_posedge_sample", 222, 222 }, // sl_posedge_sample
225 	{ "trimen", 221, 220 },		   // trimen[1..0]
226 	{ "serdes_tx_byp", 219, 219 },	   // serdes_tx_byp
227 	{ "serdes_pll_byp", 218, 218 },	   // serdes_pll_byp
228 	{ "lowf_byp", 217, 217 },	   // lowf_byp
229 	{ "spdsel_byp", 216, 216 },	   // spdsel_byp
230 	{ "div4_byp", 215, 215 },	   // div4_byp
231 	{ "clkf_byp", 214, 208 },	   // clkf_byp[6..0]
232 	{ "biasdrv_hs_ls_byp", 207, 203 }, // biasdrv_hs_ls_byp[4..0]
233 	{ "tcoeff_hf_ls_byp", 202, 198 },  // tcoeff_hf_ls_byp[4..0]
234 	{ "biasdrv_hf_byp", 197, 193 },	   // biasdrv_hf_byp[4..0]
235 	{ "tcoeff_hf_byp", 192, 188 },	   // tcoeff_hf_byp[4..0]
236 	{ "biasdrv_lf_ls_byp", 187, 183 }, // biasdrv_lf_ls_byp[4..0]
237 	{ "tcoeff_lf_ls_byp", 182, 178 },  // tcoeff_lf_ls_byp[4..0]
238 	{ "biasdrv_lf_byp", 177, 173 },	   // biasdrv_lf_byp[4..0]
239 	{ "tcoeff_lf_byp", 172, 168 },	   // tcoeff_lf_byp[4..0]
240 	{ "Unused4", 167, 167 },	   // 0
241 	{ "interpbw", 166, 162 },	   // interpbw[4..0]
242 	{ "pll_cpb", 161, 159 },	   // pll_cpb[2..0]
243 	{ "pll_cps", 158, 156 },	   // pll_cps[2..0]
244 	{ "pll_diffamp", 155, 152 },	   // pll_diffamp[3..0]
245 	{ "cfg_err_thr", 151, 150 },	   // cfg_err_thr
246 	{ "cfg_rx_idle_set", 149, 149 },   // cfg_rx_idle_set
247 	{ "cfg_rx_idle_clr", 148, 148 },   // cfg_rx_idle_clr
248 	{ "cfg_rx_idle_thr", 147, 144 },   // cfg_rx_idle_thr[3..0]
249 	{ "cfg_com_thr", 143, 140 },	   // cfg_com_thr[3..0]
250 	{ "cfg_rx_offset", 139, 136 },	   // cfg_rx_offset[3..0]
251 	{ "cfg_skp_max", 135, 132 },	   // cfg_skp_max[3..0]
252 	{ "cfg_skp_min", 131, 128 },	   // cfg_skp_min[3..0]
253 	{ "cfg_fast_pwrup", 127, 127 },	   // cfg_fast_pwrup
254 	{ "Unused6", 126, 100 },	   // 0
255 	{ "detected_n", 99, 99 },	   // detected_n
256 	{ "detected_p", 98, 98 },	   // detected_p
257 	{ "dbg_res_rx", 97, 94 },	   // dbg_res_rx[3..0]
258 	{ "dbg_res_tx", 93, 90 },	   // dbg_res_tx[3..0]
259 	{ "cfg_tx_pol_set", 89, 89 },	   // cfg_tx_pol_set
260 	{ "cfg_tx_pol_clr", 88, 88 },	   // cfg_tx_pol_clr
261 	{ "cfg_rx_pol_set", 87, 87 },	   // cfg_rx_pol_set
262 	{ "cfg_rx_pol_clr", 86, 86 },	   // cfg_rx_pol_clr
263 	{ "cfg_rxd_set", 85, 85 },	   // cfg_rxd_set
264 	{ "cfg_rxd_clr", 84, 84 },	   // cfg_rxd_clr
265 	{ "cfg_rxd_wait", 83, 80 },	   // cfg_rxd_wait[3..0]
266 	{ "cfg_cdr_limit", 79, 79 },	   // cfg_cdr_limit
267 	{ "cfg_cdr_rotate", 78, 78 },	   // cfg_cdr_rotate
268 	{ "cfg_cdr_bw_ctl", 77, 76 },	   // cfg_cdr_bw_ctl[1..0]
269 	{ "cfg_cdr_trunc", 75, 74 },	   // cfg_cdr_trunc[1..0]
270 	{ "cfg_cdr_rqoffs", 73, 64 },	   // cfg_cdr_rqoffs[9..0]
271 	{ "cfg_cdr_inc2", 63, 58 },	   // cfg_cdr_inc2[5..0]
272 	{ "cfg_cdr_inc1", 57, 52 },	   // cfg_cdr_inc1[5..0]
273 	{ "fusopt_voter_sync", 51, 51 },   // fusopt_voter_sync
274 	{ "rndt", 50, 50 },		   // rndt
275 	{ "hcya", 49, 49 },		   // hcya
276 	{ "hyst", 48, 48 },		   // hyst
277 	{ "idle_dac", 47, 45 },		   // idle_dac[2..0]
278 	{ "bg_ref_sel", 44, 44 },	   // bg_ref_sel
279 	{ "ic50dac", 43, 39 },		   // ic50dac[4..0]
280 	{ "ir50dac", 38, 34 },		   // ir50dac[4..0]
281 	{ "tx_rout_comp_bypass", 33, 33 }, // tx_rout_comp_bypass
282 	{ "tx_rout_comp_value", 32, 29 },  // tx_rout_comp_value[3..0]
283 	{ "tx_res_offset", 28, 25 },	   // tx_res_offset[3..0]
284 	{ "rx_rout_comp_bypass", 24, 24 }, // rx_rout_comp_bypass
285 	{ "rx_rout_comp_value", 23, 20 },  // rx_rout_comp_value[3..0]
286 	{ "rx_res_offset", 19, 16 },	   // rx_res_offset[3..0]
287 	{ "rx_cap_gen2", 15, 12 },	   // rx_cap_gen2[3..0]
288 	{ "rx_eq_gen2", 11, 8 },	   // rx_eq_gen2[3..0]
289 	{ "rx_cap_gen1", 7, 4 },	   // rx_cap_gen1[3..0]
290 	{ "rx_eq_gen1", 3, 0 },		   // rx_eq_gen1[3..0]
291 	{ NULL, -1, -1 }
292 };
293