Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright(c) 2024-2026 Beijing WangXun Technology Co., Ltd.
3 : : */
4 : :
5 : : #ifndef _TXGBE_E56_H_
6 : : #define _TXGBE_E56_H_
7 : :
8 : : #include "txgbe_type.h"
9 : : #include "txgbe_hw.h"
10 : : #include "txgbe_osdep.h"
11 : : #include "txgbe_phy.h"
12 : :
13 : : #define EPHY_RREG(REG) \
14 : : do {\
15 : : rdata = 0; \
16 : : rdata = rd32_ephy(hw, REG##_ADDR); \
17 : : } while (0)
18 : :
19 : : #define EPCS_RREG(REG) \
20 : : do {\
21 : : rdata = 0; \
22 : : rdata = rd32_epcs(hw, REG##_ADDR); \
23 : : } while (0)
24 : :
25 : : #define EPHY_WREG(REG) wr32_ephy(hw, REG##_ADDR, rdata)
26 : : #define EPCS_WREG(REG) wr32_epcs(hw, REG##_ADDR, rdata)
27 : :
28 : : #define txgbe_e56_ephy_config(reg, field, val) \
29 : : do { \
30 : : EPHY_RREG(reg); \
31 : : EPHY_XFLD(reg, field) = (val); \
32 : : EPHY_WREG(reg); \
33 : : } while (0)
34 : :
35 : : #define txgbe_e56_epcs_config(reg, field, val) \
36 : : do { \
37 : : EPCS_RREG(reg); \
38 : : EPCS_XFLD(reg, field) = (val); \
39 : : EPCS_WREG(reg); \
40 : : } while (0)
41 : :
42 : : /*
43 : : * LAN GPIO define for SFP+ module
44 : : * -- Fields
45 : : */
46 : : #define SFP1_RS0 5, 5
47 : : #define SFP1_RS1 4, 4
48 : : #define SFP1_RX_LOS 3, 3
49 : : #define SFP1_MOD_ABS 2, 2
50 : : #define SFP1_TX_DISABLE 1, 1
51 : : #define SFP1_TX_FAULT 0, 0
52 : :
53 : : #define EPHY_XFLD(REG, FLD) (((REG *)&rdata)->FLD)
54 : : #define EPCS_XFLD(REG, FLD) (((REG *)&rdata)->FLD)
55 : :
56 : : typedef union {
57 : : struct {
58 : : u32 ana_refclk_buf_daisy_en_i : 1;
59 : : u32 ana_refclk_buf_pad_en_i : 1;
60 : : u32 ana_vddinoff_dcore_dig_o : 1;
61 : : u32 ana_lcpll_en_clkout_hf_left_top_i : 1;
62 : : u32 ana_lcpll_en_clkout_hf_right_top_i : 1;
63 : : u32 ana_lcpll_en_clkout_hf_left_bot_i : 1;
64 : : u32 ana_lcpll_en_clkout_hf_right_bot_i : 1;
65 : : u32 ana_lcpll_en_clkout_lf_left_top_i : 1;
66 : : u32 ana_lcpll_en_clkout_lf_right_top_i : 1;
67 : : u32 ana_lcpll_en_clkout_lf_left_bot_i : 1;
68 : : u32 ana_lcpll_en_clkout_lf_right_bot_i : 1;
69 : : u32 ana_bg_en_i : 1;
70 : : u32 ana_en_rescal_i : 1;
71 : : u32 ana_rescal_comp_o : 1;
72 : : u32 ana_en_ldo_core_i : 1;
73 : : u32 ana_lcpll_hf_en_bias_i : 1;
74 : : u32 ana_lcpll_hf_en_loop_i : 1;
75 : : u32 ana_lcpll_hf_en_cp_i : 1;
76 : : u32 ana_lcpll_hf_set_lpf_i : 1;
77 : : u32 ana_lcpll_hf_en_vco_i : 1;
78 : : u32 ana_lcpll_hf_vco_amp_status_o : 1;
79 : : u32 ana_lcpll_hf_en_odiv_i : 1;
80 : : u32 ana_lcpll_lf_en_bias_i : 1;
81 : : u32 ana_lcpll_lf_en_loop_i : 1;
82 : : u32 ana_lcpll_lf_en_cp_i : 1;
83 : : u32 ana_lcpll_lf_set_lpf_i : 1;
84 : : u32 ana_lcpll_lf_en_vco_i : 1;
85 : : u32 ana_lcpll_lf_vco_amp_status_o : 1;
86 : : u32 ana_lcpll_lf_en_odiv_i : 1;
87 : : u32 ana_lcpll_hf_refclk_select_i : 1;
88 : : u32 ana_lcpll_lf_refclk_select_i : 1;
89 : : u32 rsvd0 : 1;
90 : : };
91 : : u32 reg;
92 : : } E56G_CMS_ANA_OVRDVAL_0;
93 : :
94 : : /* AMLITE ETH PHY Registers */
95 : : #define VR_PCS_DIG_CTRL1 0x38000
96 : : #define SR_PCS_CTRL1 0x30000
97 : : #define SR_PCS_CTRL2 0x30007
98 : : #define SR_PMA_CTRL2 0x10007
99 : : #define VR_PCS_DIG_CTRL3 0x38003
100 : : #define VR_PMA_CTRL3 0x180a8
101 : : #define VR_PMA_CTRL4 0x180a9
102 : : #define SR_PMA_RS_FEC_CTRL 0x100c8
103 : : #define CMS_ANA_OVRDEN0 0xca4
104 : : #define ANA_OVRDEN0 0xca4
105 : : #define ANA_OVRDEN1 0xca8
106 : : #define ANA_OVRDVAL0 0xcb0
107 : : #define ANA_OVRDVAL5 0xcc4
108 : : #define OSC_CAL_N_CDR4 0x14
109 : : #define PLL0_CFG0 0xc10
110 : : #define PLL0_CFG2 0xc18
111 : : #define PLL0_DIV_CFG0 0xc1c
112 : : #define PLL1_CFG0 0xc48
113 : : #define PLL1_CFG2 0xc50
114 : : #define CMS_PIN_OVRDEN0 0xc8c
115 : : #define CMS_PIN_OVRDVAL0 0xc94
116 : : #define DATAPATH_CFG0 0x142c
117 : : #define DATAPATH_CFG1 0x1430
118 : : #define AN_CFG1 0x1438
119 : : #define SPARE52 0x16fc
120 : : #define RXS_CFG0 0x000
121 : : #define PMD_CFG0 0x1400
122 : : #define SR_PCS_STS1 0x30001
123 : : #define PMD_CTRL_FSM_TX_STAT0 0x14dc
124 : : #define CMS_ANA_OVRDEN0 0xca4
125 : : #define CMS_ANA_OVRDEN1 0xca8
126 : : #define CMS_ANA_OVRDVAL2 0xcb8
127 : : #define CMS_ANA_OVRDVAL4 0xcc0
128 : : #define CMS_ANA_OVRDVAL5 0xcc4
129 : : #define CMS_ANA_OVRDVAL7 0xccc
130 : : #define CMS_ANA_OVRDVAL9 0xcd4
131 : : #define CMS_ANA_OVRDVAL10 0xcd8
132 : :
133 : : #define TXS_TXS_CFG1 0x804
134 : : #define TXS_WKUP_CNT 0x808
135 : : #define TXS_PIN_OVRDEN0 0x80c
136 : : #define TXS_PIN_OVRDVAL6 0x82c
137 : : #define TXS_ANA_OVRDVAL1 0x854
138 : :
139 : : #define E56PHY_CMS_BASE_ADDR 0x0C00
140 : :
141 : : #define E56PHY_CMS_PIN_OVRDEN_0_ADDR (E56PHY_CMS_BASE_ADDR + 0x8C)
142 : : #define E56PHY_CMS_PIN_OVRDEN_0_OVRD_EN_PLL0_TX_SIGNAL_TYPE_I 12, 12
143 : :
144 : : #define E56PHY_CMS_PIN_OVRDVAL_0_ADDR (E56PHY_CMS_BASE_ADDR + 0x94)
145 : : #define E56PHY_CMS_PIN_OVRDVAL_0_INT_PLL0_TX_SIGNAL_TYPE_I 10, 10
146 : :
147 : : #define E56PHY_CMS_ANA_OVRDEN_0_ADDR (E56PHY_CMS_BASE_ADDR + 0xA4)
148 : :
149 : : #define E56PHY_CMS_ANA_OVRDEN_0_OVRD_EN_ANA_LCPLL_HF_VCO_SWING_CTRL_I 29, 29
150 : :
151 : : #define E56PHY_CMS_ANA_OVRDEN_1_ADDR (E56PHY_CMS_BASE_ADDR + 0xA8)
152 : : #define E56PHY_CMS_ANA_OVRDEN_1_OVRD_EN_ANA_LCPLL_HF_TEST_IN_I 4, 4
153 : :
154 : : #define E56PHY_CMS_ANA_OVRDVAL_2_ADDR (E56PHY_CMS_BASE_ADDR + 0xB8)
155 : :
156 : : #define E56PHY_CMS_ANA_OVRDVAL_2_ANA_LCPLL_HF_VCO_SWING_CTRL_I 31, 28
157 : :
158 : : #define E56PHY_CMS_ANA_OVRDVAL_4_ADDR (E56PHY_CMS_BASE_ADDR + 0xC0)
159 : :
160 : : #define E56PHY_TXS_BASE_ADDR 0x0800
161 : : #define E56PHY_TXS1_BASE_ADDR 0x0900
162 : : #define E56PHY_TXS2_BASE_ADDR 0x0A00
163 : : #define E56PHY_TXS3_BASE_ADDR 0x0B00
164 : : #define E56PHY_TXS_OFFSET 0x0100
165 : :
166 : : #define E56PHY_PMD_RX_OFFSET 0x02C
167 : :
168 : : #define E56PHY_TXS_TXS_CFG_1_ADDR (E56PHY_TXS_BASE_ADDR + 0x04)
169 : : #define E56PHY_TXS_TXS_CFG_1_ADAPTATION_WAIT_CNT_X256 7, 4
170 : : #define E56PHY_TXS_WKUP_CNT_ADDR (E56PHY_TXS_BASE_ADDR + 0x08)
171 : : #define E56PHY_TXS_WKUP_CNTLDO_WKUP_CNT_X32 7, 0
172 : : #define E56PHY_TXS_WKUP_CNTDCC_WKUP_CNT_X32 15, 8
173 : :
174 : : #define E56PHY_TXS_PIN_OVRDEN_0_ADDR (E56PHY_TXS_BASE_ADDR + 0x0C)
175 : : #define E56PHY_TXS_PIN_OVRDEN_0_OVRD_EN_TX0_EFUSE_BITS_I 28, 28
176 : :
177 : : #define E56PHY_TXS_PIN_OVRDVAL_6_ADDR (E56PHY_TXS_BASE_ADDR + 0x2C)
178 : :
179 : : #define E56PHY_TXS_ANA_OVRDVAL_1_ADDR (E56PHY_TXS_BASE_ADDR + 0x54)
180 : : #define E56PHY_TXS_ANA_OVRDVAL_1_ANA_TEST_DAC_I 23, 8
181 : :
182 : : #define E56PHY_TXS_ANA_OVRDEN_0_ADDR (E56PHY_TXS_BASE_ADDR + 0x44)
183 : : #define E56PHY_TXS_ANA_OVRDEN_0_OVRD_EN_ANA_TEST_DAC_I 13, 13
184 : :
185 : : #define E56PHY_RXS_BASE_ADDR 0x0000
186 : : #define E56PHY_RXS1_BASE_ADDR 0x0200
187 : : #define E56PHY_RXS2_BASE_ADDR 0x0400
188 : : #define E56PHY_RXS3_BASE_ADDR 0x0600
189 : : #define E56PHY_RXS_OFFSET 0x0200
190 : :
191 : : #define E56PHY_RXS_RXS_CFG_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x000)
192 : : #define E56PHY_RXS_RXS_CFG_0_DSER_DATA_SEL 1, 1
193 : : #define E56PHY_RXS_RXS_CFG_0_TRAIN_CLK_GATE_BYPASS_EN 17, 4
194 : :
195 : : #define E56PHY_RXS_OSC_CAL_N_CDR_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x008)
196 : : #define E56PHY_RXS_OSC_CAL_N_CDR_1_PREDIV1 15, 0
197 : : #define E56PHY_RXS_OSC_CAL_N_CDR_1_PREDIV1_LSB 0
198 : : #define E56PHY_RXS_OSC_CAL_N_CDR_1_TARGET_CNT1 31, 16
199 : : #define E56PHY_RXS_OSC_CAL_N_CDR_1_TARGET_CNT1_LSB 16
200 : :
201 : : #define E56PHY_RXS_OSC_CAL_N_CDR_4_ADDR (E56PHY_RXS_BASE_ADDR + 0x014)
202 : : #define E56PHY_RXS_OSC_CAL_N_CDR_4_OSC_RANGE_SEL1 3, 2
203 : : #define E56PHY_RXS_OSC_CAL_N_CDR_4_VCO_CODE_INIT 18, 8
204 : : #define E56PHY_RXS_OSC_CAL_N_CDR_4_OSC_CURRENT_BOOST_EN1 21, 21
205 : : #define E56PHY_RXS_OSC_CAL_N_CDR_4_BBCDR_CURRENT_BOOST1 27, 26
206 : :
207 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_ADDR (E56PHY_RXS_BASE_ADDR + 0x018)
208 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_SDM_WIDTH 3, 2
209 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_BB_CDR_PROP_STEP_PRELOCK 15, 12
210 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_BB_CDR_PROP_STEP_POSTLOCK 19, 16
211 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_BB_CDR_GAIN_CTRL_POSTLOCK 23, 20
212 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_BB_CDR_GAIN_CTRL_PRELOCK 27, 24
213 : : #define E56PHY_RXS_OSC_CAL_N_CDR_5_BBCDR_RDY_CNT 30, 28
214 : :
215 : : #define E56PHY_RXS_OSC_CAL_N_CDR_6_ADDR (E56PHY_RXS_BASE_ADDR + 0x01C)
216 : : #define E56PHY_RXS_OSC_CAL_N_CDR_6_PI_GAIN_CTRL_PRELOCK 3, 0
217 : : #define E56PHY_RXS_OSC_CAL_N_CDR_6_PI_GAIN_CTRL_POSTLOCK 7, 4
218 : :
219 : : #define E56PHY_RXS_INTL_CONFIG_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x020)
220 : : #define E56PHY_RXS_INTL_CONFIG_0_ADC_INTL2SLICE_DELAY1 31, 16
221 : :
222 : : #define E56PHY_RXS_INTL_CONFIG_2_ADDR (E56PHY_RXS_BASE_ADDR + 0x028)
223 : : #define E56PHY_RXS_INTL_CONFIG_2_INTERLEAVER_HBW_DISABLE1 1, 1
224 : :
225 : : #define E56PHY_RXS_TXFFE_TRAINING_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x02C)
226 : : #define E56PHY_RXS_TXFFE_TRAINING_0_ADC_DATA_PEAK_LTH 18, 12
227 : : #define E56PHY_RXS_TXFFE_TRAINING_0_ADC_DATA_PEAK_UTH 26, 20
228 : :
229 : : #define E56PHY_RXS_TXFFE_TRAINING_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x030)
230 : : #define E56PHY_RXS_TXFFE_TRAINING_1_C1_LTH 8, 0
231 : : #define E56PHY_RXS_TXFFE_TRAINING_1_C1_UTH 20, 12
232 : :
233 : : #define E56PHY_RXS_TXFFE_TRAINING_2_ADDR (E56PHY_RXS_BASE_ADDR + 0x034)
234 : : #define E56PHY_RXS_TXFFE_TRAINING_2_CM1_LTH 8, 0
235 : : #define E56PHY_RXS_TXFFE_TRAINING_2_CM1_UTH 20, 12
236 : :
237 : : #define E56PHY_RXS_TXFFE_TRAINING_3_ADDR (E56PHY_RXS_BASE_ADDR + 0x038)
238 : : #define E56PHY_RXS_TXFFE_TRAINING_3_CM2_LTH 8, 0
239 : : #define E56PHY_RXS_TXFFE_TRAINING_3_CM2_UTH 20, 12
240 : : #define E56PHY_RXS_TXFFE_TRAINING_3_TXFFE_TRAIN_MOD_TYPE 26, 21
241 : :
242 : : #define E56PHY_RXS_VGA_TRAINING_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x04C)
243 : : #define E56PHY_RXS_VGA_TRAINING_0_VGA_TARGET 18, 12
244 : :
245 : : #define E56PHY_RXS_VGA_TRAINING_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x050)
246 : : #define E56PHY_RXS_VGA_TRAINING_1_VGA1_CODE_INIT0 4, 0
247 : : #define E56PHY_RXS_VGA_TRAINING_1_VGA2_CODE_INIT0 12, 8
248 : : #define E56PHY_RXS_VGA_TRAINING_1_VGA1_CODE_INIT123 20, 16
249 : : #define E56PHY_RXS_VGA_TRAINING_1_VGA2_CODE_INIT123 28, 24
250 : :
251 : : #define E56PHY_RXS_CTLE_TRAINING_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x054)
252 : : #define E56PHY_RXS_CTLE_TRAINING_0_CTLE_CODE_INIT0 24, 20
253 : : #define E56PHY_RXS_CTLE_TRAINING_0_CTLE_CODE_INIT123 31, 27
254 : :
255 : : #define E56PHY_RXS_CTLE_TRAINING_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x058)
256 : : #define E56PHY_RXS_CTLE_TRAINING_1_LFEQ_LUT 24, 0
257 : :
258 : : #define E56PHY_RXS_CTLE_TRAINING_2_ADDR (E56PHY_RXS_BASE_ADDR + 0x05C)
259 : : #define E56PHY_RXS_CTLE_TRAINING_2_ISI_TH_FRAC_P1 5, 0
260 : : #define E56PHY_RXS_CTLE_TRAINING_2_ISI_TH_FRAC_P2 13, 8
261 : : #define E56PHY_RXS_CTLE_TRAINING_2_ISI_TH_FRAC_P3 21, 16
262 : :
263 : : #define E56PHY_RXS_CTLE_TRAINING_3_ADDR (E56PHY_RXS_BASE_ADDR + 0x060)
264 : : #define E56PHY_RXS_CTLE_TRAINING_3_TAP_WEIGHT_P1 9, 8
265 : : #define E56PHY_RXS_CTLE_TRAINING_3_TAP_WEIGHT_P2 11, 10
266 : : #define E56PHY_RXS_CTLE_TRAINING_3_TAP_WEIGHT_P3 13, 12
267 : :
268 : : #define E56PHY_RXS_OFFSET_N_GAIN_CAL_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x064)
269 : : #define E56PHY_RXS_OFFSET_N_GAIN_CAL_0_ADC_SLICE_DATA_AVG_CNT 5, 4
270 : : #define E56PHY_RXS_OFFSET_N_GAIN_CAL_0_ADC_DATA_AVG_CNT 9, 8
271 : : #define E56PHY_RXS_OFFSET_N_GAIN_CAL_0_FE_OFFSET_DAC_CLK_CNT_X8 31, 28
272 : :
273 : : #define E56PHY_RXS_OFFSET_N_GAIN_CAL_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x068)
274 : : #define E56PHY_RXS_OFFSET_N_GAIN_CAL_1_SAMP_ADAPT_CFG 31, 28
275 : :
276 : : #define E56PHY_RXS_FFE_TRAINING_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x070)
277 : : #define E56PHY_RXS_FFE_TRAINING_0_FFE_TAP_EN 23, 8
278 : :
279 : : #define E56PHY_RXS_IDLE_DETECT_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x088)
280 : : #define E56PHY_RXS_IDLE_DETECT_1_IDLE_TH_ADC_PEAK_MAX 22, 16
281 : : #define E56PHY_RXS_IDLE_DETECT_1_IDLE_TH_ADC_PEAK_MIN 30, 24
282 : :
283 : : #define E56PHY_RXS_ANA_OVRDEN_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x08C)
284 : : #define E56PHY_RXS_ANA_OVRDEN_0_OVRD_EN_ANA_EN_RTERM_I 0, 0
285 : : #define E56PHY_RXS_ANA_OVRDEN_0_OVRD_EN_ANA_TRIM_RTERM_I 1, 1
286 : : #define E56PHY_RXS_ANA_OVRDEN_0_OVRD_EN_ANA_BBCDR_OSC_RANGE_SEL_I 29, 29
287 : :
288 : : #define E56PHY_RXS_ANA_OVRDEN_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x090)
289 : : #define E56PHY_RXS_ANA_OVRDEN_1_OVRD_EN_ANA_BBCDR_VCOFILT_BYP_I 0, 0
290 : : #define E56PHY_RXS_ANA_OVRDEN_1_OVRD_EN_ANA_TEST_BBCDR_I 9, 9
291 : :
292 : : #define E56PHY_RXS_ANA_OVRDEN_3_ADDR (E56PHY_RXS_BASE_ADDR + 0x098)
293 : : #define E56PHY_RXS_ANA_OVRDEN_3_OVRD_EN_ANA_ANABS_CONFIG_I 15, 15
294 : : #define E56PHY_RXS_ANA_OVRDEN_3_OVRD_EN_ANA_VGA2_BOOST_CSTM_I 25, 25
295 : :
296 : : #define E56PHY_RXS_ANA_OVRDEN_4_ADDR (E56PHY_RXS_BASE_ADDR + 0x09C)
297 : : #define E56PHY_RXS_ANA_OVRDVAL_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x0A0)
298 : : #define E56PHY_RXS_ANA_OVRDVAL_0_ANA_EN_RTERM_I 0, 0
299 : :
300 : : #define E56PHY_RXS_ANA_OVRDVAL_6_ADDR (E56PHY_RXS_BASE_ADDR + 0x0B8)
301 : : #define E56PHY_RXS_ANA_OVRDVAL_14_ADDR (E56PHY_RXS_BASE_ADDR + 0x0D8)
302 : : #define E56PHY_RXS_ANA_OVRDVAL_15_ADDR (E56PHY_RXS_BASE_ADDR + 0x0DC)
303 : : #define E56PHY_RXS_ANA_OVRDVAL_17_ADDR (E56PHY_RXS_BASE_ADDR + 0x0E4)
304 : : #define E56PHY_RXS_ANA_OVRDVAL_17_ANA_VGA2_BOOST_CSTM_I 18, 16
305 : :
306 : : #define E56PHY_RXS_EYE_SCAN_1_ADDR (E56PHY_RXS_BASE_ADDR + 0x1A4)
307 : : #define E56PHY_RXS_EYE_SCAN_1_EYE_SCAN_REF_TIMER 31, 0
308 : :
309 : : #define E56PHY_RXS_ANA_OVRDVAL_5_ADDR (E56PHY_RXS_BASE_ADDR + 0x0B4)
310 : : #define E56PHY_RXS_ANA_OVRDVAL_5_ANA_BBCDR_OSC_RANGE_SEL_I 1, 0
311 : :
312 : : #define E56PHY_RXS_RINGO_0_ADDR (E56PHY_RXS_BASE_ADDR + 0x1FC)
313 : :
314 : : #define E56PHY_PMD_BASE_ADDR 0x1400
315 : : #define E56PHY_PMD_CFG_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x000)
316 : : #define E56PHY_PMD_CFG_0_RX_EN_CFG 19, 16
317 : :
318 : : #define E56PHY_PMD_CFG_3_ADDR (E56PHY_PMD_BASE_ADDR + 0x00C)
319 : : #define E56PHY_PMD_CFG_3_CTRL_FSM_TIMEOUT_X64K 31, 24
320 : : #define E56PHY_PMD_CFG_4_ADDR (E56PHY_PMD_BASE_ADDR + 0x010)
321 : : #define E56PHY_PMD_CFG_4_TRAIN_DC_ON_PERIOD_X64K 7, 0
322 : : #define E56PHY_PMD_CFG_4_TRAIN_DC_PERIOD_X512K 15, 8
323 : : #define E56PHY_PMD_CFG_5_ADDR (E56PHY_PMD_BASE_ADDR + 0x014)
324 : : #define E56PHY_PMD_CFG_5_USE_RECENT_MARKER_OFFSET 12, 12
325 : : #define E56PHY_CTRL_FSM_CFG_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x040)
326 : : #define E56PHY_CTRL_FSM_CFG_0_CONT_ON_ADC_OFST_CAL_ERR 4, 4
327 : : #define E56PHY_CTRL_FSM_CFG_0_CONT_ON_ADC_GAIN_CAL_ERR 5, 5
328 : : #define E56PHY_CTRL_FSM_CFG_0_DO_RX_ADC_OFST_CAL 9, 8
329 : : #define E56PHY_CTRL_FSM_CFG_0_RX_ERR_ACTION_EN 31, 24
330 : :
331 : : #define E56PHY_CTRL_FSM_CFG_1_ADDR (E56PHY_PMD_BASE_ADDR + 0x044)
332 : : #define E56PHY_CTRL_FSM_CFG_1_TRAIN_ST0_WAIT_CNT_X4096 7, 0
333 : : #define E56PHY_CTRL_FSM_CFG_1_TRAIN_ST1_WAIT_CNT_X4096 15, 8
334 : : #define E56PHY_CTRL_FSM_CFG_1_TRAIN_ST2_WAIT_CNT_X4096 23, 16
335 : : #define E56PHY_CTRL_FSM_CFG_1_TRAIN_ST3_WAIT_CNT_X4096 31, 24
336 : :
337 : : #define E56PHY_CTRL_FSM_CFG_2_ADDR (E56PHY_PMD_BASE_ADDR + 0x048)
338 : : #define E56PHY_CTRL_FSM_CFG_2_TRAIN_ST4_WAIT_CNT_X4096 7, 0
339 : : #define E56PHY_CTRL_FSM_CFG_2_TRAIN_ST5_WAIT_CNT_X4096 15, 8
340 : : #define E56PHY_CTRL_FSM_CFG_2_TRAIN_ST6_WAIT_CNT_X4096 23, 16
341 : : #define E56PHY_CTRL_FSM_CFG_2_TRAIN_ST7_WAIT_CNT_X4096 31, 24
342 : :
343 : : #define E56PHY_CTRL_FSM_CFG_3_ADDR (E56PHY_PMD_BASE_ADDR + 0x04C)
344 : : #define E56PHY_CTRL_FSM_CFG_3_TRAIN_ST8_WAIT_CNT_X4096 7, 0
345 : :
346 : : #define E56PHY_CTRL_FSM_CFG_3_TRAIN_ST9_WAIT_CNT_X4096 15, 8
347 : : #define E56PHY_CTRL_FSM_CFG_3_TRAIN_ST10_WAIT_CNT_X4096 23, 16
348 : : #define E56PHY_CTRL_FSM_CFG_3_TRAIN_ST11_WAIT_CNT_X4096 31, 24
349 : :
350 : : #define E56PHY_CTRL_FSM_CFG_4_ADDR (E56PHY_PMD_BASE_ADDR + 0x050)
351 : : #define E56PHY_CTRL_FSM_CFG_4_TRAIN_ST12_WAIT_CNT_X4096 7, 0
352 : : #define E56PHY_CTRL_FSM_CFG_4_TRAIN_ST13_WAIT_CNT_X4096 15, 8
353 : : #define E56PHY_CTRL_FSM_CFG_4_TRAIN_ST14_WAIT_CNT_X4096 23, 16
354 : : #define E56PHY_CTRL_FSM_CFG_4_TRAIN_ST15_WAIT_CNT_X4096 31, 24
355 : :
356 : : #define E56PHY_CTRL_FSM_CFG_7_ADDR (E56PHY_PMD_BASE_ADDR + 0x05C)
357 : : #define E56PHY_CTRL_FSM_CFG_7_TRAIN_ST4_EN 15, 0
358 : : #define E56PHY_CTRL_FSM_CFG_7_TRAIN_ST5_EN 31, 16
359 : :
360 : : #define E56PHY_CTRL_FSM_CFG_8_ADDR (E56PHY_PMD_BASE_ADDR + 0x060)
361 : : #define E56PHY_CTRL_FSM_CFG_8_TRAIN_ST7_EN 31, 16
362 : :
363 : : #define E56PHY_CTRL_FSM_CFG_12_ADDR (E56PHY_PMD_BASE_ADDR + 0x070)
364 : : #define E56PHY_CTRL_FSM_CFG_12_TRAIN_ST15_EN 31, 16
365 : :
366 : : #define E56PHY_CTRL_FSM_CFG_13_ADDR (E56PHY_PMD_BASE_ADDR + 0x074)
367 : : #define E56PHY_CTRL_FSM_CFG_13_TRAIN_ST0_DONE_EN 15, 0
368 : : #define E56PHY_CTRL_FSM_CFG_13_TRAIN_ST1_DONE_EN 31, 16
369 : :
370 : : #define E56PHY_CTRL_FSM_CFG_14_ADDR (E56PHY_PMD_BASE_ADDR + 0x078)
371 : : #define E56PHY_CTRL_FSM_CFG_14_TRAIN_ST3_DONE_EN 31, 16
372 : :
373 : : #define E56PHY_CTRL_FSM_CFG_15_ADDR (E56PHY_PMD_BASE_ADDR + 0x07C)
374 : : #define E56PHY_CTRL_FSM_CFG_15_TRAIN_ST4_DONE_EN 15, 0
375 : :
376 : : #define E56PHY_CTRL_FSM_CFG_17_ADDR (E56PHY_PMD_BASE_ADDR + 0x084)
377 : : #define E56PHY_CTRL_FSM_CFG_17_TRAIN_ST8_DONE_EN 15, 0
378 : :
379 : : #define E56PHY_CTRL_FSM_CFG_18_ADDR (E56PHY_PMD_BASE_ADDR + 0x088)
380 : : #define E56PHY_CTRL_FSM_CFG_18_TRAIN_ST10_DONE_EN 15, 0
381 : :
382 : : #define E56PHY_CTRL_FSM_CFG_29_ADDR (E56PHY_PMD_BASE_ADDR + 0x0B4)
383 : : #define E56PHY_CTRL_FSM_CFG_29_TRAIN_ST15_DC_EN 31, 16
384 : :
385 : : #define E56PHY_CTRL_FSM_CFG_33_ADDR (E56PHY_PMD_BASE_ADDR + 0x0C4)
386 : : #define E56PHY_CTRL_FSM_CFG_33_TRAIN0_RATE_SEL 15, 0
387 : : #define E56PHY_CTRL_FSM_CFG_33_TRAIN1_RATE_SEL 31, 16
388 : :
389 : : #define E56PHY_CTRL_FSM_CFG_34_ADDR (E56PHY_PMD_BASE_ADDR + 0x0C8)
390 : : #define E56PHY_CTRL_FSM_CFG_34_TRAIN2_RATE_SEL 15, 0
391 : : #define E56PHY_CTRL_FSM_CFG_34_TRAIN3_RATE_SEL 31, 16
392 : :
393 : : #define E56PHY_CTRL_FSM_RX_STAT_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x0FC)
394 : : #define E56PHY_RXS0_OVRDEN_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x130)
395 : : #define E56PHY_RXS0_OVRDEN_0_OVRD_EN_RXS0_RX0_SAMP_CAL_DONE_O 27, 27
396 : :
397 : : #define E56PHY_RXS0_OVRDEN_1_ADDR (E56PHY_PMD_BASE_ADDR + 0x134)
398 : : #define E56PHY_RXS0_OVRDEN_1_OVRD_EN_RXS0_RX0_VGA_TRAIN_EN_I 14, 14
399 : : #define E56PHY_RXS0_OVRDEN_1_OVRD_EN_RXS0_RX0_CTLE_TRAIN_EN_I 16, 16
400 : : #define E56PHY_RXS0_OVRDEN_1_OVRD_EN_RXS0_RX0_CDR_EN_I 18, 18
401 : : #define E56PHY_RXS0_OVRDEN_1_OVRD_EN_RXS0_RX0_ADC_INTL_CAL_EN_I 23, 23
402 : : #define E56PHY_RXS0_OVRDEN_1_OVRD_EN_RXS0_RX0_ADC_INTL_CAL_DONE_O 24, 24
403 : : #define E56PHY_RXS0_OVRDEN_1_OVRD_EN_RXS0_RX0_ADC_INTL_CAL_DONE_O_LSB 24
404 : :
405 : : #define E56PHY_RXS0_OVRDEN_2_ADDR (E56PHY_PMD_BASE_ADDR + 0x138)
406 : : #define E56PHY_RXS0_OVRDEN_2_OVRD_EN_RXS0_RX0_ADC_OFST_ADAPT_EN_I 0, 0
407 : : #define E56PHY_RXS0_OVRDEN_2_OVRD_EN_RXS0_RX0_ADC_GAIN_ADAPT_EN_I 3, 3
408 : : #define E56PHY_RXS0_OVRDEN_2_OVRD_EN_RXS0_RX0_ADC_INTL_ADAPT_EN_I 6, 6
409 : :
410 : : #define E56PHY_RXS0_OVRDVAL_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x140)
411 : : #define E56PHY_RXS0_OVRDVAL_0_RXS0_RX0_SAMP_CAL_DONE_O 22, 22
412 : :
413 : : #define E56PHY_RXS0_OVRDVAL_1_ADDR (E56PHY_PMD_BASE_ADDR + 0x144)
414 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_VGA_TRAIN_EN_I 7, 7
415 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_CTLE_TRAIN_EN_I 9, 9
416 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_CDR_EN_I 11, 11
417 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_ADC_INTL_CAL_EN_I 16, 16
418 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_ADC_INTL_CAL_DONE_O 17, 17
419 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_ADC_INTL_CAL_DONE_O_LSB 17
420 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_ADC_OFST_ADAPT_EN_I 25, 25
421 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_ADC_GAIN_ADAPT_EN_I 28, 28
422 : : #define E56PHY_RXS0_OVRDVAL_1_RXS0_RX0_ADC_INTL_ADAPT_EN_I 31, 31
423 : :
424 : : #define E56PHY_INTR_0_IDLE_ENTRY1 0x10000000
425 : : #define E56PHY_INTR_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x1EC)
426 : : #define E56PHY_INTR_0_ENABLE_ADDR (E56PHY_PMD_BASE_ADDR + 0x1E0)
427 : :
428 : : #define E56PHY_INTR_1_IDLE_EXIT1 0x1
429 : : #define E56PHY_INTR_1_ADDR (E56PHY_PMD_BASE_ADDR + 0x1F0)
430 : : #define E56PHY_INTR_1_ENABLE_ADDR (E56PHY_PMD_BASE_ADDR + 0x1E4)
431 : :
432 : : #define E56PHY_KRT_TFSM_CFG_ADDR (E56PHY_PMD_BASE_ADDR + 0x2B8)
433 : : #define E56PHY_KRT_TFSM_CFGKRT_TFSM_MAX_WAIT_TIMER_X1000K 7, 0
434 : : #define E56PHY_KRT_TFSM_CFGKRT_TFSM_MAX_WAIT_TIMER_X8000K 15, 8
435 : : #define E56PHY_KRT_TFSM_CFGKRT_TFSM_HOLDOFF_TIMER_X256K 23, 16
436 : :
437 : : #define E56PHY_FETX_FFE_TRAIN_CFG_0_ADDR (E56PHY_PMD_BASE_ADDR + 0x2BC)
438 : : #define E56PHY_FETX_FFE_TRAIN_CFG_0_KRT_FETX_INIT_FFE_CFG_2 9, 8
439 : : #define E56PHY_FETX_FFE_TRAIN_CFG_0_KRT_FETX_INIT_FFE_CFG_3 13, 12
440 : :
441 : : /* PHYINIT_TIMEOUT, a loop iteration counter, not a fixed time unit.
442 : : * The actual timeout duration depends on the usec_delay() or msleep()
443 : : * value used inside the polling loop. For example, when usec_delay(500)
444 : : * is used, the total timeout is approximately PHYINIT_TIMEOUT * 500 us.
445 : : */
446 : : #define PHYINIT_TIMEOUT 1000
447 : :
448 : : #define E56G__BASEADDR 0x0
449 : :
450 : : typedef union {
451 : : struct {
452 : : u32 ana_lcpll_lf_vco_swing_ctrl_i : 4;
453 : : u32 ana_lcpll_lf_lpf_setcode_calib_i : 5;
454 : : u32 rsvd0 : 3;
455 : : u32 ana_lcpll_lf_vco_coarse_bin_i : 5;
456 : : u32 rsvd1 : 3;
457 : : u32 ana_lcpll_lf_vco_fine_therm_i : 8;
458 : : u32 ana_lcpll_lf_clkout_fb_ctrl_i : 2;
459 : : u32 rsvd2 : 2;
460 : : };
461 : : u32 reg;
462 : : } E56G_CMS_ANA_OVRDVAL_7;
463 : : #define E56G_CMS_ANA_OVRDVAL_7_ADDR (E56G__BASEADDR + 0xccc)
464 : :
465 : : typedef union {
466 : : struct {
467 : : u32 ovrd_en_ana_lcpll_hf_vco_amp_status_o : 1;
468 : : u32 ovrd_en_ana_lcpll_hf_clkout_fb_ctrl_i : 1;
469 : : u32 ovrd_en_ana_lcpll_hf_clkdiv_ctrl_i : 1;
470 : : u32 ovrd_en_ana_lcpll_hf_en_odiv_i : 1;
471 : : u32 ovrd_en_ana_lcpll_hf_test_in_i : 1;
472 : : u32 ovrd_en_ana_lcpll_hf_test_out_o : 1;
473 : : u32 ovrd_en_ana_lcpll_lf_en_bias_i : 1;
474 : : u32 ovrd_en_ana_lcpll_lf_en_loop_i : 1;
475 : : u32 ovrd_en_ana_lcpll_lf_en_cp_i : 1;
476 : : u32 ovrd_en_ana_lcpll_lf_icp_base_i : 1;
477 : : u32 ovrd_en_ana_lcpll_lf_icp_fine_i : 1;
478 : : u32 ovrd_en_ana_lcpll_lf_lpf_ctrl_i : 1;
479 : : u32 ovrd_en_ana_lcpll_lf_lpf_setcode_calib_i : 1;
480 : : u32 ovrd_en_ana_lcpll_lf_set_lpf_i : 1;
481 : : u32 ovrd_en_ana_lcpll_lf_en_vco_i : 1;
482 : : u32 ovrd_en_ana_lcpll_lf_vco_sel_i : 1;
483 : : u32 ovrd_en_ana_lcpll_lf_vco_swing_ctrl_i : 1;
484 : : u32 ovrd_en_ana_lcpll_lf_vco_coarse_bin_i : 1;
485 : : u32 ovrd_en_ana_lcpll_lf_vco_fine_therm_i : 1;
486 : : u32 ovrd_en_ana_lcpll_lf_vco_amp_status_o : 1;
487 : : u32 ovrd_en_ana_lcpll_lf_clkout_fb_ctrl_i : 1;
488 : : u32 ovrd_en_ana_lcpll_lf_clkdiv_ctrl_i : 1;
489 : : u32 ovrd_en_ana_lcpll_lf_en_odiv_i : 1;
490 : : u32 ovrd_en_ana_lcpll_lf_test_in_i : 1;
491 : : u32 ovrd_en_ana_lcpll_lf_test_out_o : 1;
492 : : u32 ovrd_en_ana_lcpll_hf_refclk_select_i : 1;
493 : : u32 ovrd_en_ana_lcpll_lf_refclk_select_i : 1;
494 : : u32 ovrd_en_ana_lcpll_hf_clk_ref_sel_i : 1;
495 : : u32 ovrd_en_ana_lcpll_lf_clk_ref_sel_i : 1;
496 : : u32 ovrd_en_ana_test_bias_i : 1;
497 : : u32 ovrd_en_ana_test_slicer_i : 1;
498 : : u32 ovrd_en_ana_test_sampler_i : 1;
499 : : };
500 : : u32 reg;
501 : : } E56G_CMS_ANA_OVRDEN_1;
502 : :
503 : : #define E56G_CMS_ANA_OVRDEN_1_ADDR (E56G__BASEADDR + 0xca8)
504 : :
505 : : typedef union {
506 : : struct {
507 : : u32 ana_lcpll_lf_test_in_i : 32;
508 : : };
509 : : u32 reg;
510 : : } E56G_CMS_ANA_OVRDVAL_9;
511 : :
512 : : #define E56G_CMS_ANA_OVRDVAL_9_ADDR (E56G__BASEADDR + 0xcd4)
513 : :
514 : : typedef union {
515 : : struct {
516 : : u32 ovrd_en_ana_bbcdr_vcofilt_byp_i : 1;
517 : : u32 ovrd_en_ana_bbcdr_coarse_i : 1;
518 : : u32 ovrd_en_ana_bbcdr_fine_i : 1;
519 : : u32 ovrd_en_ana_bbcdr_ultrafine_i : 1;
520 : : u32 ovrd_en_ana_en_bbcdr_i : 1;
521 : : u32 ovrd_en_ana_bbcdr_divctrl_i : 1;
522 : : u32 ovrd_en_ana_bbcdr_int_cstm_i : 1;
523 : : u32 ovrd_en_ana_bbcdr_prop_step_i : 1;
524 : : u32 ovrd_en_ana_en_bbcdr_clk_i : 1;
525 : : u32 ovrd_en_ana_test_bbcdr_i : 1;
526 : : u32 ovrd_en_ana_bbcdr_en_elv_cnt_ping0_pong1_i : 1;
527 : : u32 ovrd_en_ana_bbcdr_clrz_elv_cnt_ping_i : 1;
528 : : u32 ovrd_en_ana_bbcdr_clrz_elv_cnt_pong_i : 1;
529 : : u32 ovrd_en_ana_bbcdr_clrz_cnt_sync_i : 1;
530 : : u32 ovrd_en_ana_bbcdr_en_elv_cnt_rd_i : 1;
531 : : u32 ovrd_en_ana_bbcdr_elv_cnt_rdout_0_o : 1;
532 : : u32 ovrd_en_ana_bbcdr_elv_cnt_rdout_90_o : 1;
533 : : u32 ovrd_en_ana_bbcdr_elv_cnt_rdout_180_o : 1;
534 : : u32 ovrd_en_ana_bbcdr_elv_cnt_rdout_270_o : 1;
535 : : u32 ovrd_en_ana_bbcdr_elv_cnt_ping_0_o : 1;
536 : : u32 ovrd_en_ana_bbcdr_elv_cnt_ping_90_o : 1;
537 : : u32 ovrd_en_ana_bbcdr_elv_cnt_ping_180_o : 1;
538 : : u32 ovrd_en_ana_bbcdr_elv_cnt_ping_270_o : 1;
539 : : u32 ovrd_en_ana_bbcdr_elv_cnt_pong_0_o : 1;
540 : : u32 ovrd_en_ana_bbcdr_elv_cnt_pong_90_o : 1;
541 : : u32 ovrd_en_ana_bbcdr_elv_cnt_pong_180_o : 1;
542 : : u32 ovrd_en_ana_bbcdr_elv_cnt_pong_270_o : 1;
543 : : u32 ovrd_en_ana_en_bbcdr_samp_dac_i : 1;
544 : : u32 ovrd_en_ana_bbcdr_dac0_i : 1;
545 : : u32 ovrd_en_ana_bbcdr_dac90_i : 1;
546 : : u32 ovrd_en_ana_vga2_cload_in_cstm_i : 1;
547 : : u32 ovrd_en_ana_intlvr_cut_bw_i : 1;
548 : : };
549 : : u32 reg;
550 : : } E56G__RXS0_ANA_OVRDEN_1;
551 : :
552 : : #define E56G__RXS0_ANA_OVRDEN_1_ADDR (E56G__BASEADDR + 0x90)
553 : :
554 : : typedef union {
555 : : struct {
556 : : u32 prediv0 : 16;
557 : : u32 target_cnt0 : 16;
558 : : };
559 : : u32 reg;
560 : : } E56G_RXS0_OSC_CAL_N_CDR_0;
561 : :
562 : : #define E56G_RXS0_OSC_CAL_N_CDR_0_ADDR (E56G__BASEADDR + 0x4)
563 : :
564 : : typedef union {
565 : : struct {
566 : : u32 osc_range_sel0 : 2;
567 : : u32 osc_range_sel1 : 2;
568 : : u32 osc_range_sel2 : 2;
569 : : u32 osc_range_sel3 : 2;
570 : : u32 vco_code_init : 11;
571 : : u32 calibrate_range_sel : 1;
572 : : u32 osc_current_boost_en0 : 1;
573 : : u32 osc_current_boost_en1 : 1;
574 : : u32 osc_current_boost_en2 : 1;
575 : : u32 osc_current_boost_en3 : 1;
576 : : u32 bbcdr_current_boost0 : 2;
577 : : u32 bbcdr_current_boost1 : 2;
578 : : u32 bbcdr_current_boost2 : 2;
579 : : u32 bbcdr_current_boost3 : 2;
580 : : };
581 : : u32 reg;
582 : : } E56G_RXS0_OSC_CAL_N_CDR_4;
583 : :
584 : : #define E56G_RXS0_OSC_CAL_N_CDR_4_ADDR (E56G__BASEADDR + 0x14)
585 : :
586 : : typedef union {
587 : : struct {
588 : : u32 adc_intl2slice_delay0 : 16;
589 : : u32 adc_intl2slice_delay1 : 16;
590 : : };
591 : : u32 reg;
592 : : } E56G_RXS0_INTL_CONFIG_0;
593 : :
594 : : #define E56G_RXS0_INTL_CONFIG_0_ADDR (E56G__BASEADDR + 0x20)
595 : :
596 : : typedef union {
597 : : struct {
598 : : u32 interleaver_hbw_disable0 : 1;
599 : : u32 interleaver_hbw_disable1 : 1;
600 : : u32 interleaver_hbw_disable2 : 1;
601 : : u32 interleaver_hbw_disable3 : 1;
602 : : u32 rsvd0 : 28;
603 : : };
604 : : u32 reg;
605 : : } E56G_RXS0_INTL_CONFIG_2;
606 : :
607 : : #define E56G_RXS0_INTL_CONFIG_2_ADDR (E56G__BASEADDR + 0x28)
608 : :
609 : : typedef union {
610 : : struct {
611 : : u32 ovrd_en_ana_bbcdr_dac180_i : 1;
612 : : u32 ovrd_en_ana_bbcdr_dac270_i : 1;
613 : : u32 ovrd_en_ana_bbcdr_en_samp_cal_cnt_i : 1;
614 : : u32 ovrd_en_ana_bbcdr_clrz_samp_cal_cnt_i : 1;
615 : : u32 ovrd_en_ana_bbcdr_samp_cnt_0_o : 1;
616 : : u32 ovrd_en_ana_bbcdr_samp_cnt_90_o : 1;
617 : : u32 ovrd_en_ana_bbcdr_samp_cnt_180_o : 1;
618 : : u32 ovrd_en_ana_bbcdr_samp_cnt_270_o : 1;
619 : : u32 ovrd_en_ana_en_adcbuf1_i : 1;
620 : : u32 ovrd_en_ana_test_adcbuf1_i : 1;
621 : : u32 ovrd_en_ana_en_adc_clk4ui_i : 1;
622 : : u32 ovrd_en_ana_adc_clk_skew0_i : 1;
623 : : u32 ovrd_en_ana_adc_clk_skew90_i : 1;
624 : : u32 ovrd_en_ana_adc_clk_skew180_i : 1;
625 : : u32 ovrd_en_ana_adc_clk_skew270_i : 1;
626 : : u32 ovrd_en_ana_adc_update_skew_i : 1;
627 : : u32 ovrd_en_ana_en_adc_pi_i : 1;
628 : : u32 ovrd_en_ana_adc_pictrl_quad_i : 1;
629 : : u32 ovrd_en_ana_adc_pctrl_code_i : 1;
630 : : u32 ovrd_en_ana_adc_clkdiv_i : 1;
631 : : u32 ovrd_en_ana_test_adc_clkgen_i : 1;
632 : : u32 ovrd_en_ana_en_adc_i : 1;
633 : : u32 ovrd_en_ana_en_adc_vref_i : 1;
634 : : u32 ovrd_en_ana_vref_cnfg_i : 1;
635 : : u32 ovrd_en_ana_adc_data_cstm_o : 1;
636 : : u32 ovrd_en_ana_en_adccal_lpbk_i : 1;
637 : : u32 ovrd_en_ana_sel_adcoffset_cal_i : 1;
638 : : u32 ovrd_en_ana_sel_adcgain_cal_i : 1;
639 : : u32 ovrd_en_ana_adcgain_cal_swing_ctrl_i : 1;
640 : : u32 ovrd_en_ana_adc_gain_i : 1;
641 : : u32 ovrd_en_ana_vga_cload_out_cstm_i : 1;
642 : : u32 ovrd_en_ana_vga2_cload_out_cstm_i : 1;
643 : : };
644 : : u32 reg;
645 : : } E56G__RXS0_ANA_OVRDEN_2;
646 : :
647 : : #define E56G__RXS0_ANA_OVRDEN_2_ADDR (E56G__BASEADDR + 0x94)
648 : :
649 : : typedef union {
650 : : struct {
651 : : u32 ovrd_en_ana_adc_offset_i : 1;
652 : : u32 ovrd_en_ana_adc_slice_addr_i : 1;
653 : : u32 ovrd_en_ana_slice_wr_i : 1;
654 : : u32 ovrd_en_ana_test_adc_i : 1;
655 : : u32 ovrd_en_ana_test_adc_o : 1;
656 : : u32 ovrd_en_ana_spare_o : 8;
657 : : u32 ovrd_en_ana_sel_lpbk_i : 1;
658 : : u32 ovrd_en_ana_ana_debug_sel_i : 1;
659 : : u32 ovrd_en_ana_anabs_config_i : 1;
660 : : u32 ovrd_en_ana_en_anabs_i : 1;
661 : : u32 ovrd_en_ana_anabs_rxn_o : 1;
662 : : u32 ovrd_en_ana_anabs_rxp_o : 1;
663 : : u32 ovrd_en_ana_dser_clk_en_i : 1;
664 : : u32 ovrd_en_ana_dser_clk_config_i : 1;
665 : : u32 ovrd_en_ana_en_mmcdr_clk_obs_i : 1;
666 : : u32 ovrd_en_ana_skew_coarse0_fine1_i : 1;
667 : : u32 ovrd_en_ana_vddinoff_acore_dig_o : 1;
668 : : u32 ovrd_en_ana_vddinoff_dcore_dig_o : 1;
669 : : u32 ovrd_en_ana_vga2_boost_cstm_i : 1;
670 : : u32 ovrd_en_ana_adc_sel_vbgr_bias_i : 1;
671 : : u32 ovrd_en_ana_adc_nbuf_cnfg_i : 1;
672 : : u32 ovrd_en_ana_adc_pbuf_cnfg_i : 1;
673 : : u32 rsvd0 : 3;
674 : : };
675 : : u32 reg;
676 : : } E56G__RXS0_ANA_OVRDEN_3;
677 : :
678 : : #define E56G__RXS0_ANA_OVRDEN_3_NUM 1
679 : : #define E56G__RXS0_ANA_OVRDEN_3_ADDR (E56G__BASEADDR + 0x98)
680 : :
681 : : typedef union {
682 : : struct {
683 : : u32 pam4_ab_swap_en : 1;
684 : : u32 dser_data_sel : 1;
685 : : u32 signal_type : 1;
686 : : u32 precode_en : 1;
687 : : u32 train_clk_gate_bypass_en : 14;
688 : : u32 rsvd0 : 14;
689 : : };
690 : : u32 reg;
691 : : } E56G__RXS0_RXS_CFG_0;
692 : :
693 : : #define E56G__RXS0_RXS_CFG_0_NUM 1
694 : : #define E56G__RXS0_RXS_CFG_0_ADDR (E56G__BASEADDR + 0x0)
695 : :
696 : : typedef union {
697 : : struct {
698 : : u32 restart_training_ln0 : 1;
699 : : u32 training_enable_ln0 : 1;
700 : : u32 restart_training_ln1 : 1;
701 : : u32 training_enable_ln1 : 1;
702 : : u32 restart_training_ln2 : 1;
703 : : u32 training_enable_ln2 : 1;
704 : : u32 restart_training_ln3 : 1;
705 : : u32 training_enable_ln3 : 1;
706 : : u32 rsvd0 : 24;
707 : : };
708 : : u32 reg;
709 : : } E56G__PMD_BASER_PMD_CONTROL;
710 : :
711 : : #define E56G__PMD_BASER_PMD_CONTROL_NUM 1
712 : : #define E56G__PMD_BASER_PMD_CONTROL_ADDR (E56G__BASEADDR + 0x1640)
713 : :
714 : : typedef union {
715 : : struct {
716 : : u32 rx_to_tx_lpbk_en : 4;
717 : : u32 sel_wp_pmt_out : 4;
718 : : u32 sel_wp_pmt_clkout : 4;
719 : : u32 use_recent_marker_offset : 1;
720 : : u32 interrupt_debug_mode : 1;
721 : : u32 rsvd0 : 2;
722 : : u32 tx_ffe_coeff_update : 4;
723 : : u32 rsvd1 : 12;
724 : : };
725 : : u32 reg;
726 : : } E56G__PMD_PMD_CFG_5;
727 : :
728 : : #define E56G__PMD_PMD_CFG_5_NUM 1
729 : : #define E56G__PMD_PMD_CFG_5_ADDR (E56G__BASEADDR + 0x1414)
730 : :
731 : : typedef union {
732 : : struct {
733 : : u32 soft_reset : 1;
734 : : u32 pmd_en : 1;
735 : : u32 rsvd0 : 2;
736 : : u32 pll_refclk_sel : 2;
737 : : u32 rsvd1 : 2;
738 : : u32 pmd_mode : 1;
739 : : u32 rsvd2 : 3;
740 : : u32 tx_en_cfg : 4;
741 : : u32 rx_en_cfg : 4;
742 : : u32 pll_en_cfg : 2;
743 : : u32 rsvd3 : 2;
744 : : u32 pam4_precode_no_krt_en : 4;
745 : : u32 rsvd4 : 4;
746 : : };
747 : : u32 reg;
748 : : } E56G__PMD_PMD_CFG_0;
749 : :
750 : : #define E56G__PMD_PMD_CFG_0_NUM 1
751 : : #define E56G__PMD_PMD_CFG_0_ADDR (E56G__BASEADDR + 0x1400)
752 : :
753 : : typedef union {
754 : : struct {
755 : : u32 ovrd_en_rxs0_rx0_rstn_i : 1;
756 : : u32 ovrd_en_rxs0_rx0_bitclk_divctrl_i : 1;
757 : : u32 ovrd_en_rxs0_rx0_bitclk_rate_i : 1;
758 : : u32 ovrd_en_rxs0_rx0_symdata_width_i : 1;
759 : : u32 ovrd_en_rxs0_rx0_symdata_o : 1;
760 : : u32 ovrd_en_rxs0_rx0_precode_en_i : 1;
761 : : u32 ovrd_en_rxs0_rx0_signal_type_i : 1;
762 : : u32 ovrd_en_rxs0_rx0_sync_detect_en_i : 1;
763 : : u32 ovrd_en_rxs0_rx0_sync_o : 1;
764 : : u32 ovrd_en_rxs0_rx0_rate_select_i : 1;
765 : : u32 ovrd_en_rxs0_rx0_rterm_en_i : 1;
766 : : u32 ovrd_en_rxs0_rx0_bias_en_i : 1;
767 : : u32 ovrd_en_rxs0_rx0_ldo_en_i : 1;
768 : : u32 ovrd_en_rxs0_rx0_ldo_rdy_i : 1;
769 : : u32 ovrd_en_rxs0_rx0_blwc_en_i : 1;
770 : : u32 ovrd_en_rxs0_rx0_ctle_en_i : 1;
771 : : u32 ovrd_en_rxs0_rx0_vga_en_i : 1;
772 : : u32 ovrd_en_rxs0_rx0_osc_sel_i : 1;
773 : : u32 ovrd_en_rxs0_rx0_osc_en_i : 1;
774 : : u32 ovrd_en_rxs0_rx0_clkgencdr_en_i : 1;
775 : : u32 ovrd_en_rxs0_rx0_ctlecdr_en_i : 1;
776 : : u32 ovrd_en_rxs0_rx0_samp_en_i : 1;
777 : : u32 ovrd_en_rxs0_rx0_adc_en_i : 1;
778 : : u32 ovrd_en_rxs0_rx0_osc_cal_en_i : 1;
779 : : u32 ovrd_en_rxs0_rx0_osc_cal_done_o : 1;
780 : : u32 ovrd_en_rxs0_rx0_osc_freq_error_o : 1;
781 : : u32 ovrd_en_rxs0_rx0_samp_cal_en_i : 1;
782 : : u32 ovrd_en_rxs0_rx0_samp_cal_done_o : 1;
783 : : u32 ovrd_en_rxs0_rx0_samp_cal_err_o : 1;
784 : : u32 ovrd_en_rxs0_rx0_adc_ofst_cal_en_i : 1;
785 : : u32 ovrd_en_rxs0_rx0_adc_ofst_cal_done_o : 1;
786 : : u32 ovrd_en_rxs0_rx0_adc_ofst_cal_error_o : 1;
787 : : };
788 : : u32 reg;
789 : : } E56G__PMD_RXS0_OVRDEN_0;
790 : :
791 : : #define E56G__PMD_RXS0_OVRDEN_0_NUM 1
792 : : #define E56G__PMD_RXS0_OVRDEN_0_ADDR (E56G__BASEADDR + 0x1530)
793 : :
794 : : typedef union {
795 : : struct {
796 : : u32 ovrd_en_rxs0_rx0_sparein_i : 8;
797 : : u32 ovrd_en_rxs0_rx0_spareout_o : 8;
798 : : u32 rsvd0 : 16;
799 : : };
800 : : u32 reg;
801 : : } E56G__PMD_RXS0_OVRDEN_3;
802 : :
803 : : #define E56G__PMD_RXS0_OVRDEN_3_NUM 1
804 : : #define E56G__PMD_RXS0_OVRDEN_3_ADDR (E56G__BASEADDR + 0x153c)
805 : :
806 : : typedef union {
807 : : struct {
808 : : u32 vco_code_cont_adj_done_ovrd_en : 1;
809 : : u32 dfe_coeffl_ovrd_en : 1;
810 : : u32 dfe_coeffh_ovrd_en : 1;
811 : : u32 rsvd0 : 1;
812 : : u32 top_comp_th_ovrd_en : 1;
813 : : u32 mid_comp_th_ovrd_en : 1;
814 : : u32 bot_comp_th_ovrd_en : 1;
815 : : u32 rsvd1 : 1;
816 : : u32 level_target_ovrd_en : 4;
817 : : u32 ffe_coeff_c0to3_ovrd_en : 4;
818 : : u32 ffe_coeff_c4to7_ovrd_en : 4;
819 : : u32 ffe_coeff_c8to11_ovrd_en : 4;
820 : : u32 ffe_coeff_c12to15_ovrd_en : 4;
821 : : u32 ffe_coeff_update_ovrd_en : 1;
822 : : u32 rsvd2 : 3;
823 : : };
824 : : u32 reg;
825 : : } E56G__RXS0_DIG_OVRDEN_1;
826 : :
827 : : #define E56G__RXS0_DIG_OVRDEN_1_NUM 1
828 : : #define E56G__RXS0_DIG_OVRDEN_1_ADDR (E56G__BASEADDR + 0x160)
829 : :
830 : : typedef union {
831 : : struct {
832 : : u32 ber_en : 1;
833 : : u32 rsvd0 : 3;
834 : : u32 read_mode_en : 1;
835 : : u32 rsvd1 : 3;
836 : : u32 err_cnt_mode_all0_one1 : 1;
837 : : u32 rsvd2 : 3;
838 : : u32 init_lfsr_mode_continue0_restart1 : 1;
839 : : u32 rsvd3 : 3;
840 : : u32 pattern_sel : 4;
841 : : u32 rsvd4 : 12;
842 : : };
843 : : u32 reg;
844 : : } E56G__RXS0_DFT_1;
845 : :
846 : : #define E56G__RXS0_DFT_1_NUM 1
847 : : #define E56G__RXS0_DFT_1_ADDR (E56G__BASEADDR + 0xec)
848 : :
849 : : typedef union {
850 : : struct {
851 : : u32 ovrd_en_rxs0_rx0_adc_ofst_adapt_en_i : 1;
852 : : u32 ovrd_en_rxs0_rx0_adc_ofst_adapt_done_o : 1;
853 : : u32 ovrd_en_rxs0_rx0_adc_ofst_adapt_error_o : 1;
854 : : u32 ovrd_en_rxs0_rx0_adc_gain_adapt_en_i : 1;
855 : : u32 ovrd_en_rxs0_rx0_adc_gain_adapt_done_o : 1;
856 : : u32 ovrd_en_rxs0_rx0_adc_gain_adapt_error_o : 1;
857 : : u32 ovrd_en_rxs0_rx0_adc_intl_adapt_en_i : 1;
858 : : u32 ovrd_en_rxs0_rx0_adc_intl_adapt_done_o : 1;
859 : : u32 ovrd_en_rxs0_rx0_adc_intl_adapt_error_o : 1;
860 : : u32 ovrd_en_rxs0_rx0_fe_ofst_adapt_en_i : 1;
861 : : u32 ovrd_en_rxs0_rx0_fe_ofst_adapt_done_o : 1;
862 : : u32 ovrd_en_rxs0_rx0_fe_ofst_adapt_error_o : 1;
863 : : u32 ovrd_en_rxs0_rx0_samp_th_adapt_en_i : 1;
864 : : u32 ovrd_en_rxs0_rx0_samp_th_adapt_done_o : 1;
865 : : u32 ovrd_en_rxs0_rx0_efuse_bits_i : 1;
866 : : u32 ovrd_en_rxs0_rx0_wp_pmt_in_i : 1;
867 : : u32 ovrd_en_rxs0_rx0_wp_pmt_out_o : 1;
868 : : u32 rsvd0 : 15;
869 : : };
870 : : u32 reg;
871 : : } E56G__PMD_RXS0_OVRDEN_2;
872 : :
873 : : #define E56G__PMD_RXS0_OVRDEN_2_ADDR (E56G__BASEADDR + 0x1538)
874 : :
875 : : typedef union {
876 : : struct {
877 : : u32 ana_bbcdr_osc_range_sel_i : 2;
878 : : u32 rsvd0 : 2;
879 : : u32 ana_bbcdr_coarse_i : 4;
880 : : u32 ana_bbcdr_fine_i : 3;
881 : : u32 rsvd1 : 1;
882 : : u32 ana_bbcdr_ultrafine_i : 3;
883 : : u32 rsvd2 : 1;
884 : : u32 ana_bbcdr_divctrl_i : 2;
885 : : u32 rsvd3 : 2;
886 : : u32 ana_bbcdr_int_cstm_i : 5;
887 : : u32 rsvd4 : 3;
888 : : u32 ana_bbcdr_prop_step_i : 4;
889 : : };
890 : : u32 reg;
891 : : } E56G__RXS0_ANA_OVRDVAL_5;
892 : :
893 : : #define E56G__RXS0_ANA_OVRDVAL_5_ADDR (E56G__BASEADDR + 0xb4)
894 : :
895 : : typedef union {
896 : : struct {
897 : : u32 ana_adc_pictrl_quad_i : 2;
898 : : u32 rsvd0 : 2;
899 : : u32 ana_adc_clkdiv_i : 2;
900 : : u32 rsvd1 : 2;
901 : : u32 ana_test_adc_clkgen_i : 4;
902 : : u32 ana_vref_cnfg_i : 4;
903 : : u32 ana_adcgain_cal_swing_ctrl_i : 4;
904 : : u32 ana_adc_gain_i : 4;
905 : : u32 ana_adc_offset_i : 4;
906 : : u32 ana_ana_debug_sel_i : 4;
907 : : };
908 : : u32 reg;
909 : : } E56G__RXS3_ANA_OVRDVAL_11;
910 : :
911 : : #define E56G__RXS3_ANA_OVRDVAL_11_ADDR (E56G__BASEADDR + 0x6cc)
912 : :
913 : : typedef union {
914 : : struct {
915 : : u32 rxs0_rx0_fe_ofst_cal_error_o : 1;
916 : : u32 rxs0_rx0_fom_en_i : 1;
917 : : u32 rxs0_rx0_idle_detect_en_i : 1;
918 : : u32 rxs0_rx0_idle_o : 1;
919 : : u32 rxs0_rx0_txffe_train_en_i : 1;
920 : : u32 rxs0_rx0_txffe_train_enack_o : 1;
921 : : u32 rxs0_rx0_txffe_train_done_o : 1;
922 : : u32 rxs0_rx0_vga_train_en_i : 1;
923 : : u32 rxs0_rx0_vga_train_done_o : 1;
924 : : u32 rxs0_rx0_ctle_train_en_i : 1;
925 : : u32 rxs0_rx0_ctle_train_done_o : 1;
926 : : u32 rxs0_rx0_cdr_en_i : 1;
927 : : u32 rxs0_rx0_cdr_rdy_o : 1;
928 : : u32 rxs0_rx0_ffe_train_en_i : 1;
929 : : u32 rxs0_rx0_ffe_train_done_o : 1;
930 : : u32 rxs0_rx0_mmpd_en_i : 1;
931 : : u32 rxs0_rx0_adc_intl_cal_en_i : 1;
932 : : u32 rxs0_rx0_adc_intl_cal_done_o : 1;
933 : : u32 rxs0_rx0_adc_intl_cal_error_o : 1;
934 : : u32 rxs0_rx0_dfe_train_en_i : 1;
935 : : u32 rxs0_rx0_dfe_train_done_o : 1;
936 : : u32 rxs0_rx0_vga_adapt_en_i : 1;
937 : : u32 rxs0_rx0_vga_adapt_done_o : 1;
938 : : u32 rxs0_rx0_ctle_adapt_en_i : 1;
939 : : u32 rxs0_rx0_ctle_adapt_done_o : 1;
940 : : u32 rxs0_rx0_adc_ofst_adapt_en_i : 1;
941 : : u32 rxs0_rx0_adc_ofst_adapt_done_o : 1;
942 : : u32 rxs0_rx0_adc_ofst_adapt_error_o : 1;
943 : : u32 rxs0_rx0_adc_gain_adapt_en_i : 1;
944 : : u32 rxs0_rx0_adc_gain_adapt_done_o : 1;
945 : : u32 rxs0_rx0_adc_gain_adapt_error_o : 1;
946 : : u32 rxs0_rx0_adc_intl_adapt_en_i : 1;
947 : : };
948 : : u32 reg;
949 : : } E56G__PMD_RXS0_OVRDVAL_1;
950 : : #define E56G__PMD_RXS0_OVRDVAL_1_ADDR (E56G__BASEADDR + 0x1544)
951 : :
952 : : typedef union {
953 : : struct {
954 : : u32 rxs1_rx0_fe_ofst_cal_error_o : 1;
955 : : u32 rxs1_rx0_fom_en_i : 1;
956 : : u32 rxs1_rx0_idle_detect_en_i : 1;
957 : : u32 rxs1_rx0_idle_o : 1;
958 : : u32 rxs1_rx0_txffe_train_en_i : 1;
959 : : u32 rxs1_rx0_txffe_train_enack_o : 1;
960 : : u32 rxs1_rx0_txffe_train_done_o : 1;
961 : : u32 rxs1_rx0_vga_train_en_i : 1;
962 : : u32 rxs1_rx0_vga_train_done_o : 1;
963 : : u32 rxs1_rx0_ctle_train_en_i : 1;
964 : : u32 rxs1_rx0_ctle_train_done_o : 1;
965 : : u32 rxs1_rx0_cdr_en_i : 1;
966 : : u32 rxs1_rx0_cdr_rdy_o : 1;
967 : : u32 rxs1_rx0_ffe_train_en_i : 1;
968 : : u32 rxs1_rx0_ffe_train_done_o : 1;
969 : : u32 rxs1_rx0_mmpd_en_i : 1;
970 : : u32 rxs1_rx0_adc_intl_cal_en_i : 1;
971 : : u32 rxs1_rx0_adc_intl_cal_done_o : 1;
972 : : u32 rxs1_rx0_adc_intl_cal_error_o : 1;
973 : : u32 rxs1_rx0_dfe_train_en_i : 1;
974 : : u32 rxs1_rx0_dfe_train_done_o : 1;
975 : : u32 rxs1_rx0_vga_adapt_en_i : 1;
976 : : u32 rxs1_rx0_vga_adapt_done_o : 1;
977 : : u32 rxs1_rx0_ctle_adapt_en_i : 1;
978 : : u32 rxs1_rx0_ctle_adapt_done_o : 1;
979 : : u32 rxs1_rx0_adc_ofst_adapt_en_i : 1;
980 : : u32 rxs1_rx0_adc_ofst_adapt_done_o : 1;
981 : : u32 rxs1_rx0_adc_ofst_adapt_error_o : 1;
982 : : u32 rxs1_rx0_adc_gain_adapt_en_i : 1;
983 : : u32 rxs1_rx0_adc_gain_adapt_done_o : 1;
984 : : u32 rxs1_rx0_adc_gain_adapt_error_o : 1;
985 : : u32 rxs1_rx0_adc_intl_adapt_en_i : 1;
986 : : };
987 : : u32 reg;
988 : : } E56G__PMD_RXS1_OVRDVAL_1;
989 : :
990 : : #define E56G__PMD_RXS1_OVRDVAL_1_ADDR (E56G__BASEADDR + 0x1570)
991 : :
992 : : typedef union {
993 : : struct {
994 : : u32 rxs2_rx0_fe_ofst_cal_error_o : 1;
995 : : u32 rxs2_rx0_fom_en_i : 1;
996 : : u32 rxs2_rx0_idle_detect_en_i : 1;
997 : : u32 rxs2_rx0_idle_o : 1;
998 : : u32 rxs2_rx0_txffe_train_en_i : 1;
999 : : u32 rxs2_rx0_txffe_train_enack_o : 1;
1000 : : u32 rxs2_rx0_txffe_train_done_o : 1;
1001 : : u32 rxs2_rx0_vga_train_en_i : 1;
1002 : : u32 rxs2_rx0_vga_train_done_o : 1;
1003 : : u32 rxs2_rx0_ctle_train_en_i : 1;
1004 : : u32 rxs2_rx0_ctle_train_done_o : 1;
1005 : : u32 rxs2_rx0_cdr_en_i : 1;
1006 : : u32 rxs2_rx0_cdr_rdy_o : 1;
1007 : : u32 rxs2_rx0_ffe_train_en_i : 1;
1008 : : u32 rxs2_rx0_ffe_train_done_o : 1;
1009 : : u32 rxs2_rx0_mmpd_en_i : 1;
1010 : : u32 rxs2_rx0_adc_intl_cal_en_i : 1;
1011 : : u32 rxs2_rx0_adc_intl_cal_done_o : 1;
1012 : : u32 rxs2_rx0_adc_intl_cal_error_o : 1;
1013 : : u32 rxs2_rx0_dfe_train_en_i : 1;
1014 : : u32 rxs2_rx0_dfe_train_done_o : 1;
1015 : : u32 rxs2_rx0_vga_adapt_en_i : 1;
1016 : : u32 rxs2_rx0_vga_adapt_done_o : 1;
1017 : : u32 rxs2_rx0_ctle_adapt_en_i : 1;
1018 : : u32 rxs2_rx0_ctle_adapt_done_o : 1;
1019 : : u32 rxs2_rx0_adc_ofst_adapt_en_i : 1;
1020 : : u32 rxs2_rx0_adc_ofst_adapt_done_o : 1;
1021 : : u32 rxs2_rx0_adc_ofst_adapt_error_o : 1;
1022 : : u32 rxs2_rx0_adc_gain_adapt_en_i : 1;
1023 : : u32 rxs2_rx0_adc_gain_adapt_done_o : 1;
1024 : : u32 rxs2_rx0_adc_gain_adapt_error_o : 1;
1025 : : u32 rxs2_rx0_adc_intl_adapt_en_i : 1;
1026 : : };
1027 : : u32 reg;
1028 : : } E56G__PMD_RXS2_OVRDVAL_1;
1029 : :
1030 : : #define E56G__PMD_RXS2_OVRDVAL_1_ADDR (E56G__BASEADDR + 0x159c)
1031 : :
1032 : : typedef union {
1033 : : struct {
1034 : : u32 rxs3_rx0_fe_ofst_cal_error_o : 1;
1035 : : u32 rxs3_rx0_fom_en_i : 1;
1036 : : u32 rxs3_rx0_idle_detect_en_i : 1;
1037 : : u32 rxs3_rx0_idle_o : 1;
1038 : : u32 rxs3_rx0_txffe_train_en_i : 1;
1039 : : u32 rxs3_rx0_txffe_train_enack_o : 1;
1040 : : u32 rxs3_rx0_txffe_train_done_o : 1;
1041 : : u32 rxs3_rx0_vga_train_en_i : 1;
1042 : : u32 rxs3_rx0_vga_train_done_o : 1;
1043 : : u32 rxs3_rx0_ctle_train_en_i : 1;
1044 : : u32 rxs3_rx0_ctle_train_done_o : 1;
1045 : : u32 rxs3_rx0_cdr_en_i : 1;
1046 : : u32 rxs3_rx0_cdr_rdy_o : 1;
1047 : : u32 rxs3_rx0_ffe_train_en_i : 1;
1048 : : u32 rxs3_rx0_ffe_train_done_o : 1;
1049 : : u32 rxs3_rx0_mmpd_en_i : 1;
1050 : : u32 rxs3_rx0_adc_intl_cal_en_i : 1;
1051 : : u32 rxs3_rx0_adc_intl_cal_done_o : 1;
1052 : : u32 rxs3_rx0_adc_intl_cal_error_o : 1;
1053 : : u32 rxs3_rx0_dfe_train_en_i : 1;
1054 : : u32 rxs3_rx0_dfe_train_done_o : 1;
1055 : : u32 rxs3_rx0_vga_adapt_en_i : 1;
1056 : : u32 rxs3_rx0_vga_adapt_done_o : 1;
1057 : : u32 rxs3_rx0_ctle_adapt_en_i : 1;
1058 : : u32 rxs3_rx0_ctle_adapt_done_o : 1;
1059 : : u32 rxs3_rx0_adc_ofst_adapt_en_i : 1;
1060 : : u32 rxs3_rx0_adc_ofst_adapt_done_o : 1;
1061 : : u32 rxs3_rx0_adc_ofst_adapt_error_o : 1;
1062 : : u32 rxs3_rx0_adc_gain_adapt_en_i : 1;
1063 : : u32 rxs3_rx0_adc_gain_adapt_done_o : 1;
1064 : : u32 rxs3_rx0_adc_gain_adapt_error_o : 1;
1065 : : u32 rxs3_rx0_adc_intl_adapt_en_i : 1;
1066 : : };
1067 : : u32 reg;
1068 : : } E56G__PMD_RXS3_OVRDVAL_1;
1069 : :
1070 : : #define E56G__PMD_RXS3_OVRDVAL_1_ADDR (E56G__BASEADDR + 0x15c8)
1071 : :
1072 : : typedef union {
1073 : : struct {
1074 : : u32 ctrl_fsm_rx0_st : 6;
1075 : : u32 rsvd0 : 2;
1076 : : u32 ctrl_fsm_rx1_st : 6;
1077 : : u32 rsvd1 : 2;
1078 : : u32 ctrl_fsm_rx2_st : 6;
1079 : : u32 rsvd2 : 2;
1080 : : u32 ctrl_fsm_rx3_st : 6;
1081 : : u32 rsvd3 : 2;
1082 : : };
1083 : : u32 reg;
1084 : : } E56G__PMD_CTRL_FSM_RX_STAT_0;
1085 : :
1086 : : #define E56G__PMD_CTRL_FSM_RX_STAT_0_ADDR (E56G__BASEADDR + 0x14fc)
1087 : :
1088 : : typedef union {
1089 : : struct {
1090 : : u32 ana_en_rterm_i : 1;
1091 : : u32 ana_en_bias_i : 1;
1092 : : u32 ana_en_ldo_i : 1;
1093 : : u32 ana_rstn_i : 1;
1094 : : u32 ana_en_blwc_i : 1;
1095 : : u32 ana_en_acc_amp_i : 1;
1096 : : u32 ana_en_acc_dac_i : 1;
1097 : : u32 ana_en_afe_offset_cal_i : 1;
1098 : : u32 ana_clk_offsetcal_i : 1;
1099 : : u32 ana_acc_os_comp_o : 1;
1100 : : u32 ana_en_ctle_i : 1;
1101 : : u32 ana_ctle_bypass_i : 1;
1102 : : u32 ana_en_ctlecdr_i : 1;
1103 : : u32 ana_cdr_ctle_boost_i : 1;
1104 : : u32 ana_en_vga_i : 1;
1105 : : u32 ana_en_bbcdr_vco_i : 1;
1106 : : u32 ana_bbcdr_vcofilt_byp_i : 1;
1107 : : u32 ana_en_bbcdr_i : 1;
1108 : : u32 ana_en_bbcdr_clk_i : 1;
1109 : : u32 ana_bbcdr_en_elv_cnt_ping0_pong1_i : 1;
1110 : : u32 ana_bbcdr_clrz_elv_cnt_ping_i : 1;
1111 : : u32 ana_bbcdr_clrz_elv_cnt_pong_i : 1;
1112 : : u32 ana_bbcdr_clrz_cnt_sync_i : 1;
1113 : : u32 ana_bbcdr_en_elv_cnt_rd_i : 1;
1114 : : u32 ana_bbcdr_elv_cnt_ping_0_o : 1;
1115 : : u32 ana_bbcdr_elv_cnt_ping_90_o : 1;
1116 : : u32 ana_bbcdr_elv_cnt_ping_180_o : 1;
1117 : : u32 ana_bbcdr_elv_cnt_ping_270_o : 1;
1118 : : u32 ana_bbcdr_elv_cnt_pong_0_o : 1;
1119 : : u32 ana_bbcdr_elv_cnt_pong_90_o : 1;
1120 : : u32 ana_bbcdr_elv_cnt_pong_180_o : 1;
1121 : : u32 ana_bbcdr_elv_cnt_pong_270_o : 1;
1122 : : };
1123 : : u32 reg;
1124 : : } E56G__RXS0_ANA_OVRDVAL_0;
1125 : : #define E56G__RXS0_ANA_OVRDVAL_0_ADDR (E56G__BASEADDR + 0xa0)
1126 : :
1127 : : typedef union {
1128 : : struct {
1129 : : u32 ana_en_rterm_i : 1;
1130 : : u32 ana_en_bias_i : 1;
1131 : : u32 ana_en_ldo_i : 1;
1132 : : u32 ana_rstn_i : 1;
1133 : : u32 ana_en_blwc_i : 1;
1134 : : u32 ana_en_acc_amp_i : 1;
1135 : : u32 ana_en_acc_dac_i : 1;
1136 : : u32 ana_en_afe_offset_cal_i : 1;
1137 : : u32 ana_clk_offsetcal_i : 1;
1138 : : u32 ana_acc_os_comp_o : 1;
1139 : : u32 ana_en_ctle_i : 1;
1140 : : u32 ana_ctle_bypass_i : 1;
1141 : : u32 ana_en_ctlecdr_i : 1;
1142 : : u32 ana_cdr_ctle_boost_i : 1;
1143 : : u32 ana_en_vga_i : 1;
1144 : : u32 ana_en_bbcdr_vco_i : 1;
1145 : : u32 ana_bbcdr_vcofilt_byp_i : 1;
1146 : : u32 ana_en_bbcdr_i : 1;
1147 : : u32 ana_en_bbcdr_clk_i : 1;
1148 : : u32 ana_bbcdr_en_elv_cnt_ping0_pong1_i : 1;
1149 : : u32 ana_bbcdr_clrz_elv_cnt_ping_i : 1;
1150 : : u32 ana_bbcdr_clrz_elv_cnt_pong_i : 1;
1151 : : u32 ana_bbcdr_clrz_cnt_sync_i : 1;
1152 : : u32 ana_bbcdr_en_elv_cnt_rd_i : 1;
1153 : : u32 ana_bbcdr_elv_cnt_ping_0_o : 1;
1154 : : u32 ana_bbcdr_elv_cnt_ping_90_o : 1;
1155 : : u32 ana_bbcdr_elv_cnt_ping_180_o : 1;
1156 : : u32 ana_bbcdr_elv_cnt_ping_270_o : 1;
1157 : : u32 ana_bbcdr_elv_cnt_pong_0_o : 1;
1158 : : u32 ana_bbcdr_elv_cnt_pong_90_o : 1;
1159 : : u32 ana_bbcdr_elv_cnt_pong_180_o : 1;
1160 : : u32 ana_bbcdr_elv_cnt_pong_270_o : 1;
1161 : : };
1162 : : u32 reg;
1163 : : } E56G__RXS1_ANA_OVRDVAL_0;
1164 : :
1165 : : #define E56G__RXS1_ANA_OVRDVAL_0_ADDR (E56G__BASEADDR + 0x2a0)
1166 : :
1167 : : typedef union {
1168 : : struct {
1169 : : u32 ana_en_rterm_i : 1;
1170 : : u32 ana_en_bias_i : 1;
1171 : : u32 ana_en_ldo_i : 1;
1172 : : u32 ana_rstn_i : 1;
1173 : : u32 ana_en_blwc_i : 1;
1174 : : u32 ana_en_acc_amp_i : 1;
1175 : : u32 ana_en_acc_dac_i : 1;
1176 : : u32 ana_en_afe_offset_cal_i : 1;
1177 : : u32 ana_clk_offsetcal_i : 1;
1178 : : u32 ana_acc_os_comp_o : 1;
1179 : : u32 ana_en_ctle_i : 1;
1180 : : u32 ana_ctle_bypass_i : 1;
1181 : : u32 ana_en_ctlecdr_i : 1;
1182 : : u32 ana_cdr_ctle_boost_i : 1;
1183 : : u32 ana_en_vga_i : 1;
1184 : : u32 ana_en_bbcdr_vco_i : 1;
1185 : : u32 ana_bbcdr_vcofilt_byp_i : 1;
1186 : : u32 ana_en_bbcdr_i : 1;
1187 : : u32 ana_en_bbcdr_clk_i : 1;
1188 : : u32 ana_bbcdr_en_elv_cnt_ping0_pong1_i : 1;
1189 : : u32 ana_bbcdr_clrz_elv_cnt_ping_i : 1;
1190 : : u32 ana_bbcdr_clrz_elv_cnt_pong_i : 1;
1191 : : u32 ana_bbcdr_clrz_cnt_sync_i : 1;
1192 : : u32 ana_bbcdr_en_elv_cnt_rd_i : 1;
1193 : : u32 ana_bbcdr_elv_cnt_ping_0_o : 1;
1194 : : u32 ana_bbcdr_elv_cnt_ping_90_o : 1;
1195 : : u32 ana_bbcdr_elv_cnt_ping_180_o : 1;
1196 : : u32 ana_bbcdr_elv_cnt_ping_270_o : 1;
1197 : : u32 ana_bbcdr_elv_cnt_pong_0_o : 1;
1198 : : u32 ana_bbcdr_elv_cnt_pong_90_o : 1;
1199 : : u32 ana_bbcdr_elv_cnt_pong_180_o : 1;
1200 : : u32 ana_bbcdr_elv_cnt_pong_270_o : 1;
1201 : : };
1202 : : u32 reg;
1203 : : } E56G__RXS2_ANA_OVRDVAL_0;
1204 : :
1205 : : #define E56G__RXS2_ANA_OVRDVAL_0_ADDR (E56G__BASEADDR + 0x4a0)
1206 : :
1207 : : typedef union {
1208 : : struct {
1209 : : u32 ana_en_rterm_i : 1;
1210 : : u32 ana_en_bias_i : 1;
1211 : : u32 ana_en_ldo_i : 1;
1212 : : u32 ana_rstn_i : 1;
1213 : : u32 ana_en_blwc_i : 1;
1214 : : u32 ana_en_acc_amp_i : 1;
1215 : : u32 ana_en_acc_dac_i : 1;
1216 : : u32 ana_en_afe_offset_cal_i : 1;
1217 : : u32 ana_clk_offsetcal_i : 1;
1218 : : u32 ana_acc_os_comp_o : 1;
1219 : : u32 ana_en_ctle_i : 1;
1220 : : u32 ana_ctle_bypass_i : 1;
1221 : : u32 ana_en_ctlecdr_i : 1;
1222 : : u32 ana_cdr_ctle_boost_i : 1;
1223 : : u32 ana_en_vga_i : 1;
1224 : : u32 ana_en_bbcdr_vco_i : 1;
1225 : : u32 ana_bbcdr_vcofilt_byp_i : 1;
1226 : : u32 ana_en_bbcdr_i : 1;
1227 : : u32 ana_en_bbcdr_clk_i : 1;
1228 : : u32 ana_bbcdr_en_elv_cnt_ping0_pong1_i : 1;
1229 : : u32 ana_bbcdr_clrz_elv_cnt_ping_i : 1;
1230 : : u32 ana_bbcdr_clrz_elv_cnt_pong_i : 1;
1231 : : u32 ana_bbcdr_clrz_cnt_sync_i : 1;
1232 : : u32 ana_bbcdr_en_elv_cnt_rd_i : 1;
1233 : : u32 ana_bbcdr_elv_cnt_ping_0_o : 1;
1234 : : u32 ana_bbcdr_elv_cnt_ping_90_o : 1;
1235 : : u32 ana_bbcdr_elv_cnt_ping_180_o : 1;
1236 : : u32 ana_bbcdr_elv_cnt_ping_270_o : 1;
1237 : : u32 ana_bbcdr_elv_cnt_pong_0_o : 1;
1238 : : u32 ana_bbcdr_elv_cnt_pong_90_o : 1;
1239 : : u32 ana_bbcdr_elv_cnt_pong_180_o : 1;
1240 : : u32 ana_bbcdr_elv_cnt_pong_270_o : 1;
1241 : : };
1242 : : u32 reg;
1243 : : } E56G__RXS3_ANA_OVRDVAL_0;
1244 : :
1245 : : #define E56G__RXS3_ANA_OVRDVAL_0_ADDR (E56G__BASEADDR + 0x6a0)
1246 : :
1247 : : typedef union {
1248 : : struct {
1249 : : u32 ovrd_en_ana_en_rterm_i : 1;
1250 : : u32 ovrd_en_ana_trim_rterm_i : 1;
1251 : : u32 ovrd_en_ana_en_bias_i : 1;
1252 : : u32 ovrd_en_ana_test_bias_i : 1;
1253 : : u32 ovrd_en_ana_en_ldo_i : 1;
1254 : : u32 ovrd_en_ana_test_ldo_i : 1;
1255 : : u32 ovrd_en_ana_rstn_i : 1;
1256 : : u32 ovrd_en_ana_en_blwc_i : 1;
1257 : : u32 ovrd_en_ana_en_acc_amp_i : 1;
1258 : : u32 ovrd_en_ana_en_acc_dac_i : 1;
1259 : : u32 ovrd_en_ana_en_afe_offset_cal_i : 1;
1260 : : u32 ovrd_en_ana_clk_offsetcal_i : 1;
1261 : : u32 ovrd_en_ana_acc_os_code_i : 1;
1262 : : u32 ovrd_en_ana_acc_os_comp_o : 1;
1263 : : u32 ovrd_en_ana_test_acc_i : 1;
1264 : : u32 ovrd_en_ana_en_ctle_i : 1;
1265 : : u32 ovrd_en_ana_ctle_bypass_i : 1;
1266 : : u32 ovrd_en_ana_ctle_cz_cstm_i : 1;
1267 : : u32 ovrd_en_ana_ctle_cload_cstm_i : 1;
1268 : : u32 ovrd_en_ana_test_ctle_i : 1;
1269 : : u32 ovrd_en_ana_lfeq_ctrl_cstm_i : 1;
1270 : : u32 ovrd_en_ana_en_ctlecdr_i : 1;
1271 : : u32 ovrd_en_ana_cdr_ctle_boost_i : 1;
1272 : : u32 ovrd_en_ana_test_ctlecdr_i : 1;
1273 : : u32 ovrd_en_ana_en_vga_i : 1;
1274 : : u32 ovrd_en_ana_vga_gain_cstm_i : 1;
1275 : : u32 ovrd_en_ana_vga_cload_in_cstm_i : 1;
1276 : : u32 ovrd_en_ana_test_vga_i : 1;
1277 : : u32 ovrd_en_ana_en_bbcdr_vco_i : 1;
1278 : : u32 ovrd_en_ana_bbcdr_osc_range_sel_i : 1;
1279 : : u32 ovrd_en_ana_sel_vga_gain_byp_i : 1;
1280 : : u32 ovrd_en_ana_vga2_gain_cstm_i : 1;
1281 : : };
1282 : : u32 reg;
1283 : : } E56G__RXS0_ANA_OVRDEN_0;
1284 : :
1285 : : #define E56G__RXS0_ANA_OVRDEN_0_ADDR (E56G__BASEADDR + 0x8c)
1286 : :
1287 : : typedef union {
1288 : : struct {
1289 : : u32 ovrd_en_ana_en_rterm_i : 1;
1290 : : u32 ovrd_en_ana_trim_rterm_i : 1;
1291 : : u32 ovrd_en_ana_en_bias_i : 1;
1292 : : u32 ovrd_en_ana_test_bias_i : 1;
1293 : : u32 ovrd_en_ana_en_ldo_i : 1;
1294 : : u32 ovrd_en_ana_test_ldo_i : 1;
1295 : : u32 ovrd_en_ana_rstn_i : 1;
1296 : : u32 ovrd_en_ana_en_blwc_i : 1;
1297 : : u32 ovrd_en_ana_en_acc_amp_i : 1;
1298 : : u32 ovrd_en_ana_en_acc_dac_i : 1;
1299 : : u32 ovrd_en_ana_en_afe_offset_cal_i : 1;
1300 : : u32 ovrd_en_ana_clk_offsetcal_i : 1;
1301 : : u32 ovrd_en_ana_acc_os_code_i : 1;
1302 : : u32 ovrd_en_ana_acc_os_comp_o : 1;
1303 : : u32 ovrd_en_ana_test_acc_i : 1;
1304 : : u32 ovrd_en_ana_en_ctle_i : 1;
1305 : : u32 ovrd_en_ana_ctle_bypass_i : 1;
1306 : : u32 ovrd_en_ana_ctle_cz_cstm_i : 1;
1307 : : u32 ovrd_en_ana_ctle_cload_cstm_i : 1;
1308 : : u32 ovrd_en_ana_test_ctle_i : 1;
1309 : : u32 ovrd_en_ana_lfeq_ctrl_cstm_i : 1;
1310 : : u32 ovrd_en_ana_en_ctlecdr_i : 1;
1311 : : u32 ovrd_en_ana_cdr_ctle_boost_i : 1;
1312 : : u32 ovrd_en_ana_test_ctlecdr_i : 1;
1313 : : u32 ovrd_en_ana_en_vga_i : 1;
1314 : : u32 ovrd_en_ana_vga_gain_cstm_i : 1;
1315 : : u32 ovrd_en_ana_vga_cload_in_cstm_i : 1;
1316 : : u32 ovrd_en_ana_test_vga_i : 1;
1317 : : u32 ovrd_en_ana_en_bbcdr_vco_i : 1;
1318 : : u32 ovrd_en_ana_bbcdr_osc_range_sel_i : 1;
1319 : : u32 ovrd_en_ana_sel_vga_gain_byp_i : 1;
1320 : : u32 ovrd_en_ana_vga2_gain_cstm_i : 1;
1321 : : };
1322 : : u32 reg;
1323 : : } E56G__RXS1_ANA_OVRDEN_0;
1324 : :
1325 : : #define E56G__RXS1_ANA_OVRDEN_0_ADDR (E56G__BASEADDR + 0x28c)
1326 : :
1327 : : typedef union {
1328 : : struct {
1329 : : u32 ovrd_en_ana_en_rterm_i : 1;
1330 : : u32 ovrd_en_ana_trim_rterm_i : 1;
1331 : : u32 ovrd_en_ana_en_bias_i : 1;
1332 : : u32 ovrd_en_ana_test_bias_i : 1;
1333 : : u32 ovrd_en_ana_en_ldo_i : 1;
1334 : : u32 ovrd_en_ana_test_ldo_i : 1;
1335 : : u32 ovrd_en_ana_rstn_i : 1;
1336 : : u32 ovrd_en_ana_en_blwc_i : 1;
1337 : : u32 ovrd_en_ana_en_acc_amp_i : 1;
1338 : : u32 ovrd_en_ana_en_acc_dac_i : 1;
1339 : : u32 ovrd_en_ana_en_afe_offset_cal_i : 1;
1340 : : u32 ovrd_en_ana_clk_offsetcal_i : 1;
1341 : : u32 ovrd_en_ana_acc_os_code_i : 1;
1342 : : u32 ovrd_en_ana_acc_os_comp_o : 1;
1343 : : u32 ovrd_en_ana_test_acc_i : 1;
1344 : : u32 ovrd_en_ana_en_ctle_i : 1;
1345 : : u32 ovrd_en_ana_ctle_bypass_i : 1;
1346 : : u32 ovrd_en_ana_ctle_cz_cstm_i : 1;
1347 : : u32 ovrd_en_ana_ctle_cload_cstm_i : 1;
1348 : : u32 ovrd_en_ana_test_ctle_i : 1;
1349 : : u32 ovrd_en_ana_lfeq_ctrl_cstm_i : 1;
1350 : : u32 ovrd_en_ana_en_ctlecdr_i : 1;
1351 : : u32 ovrd_en_ana_cdr_ctle_boost_i : 1;
1352 : : u32 ovrd_en_ana_test_ctlecdr_i : 1;
1353 : : u32 ovrd_en_ana_en_vga_i : 1;
1354 : : u32 ovrd_en_ana_vga_gain_cstm_i : 1;
1355 : : u32 ovrd_en_ana_vga_cload_in_cstm_i : 1;
1356 : : u32 ovrd_en_ana_test_vga_i : 1;
1357 : : u32 ovrd_en_ana_en_bbcdr_vco_i : 1;
1358 : : u32 ovrd_en_ana_bbcdr_osc_range_sel_i : 1;
1359 : : u32 ovrd_en_ana_sel_vga_gain_byp_i : 1;
1360 : : u32 ovrd_en_ana_vga2_gain_cstm_i : 1;
1361 : : };
1362 : : u32 reg;
1363 : : } E56G__RXS2_ANA_OVRDEN_0;
1364 : :
1365 : : #define E56G__RXS2_ANA_OVRDEN_0_ADDR (E56G__BASEADDR + 0x48c)
1366 : :
1367 : : typedef union {
1368 : : struct {
1369 : : u32 ovrd_en_ana_en_rterm_i : 1;
1370 : : u32 ovrd_en_ana_trim_rterm_i : 1;
1371 : : u32 ovrd_en_ana_en_bias_i : 1;
1372 : : u32 ovrd_en_ana_test_bias_i : 1;
1373 : : u32 ovrd_en_ana_en_ldo_i : 1;
1374 : : u32 ovrd_en_ana_test_ldo_i : 1;
1375 : : u32 ovrd_en_ana_rstn_i : 1;
1376 : : u32 ovrd_en_ana_en_blwc_i : 1;
1377 : : u32 ovrd_en_ana_en_acc_amp_i : 1;
1378 : : u32 ovrd_en_ana_en_acc_dac_i : 1;
1379 : : u32 ovrd_en_ana_en_afe_offset_cal_i : 1;
1380 : : u32 ovrd_en_ana_clk_offsetcal_i : 1;
1381 : : u32 ovrd_en_ana_acc_os_code_i : 1;
1382 : : u32 ovrd_en_ana_acc_os_comp_o : 1;
1383 : : u32 ovrd_en_ana_test_acc_i : 1;
1384 : : u32 ovrd_en_ana_en_ctle_i : 1;
1385 : : u32 ovrd_en_ana_ctle_bypass_i : 1;
1386 : : u32 ovrd_en_ana_ctle_cz_cstm_i : 1;
1387 : : u32 ovrd_en_ana_ctle_cload_cstm_i : 1;
1388 : : u32 ovrd_en_ana_test_ctle_i : 1;
1389 : : u32 ovrd_en_ana_lfeq_ctrl_cstm_i : 1;
1390 : : u32 ovrd_en_ana_en_ctlecdr_i : 1;
1391 : : u32 ovrd_en_ana_cdr_ctle_boost_i : 1;
1392 : : u32 ovrd_en_ana_test_ctlecdr_i : 1;
1393 : : u32 ovrd_en_ana_en_vga_i : 1;
1394 : : u32 ovrd_en_ana_vga_gain_cstm_i : 1;
1395 : : u32 ovrd_en_ana_vga_cload_in_cstm_i : 1;
1396 : : u32 ovrd_en_ana_test_vga_i : 1;
1397 : : u32 ovrd_en_ana_en_bbcdr_vco_i : 1;
1398 : : u32 ovrd_en_ana_bbcdr_osc_range_sel_i : 1;
1399 : : u32 ovrd_en_ana_sel_vga_gain_byp_i : 1;
1400 : : u32 ovrd_en_ana_vga2_gain_cstm_i : 1;
1401 : : };
1402 : : u32 reg;
1403 : : } E56G__RXS3_ANA_OVRDEN_0;
1404 : :
1405 : : #define E56G__RXS3_ANA_OVRDEN_0_NUM 1
1406 : : #define E56G__RXS3_ANA_OVRDEN_0_ADDR (E56G__BASEADDR + 0x68c)
1407 : :
1408 : : typedef union {
1409 : : struct {
1410 : : u32 ana_ctle_cz_cstm_i : 5;
1411 : : u32 rsvd0 : 3;
1412 : : u32 ana_ctle_cload_cstm_i : 5;
1413 : : u32 rsvd1 : 3;
1414 : : u32 ana_test_ctle_i : 2;
1415 : : u32 rsvd2 : 2;
1416 : : u32 ana_lfeq_ctrl_cstm_i : 4;
1417 : : u32 ana_test_ctlecdr_i : 2;
1418 : : u32 rsvd3 : 2;
1419 : : u32 ana_vga_cload_in_cstm_i : 3;
1420 : : u32 rsvd4 : 1;
1421 : : };
1422 : : u32 reg;
1423 : : } E56G__RXS0_ANA_OVRDVAL_3;
1424 : :
1425 : : #define E56G__RXS0_ANA_OVRDVAL_3_NUM 1
1426 : : #define E56G__RXS0_ANA_OVRDVAL_3_ADDR (E56G__BASEADDR + 0xac)
1427 : :
1428 : : typedef union {
1429 : : struct {
1430 : : u32 ana_ctle_cz_cstm_i : 5;
1431 : : u32 rsvd0 : 3;
1432 : : u32 ana_ctle_cload_cstm_i : 5;
1433 : : u32 rsvd1 : 3;
1434 : : u32 ana_test_ctle_i : 2;
1435 : : u32 rsvd2 : 2;
1436 : : u32 ana_lfeq_ctrl_cstm_i : 4;
1437 : : u32 ana_test_ctlecdr_i : 2;
1438 : : u32 rsvd3 : 2;
1439 : : u32 ana_vga_cload_in_cstm_i : 3;
1440 : : u32 rsvd4 : 1;
1441 : : };
1442 : : u32 reg;
1443 : : } E56G__RXS1_ANA_OVRDVAL_3;
1444 : :
1445 : : #define E56G__RXS1_ANA_OVRDVAL_3_ADDR (E56G__BASEADDR + 0x2ac)
1446 : :
1447 : : typedef union {
1448 : : struct {
1449 : : u32 ana_ctle_cz_cstm_i : 5;
1450 : : u32 rsvd0 : 3;
1451 : : u32 ana_ctle_cload_cstm_i : 5;
1452 : : u32 rsvd1 : 3;
1453 : : u32 ana_test_ctle_i : 2;
1454 : : u32 rsvd2 : 2;
1455 : : u32 ana_lfeq_ctrl_cstm_i : 4;
1456 : : u32 ana_test_ctlecdr_i : 2;
1457 : : u32 rsvd3 : 2;
1458 : : u32 ana_vga_cload_in_cstm_i : 3;
1459 : : u32 rsvd4 : 1;
1460 : : };
1461 : : u32 reg;
1462 : : } E56G__RXS2_ANA_OVRDVAL_3;
1463 : :
1464 : : #define E56G__RXS2_ANA_OVRDVAL_3_ADDR (E56G__BASEADDR + 0x4ac)
1465 : :
1466 : : typedef union {
1467 : : struct {
1468 : : u32 ana_ctle_cz_cstm_i : 5;
1469 : : u32 rsvd0 : 3;
1470 : : u32 ana_ctle_cload_cstm_i : 5;
1471 : : u32 rsvd1 : 3;
1472 : : u32 ana_test_ctle_i : 2;
1473 : : u32 rsvd2 : 2;
1474 : : u32 ana_lfeq_ctrl_cstm_i : 4;
1475 : : u32 ana_test_ctlecdr_i : 2;
1476 : : u32 rsvd3 : 2;
1477 : : u32 ana_vga_cload_in_cstm_i : 3;
1478 : : u32 rsvd4 : 1;
1479 : : };
1480 : : u32 reg;
1481 : : } E56G__RXS3_ANA_OVRDVAL_3;
1482 : :
1483 : : #define E56G__RXS3_ANA_OVRDVAL_3_ADDR (E56G__BASEADDR + 0x6ac)
1484 : :
1485 : : typedef union {
1486 : : struct {
1487 : : u32 ovrd_en_rxs0_rx0_adc_gain_cal_en_i : 1;
1488 : : u32 ovrd_en_rxs0_rx0_adc_gain_cal_done_o : 1;
1489 : : u32 ovrd_en_rxs0_rx0_adc_gain_cal_error_o : 1;
1490 : : u32 ovrd_en_rxs0_rx0_fe_ofst_cal_en_i : 1;
1491 : : u32 ovrd_en_rxs0_rx0_fe_ofst_cal_done_o : 1;
1492 : : u32 ovrd_en_rxs0_rx0_fe_ofst_cal_error_o : 1;
1493 : : u32 ovrd_en_rxs0_rx0_fom_en_i : 1;
1494 : : u32 ovrd_en_rxs0_rx0_idle_detect_en_i : 1;
1495 : : u32 ovrd_en_rxs0_rx0_idle_o : 1;
1496 : : u32 ovrd_en_rxs0_rx0_txffe_train_en_i : 1;
1497 : : u32 ovrd_en_rxs0_rx0_txffe_coeff_rst_i : 1;
1498 : : u32 ovrd_en_rxs0_rx0_txffe_train_enack_o : 1;
1499 : : u32 ovrd_en_rxs0_rx0_txffe_train_done_o : 1;
1500 : : u32 ovrd_en_rxs0_rx0_txffe_coeff_change_o : 1;
1501 : : u32 ovrd_en_rxs0_rx0_vga_train_en_i : 1;
1502 : : u32 ovrd_en_rxs0_rx0_vga_train_done_o : 1;
1503 : : u32 ovrd_en_rxs0_rx0_ctle_train_en_i : 1;
1504 : : u32 ovrd_en_rxs0_rx0_ctle_train_done_o : 1;
1505 : : u32 ovrd_en_rxs0_rx0_cdr_en_i : 1;
1506 : : u32 ovrd_en_rxs0_rx0_cdr_rdy_o : 1;
1507 : : u32 ovrd_en_rxs0_rx0_ffe_train_en_i : 1;
1508 : : u32 ovrd_en_rxs0_rx0_ffe_train_done_o : 1;
1509 : : u32 ovrd_en_rxs0_rx0_mmpd_en_i : 1;
1510 : : u32 ovrd_en_rxs0_rx0_adc_intl_cal_en_i : 1;
1511 : : u32 ovrd_en_rxs0_rx0_adc_intl_cal_done_o : 1;
1512 : : u32 ovrd_en_rxs0_rx0_adc_intl_cal_error_o : 1;
1513 : : u32 ovrd_en_rxs0_rx0_dfe_train_en_i : 1;
1514 : : u32 ovrd_en_rxs0_rx0_dfe_train_done_o : 1;
1515 : : u32 ovrd_en_rxs0_rx0_vga_adapt_en_i : 1;
1516 : : u32 ovrd_en_rxs0_rx0_vga_adapt_done_o : 1;
1517 : : u32 ovrd_en_rxs0_rx0_ctle_adapt_en_i : 1;
1518 : : u32 ovrd_en_rxs0_rx0_ctle_adapt_done_o : 1;
1519 : : };
1520 : : u32 reg;
1521 : : } E56G__PMD_RXS0_OVRDEN_1;
1522 : :
1523 : : #define E56G__PMD_RXS0_OVRDEN_1_NUM 1
1524 : : #define E56G__PMD_RXS0_OVRDEN_1_ADDR (E56G__BASEADDR + 0x1534)
1525 : :
1526 : : typedef union {
1527 : : struct {
1528 : : u32 ovrd_en_rxs1_rx0_adc_gain_cal_en_i : 1;
1529 : : u32 ovrd_en_rxs1_rx0_adc_gain_cal_done_o : 1;
1530 : : u32 ovrd_en_rxs1_rx0_adc_gain_cal_error_o : 1;
1531 : : u32 ovrd_en_rxs1_rx0_fe_ofst_cal_en_i : 1;
1532 : : u32 ovrd_en_rxs1_rx0_fe_ofst_cal_done_o : 1;
1533 : : u32 ovrd_en_rxs1_rx0_fe_ofst_cal_error_o : 1;
1534 : : u32 ovrd_en_rxs1_rx0_fom_en_i : 1;
1535 : : u32 ovrd_en_rxs1_rx0_idle_detect_en_i : 1;
1536 : : u32 ovrd_en_rxs1_rx0_idle_o : 1;
1537 : : u32 ovrd_en_rxs1_rx0_txffe_train_en_i : 1;
1538 : : u32 ovrd_en_rxs1_rx0_txffe_coeff_rst_i : 1;
1539 : : u32 ovrd_en_rxs1_rx0_txffe_train_enack_o : 1;
1540 : : u32 ovrd_en_rxs1_rx0_txffe_train_done_o : 1;
1541 : : u32 ovrd_en_rxs1_rx0_txffe_coeff_change_o : 1;
1542 : : u32 ovrd_en_rxs1_rx0_vga_train_en_i : 1;
1543 : : u32 ovrd_en_rxs1_rx0_vga_train_done_o : 1;
1544 : : u32 ovrd_en_rxs1_rx0_ctle_train_en_i : 1;
1545 : : u32 ovrd_en_rxs1_rx0_ctle_train_done_o : 1;
1546 : : u32 ovrd_en_rxs1_rx0_cdr_en_i : 1;
1547 : : u32 ovrd_en_rxs1_rx0_cdr_rdy_o : 1;
1548 : : u32 ovrd_en_rxs1_rx0_ffe_train_en_i : 1;
1549 : : u32 ovrd_en_rxs1_rx0_ffe_train_done_o : 1;
1550 : : u32 ovrd_en_rxs1_rx0_mmpd_en_i : 1;
1551 : : u32 ovrd_en_rxs1_rx0_adc_intl_cal_en_i : 1;
1552 : : u32 ovrd_en_rxs1_rx0_adc_intl_cal_done_o : 1;
1553 : : u32 ovrd_en_rxs1_rx0_adc_intl_cal_error_o : 1;
1554 : : u32 ovrd_en_rxs1_rx0_dfe_train_en_i : 1;
1555 : : u32 ovrd_en_rxs1_rx0_dfe_train_done_o : 1;
1556 : : u32 ovrd_en_rxs1_rx0_vga_adapt_en_i : 1;
1557 : : u32 ovrd_en_rxs1_rx0_vga_adapt_done_o : 1;
1558 : : u32 ovrd_en_rxs1_rx0_ctle_adapt_en_i : 1;
1559 : : u32 ovrd_en_rxs1_rx0_ctle_adapt_done_o : 1;
1560 : : };
1561 : : u32 reg;
1562 : : } E56G__PMD_RXS1_OVRDEN_1;
1563 : :
1564 : : #define E56G__PMD_RXS1_OVRDEN_1_ADDR (E56G__BASEADDR + 0x1560)
1565 : :
1566 : : typedef union {
1567 : : struct {
1568 : : u32 ovrd_en_rxs2_rx0_adc_gain_cal_en_i : 1;
1569 : : u32 ovrd_en_rxs2_rx0_adc_gain_cal_done_o : 1;
1570 : : u32 ovrd_en_rxs2_rx0_adc_gain_cal_error_o : 1;
1571 : : u32 ovrd_en_rxs2_rx0_fe_ofst_cal_en_i : 1;
1572 : : u32 ovrd_en_rxs2_rx0_fe_ofst_cal_done_o : 1;
1573 : : u32 ovrd_en_rxs2_rx0_fe_ofst_cal_error_o : 1;
1574 : : u32 ovrd_en_rxs2_rx0_fom_en_i : 1;
1575 : : u32 ovrd_en_rxs2_rx0_idle_detect_en_i : 1;
1576 : : u32 ovrd_en_rxs2_rx0_idle_o : 1;
1577 : : u32 ovrd_en_rxs2_rx0_txffe_train_en_i : 1;
1578 : : u32 ovrd_en_rxs2_rx0_txffe_coeff_rst_i : 1;
1579 : : u32 ovrd_en_rxs2_rx0_txffe_train_enack_o : 1;
1580 : : u32 ovrd_en_rxs2_rx0_txffe_train_done_o : 1;
1581 : : u32 ovrd_en_rxs2_rx0_txffe_coeff_change_o : 1;
1582 : : u32 ovrd_en_rxs2_rx0_vga_train_en_i : 1;
1583 : : u32 ovrd_en_rxs2_rx0_vga_train_done_o : 1;
1584 : : u32 ovrd_en_rxs2_rx0_ctle_train_en_i : 1;
1585 : : u32 ovrd_en_rxs2_rx0_ctle_train_done_o : 1;
1586 : : u32 ovrd_en_rxs2_rx0_cdr_en_i : 1;
1587 : : u32 ovrd_en_rxs2_rx0_cdr_rdy_o : 1;
1588 : : u32 ovrd_en_rxs2_rx0_ffe_train_en_i : 1;
1589 : : u32 ovrd_en_rxs2_rx0_ffe_train_done_o : 1;
1590 : : u32 ovrd_en_rxs2_rx0_mmpd_en_i : 1;
1591 : : u32 ovrd_en_rxs2_rx0_adc_intl_cal_en_i : 1;
1592 : : u32 ovrd_en_rxs2_rx0_adc_intl_cal_done_o : 1;
1593 : : u32 ovrd_en_rxs2_rx0_adc_intl_cal_error_o : 1;
1594 : : u32 ovrd_en_rxs2_rx0_dfe_train_en_i : 1;
1595 : : u32 ovrd_en_rxs2_rx0_dfe_train_done_o : 1;
1596 : : u32 ovrd_en_rxs2_rx0_vga_adapt_en_i : 1;
1597 : : u32 ovrd_en_rxs2_rx0_vga_adapt_done_o : 1;
1598 : : u32 ovrd_en_rxs2_rx0_ctle_adapt_en_i : 1;
1599 : : u32 ovrd_en_rxs2_rx0_ctle_adapt_done_o : 1;
1600 : : };
1601 : : u32 reg;
1602 : : } E56G__PMD_RXS2_OVRDEN_1;
1603 : :
1604 : : #define E56G__PMD_RXS2_OVRDEN_1_ADDR (E56G__BASEADDR + 0x158c)
1605 : :
1606 : : typedef union {
1607 : : struct {
1608 : : u32 ovrd_en_rxs3_rx0_adc_gain_cal_en_i : 1;
1609 : : u32 ovrd_en_rxs3_rx0_adc_gain_cal_done_o : 1;
1610 : : u32 ovrd_en_rxs3_rx0_adc_gain_cal_error_o : 1;
1611 : : u32 ovrd_en_rxs3_rx0_fe_ofst_cal_en_i : 1;
1612 : : u32 ovrd_en_rxs3_rx0_fe_ofst_cal_done_o : 1;
1613 : : u32 ovrd_en_rxs3_rx0_fe_ofst_cal_error_o : 1;
1614 : : u32 ovrd_en_rxs3_rx0_fom_en_i : 1;
1615 : : u32 ovrd_en_rxs3_rx0_idle_detect_en_i : 1;
1616 : : u32 ovrd_en_rxs3_rx0_idle_o : 1;
1617 : : u32 ovrd_en_rxs3_rx0_txffe_train_en_i : 1;
1618 : : u32 ovrd_en_rxs3_rx0_txffe_coeff_rst_i : 1;
1619 : : u32 ovrd_en_rxs3_rx0_txffe_train_enack_o : 1;
1620 : : u32 ovrd_en_rxs3_rx0_txffe_train_done_o : 1;
1621 : : u32 ovrd_en_rxs3_rx0_txffe_coeff_change_o : 1;
1622 : : u32 ovrd_en_rxs3_rx0_vga_train_en_i : 1;
1623 : : u32 ovrd_en_rxs3_rx0_vga_train_done_o : 1;
1624 : : u32 ovrd_en_rxs3_rx0_ctle_train_en_i : 1;
1625 : : u32 ovrd_en_rxs3_rx0_ctle_train_done_o : 1;
1626 : : u32 ovrd_en_rxs3_rx0_cdr_en_i : 1;
1627 : : u32 ovrd_en_rxs3_rx0_cdr_rdy_o : 1;
1628 : : u32 ovrd_en_rxs3_rx0_ffe_train_en_i : 1;
1629 : : u32 ovrd_en_rxs3_rx0_ffe_train_done_o : 1;
1630 : : u32 ovrd_en_rxs3_rx0_mmpd_en_i : 1;
1631 : : u32 ovrd_en_rxs3_rx0_adc_intl_cal_en_i : 1;
1632 : : u32 ovrd_en_rxs3_rx0_adc_intl_cal_done_o : 1;
1633 : : u32 ovrd_en_rxs3_rx0_adc_intl_cal_error_o : 1;
1634 : : u32 ovrd_en_rxs3_rx0_dfe_train_en_i : 1;
1635 : : u32 ovrd_en_rxs3_rx0_dfe_train_done_o : 1;
1636 : : u32 ovrd_en_rxs3_rx0_vga_adapt_en_i : 1;
1637 : : u32 ovrd_en_rxs3_rx0_vga_adapt_done_o : 1;
1638 : : u32 ovrd_en_rxs3_rx0_ctle_adapt_en_i : 1;
1639 : : u32 ovrd_en_rxs3_rx0_ctle_adapt_done_o : 1;
1640 : : };
1641 : : u32 reg;
1642 : : } E56G__PMD_RXS3_OVRDEN_1;
1643 : :
1644 : : #define E56G__PMD_RXS3_OVRDEN_1_ADDR (E56G__BASEADDR + 0x15b8)
1645 : :
1646 : : #define E56G__RXS0_FOM_18__ADDR (E56G__BASEADDR + 0x1f8)
1647 : : #define E56G__RXS0_FOM_18__DFE_COEFFL_HINT__MSB 11
1648 : : #define E56G__RXS0_FOM_18__DFE_COEFFL_HINT__LSB 0
1649 : : #define E56G__RXS0_FOM_18__DFE_COEFFH_HINT__MSB 23
1650 : : #define E56G__RXS0_FOM_18__DFE_COEFFH_HINT__LSB 12
1651 : : #define E56G__RXS0_FOM_18__DFE_COEFF_HINT_LOAD__MSB 25
1652 : : #define E56G__RXS0_FOM_18__DFE_COEFF_HINT_LOAD__LSB 25
1653 : :
1654 : : #define DEFAULT_TEMP 40
1655 : : #define HIGH_TEMP 70
1656 : :
1657 : : #define E56PHY_RX_RDY_ST 0x1B
1658 : :
1659 : : #define S10G_CMVAR_RANGE_H 0x3
1660 : : #define S10G_CMVAR_RANGE_L 0x2
1661 : : #define S25G_CMVAR_RANGE_H 0x1
1662 : : #define S25G_CMVAR_RANGE_L 0x0
1663 : :
1664 : : #define S25G_CMVAR_RANGE_H 0x1
1665 : : #define S25G_CMVAR_RANGE_L 0x0
1666 : : #define S25G_CMVAR_SEC_LOW_TH 0x1A
1667 : : #define S25G_CMVAR_SEC_HIGH_TH 0x1D
1668 : : #define S25G_CMVAR_UFINE_MAX 0x2
1669 : : #define S25G_CMVAR_FINE_MAX 0x7
1670 : : #define S25G_CMVAR_COARSE_MAX 0xF
1671 : : #define S25G_CMVAR_UFINE_UMAX_WRAP 0x0
1672 : : #define S25G_CMVAR_UFINE_FMAX_WRAP 0x0
1673 : : #define S25G_CMVAR_FINE_FMAX_WRAP 0x2
1674 : : #define S25G_CMVAR_UFINE_MIN 0x0
1675 : : #define S25G_CMVAR_FINE_MIN 0x0
1676 : : #define S25G_CMVAR_COARSE_MIN 0x1
1677 : : #define S25G_CMVAR_UFINE_UMIN_WRAP 0x2
1678 : : #define S25G_CMVAR_UFINE_FMIN_WRAP 0x2
1679 : : #define S25G_CMVAR_FINE_FMIN_WRAP 0x5
1680 : :
1681 : : #define S10G_CMVAR_RANGE_H 0x3
1682 : : #define S10G_CMVAR_RANGE_L 0x2
1683 : : #define S10G_CMVAR_SEC_LOW_TH 0x1A
1684 : : #define S10G_CMVAR_SEC_HIGH_TH 0x1D
1685 : : #define S10G_CMVAR_UFINE_MAX 0x7
1686 : : #define S10G_CMVAR_FINE_MAX 0x7
1687 : : #define S10G_CMVAR_COARSE_MAX 0xF
1688 : : #define S10G_CMVAR_UFINE_UMAX_WRAP 0x6
1689 : : #define S10G_CMVAR_UFINE_FMAX_WRAP 0x7
1690 : : #define S10G_CMVAR_FINE_FMAX_WRAP 0x1
1691 : : #define S10G_CMVAR_UFINE_MIN 0x0
1692 : : #define S10G_CMVAR_FINE_MIN 0x0
1693 : : #define S10G_CMVAR_COARSE_MIN 0x1
1694 : : #define S10G_CMVAR_UFINE_UMIN_WRAP 0x2
1695 : : #define S10G_CMVAR_UFINE_FMIN_WRAP 0x2
1696 : : #define S10G_CMVAR_FINE_FMIN_WRAP 0x5
1697 : :
1698 : : #define S10G_TX_FFE_CFG_MAIN 0x2c2c2c2c
1699 : : #define S10G_TX_FFE_CFG_PRE1 0x0
1700 : : #define S10G_TX_FFE_CFG_PRE2 0x0
1701 : : #define S10G_TX_FFE_CFG_POST 0x06060606
1702 : : #define S25G_TX_FFE_CFG_MAIN 0x31
1703 : : #define S25G_TX_FFE_CFG_PRE1 0x4
1704 : : #define S25G_TX_FFE_CFG_PRE2 0x1
1705 : : #define S25G_TX_FFE_CFG_POST 0x9
1706 : :
1707 : : #define S25G_TX_FFE_CFG_DAC_MAIN 0x2a
1708 : : #define S25G_TX_FFE_CFG_DAC_PRE1 0x03
1709 : : #define S25G_TX_FFE_CFG_DAC_PRE2 0x0
1710 : : #define S25G_TX_FFE_CFG_DAC_POST 0x11
1711 : :
1712 : : #define S40G_TX_FFE_CFG_MAIN 0x2b2b2b2b
1713 : : #define S40G_TX_FFE_CFG_PRE1 0x03030303
1714 : : #define S40G_TX_FFE_CFG_PRE2 0x0
1715 : : #define S40G_TX_FFE_CFG_POST 0x11111111
1716 : :
1717 : : #define BYPASS_CTLE_TAG 0x0
1718 : :
1719 : : #define S10G_PHY_RX_CTLE_TAPWT_WEIGHT1 0x1
1720 : : #define S10G_PHY_RX_CTLE_TAPWT_WEIGHT2 0x0
1721 : : #define S10G_PHY_RX_CTLE_TAPWT_WEIGHT3 0x0
1722 : : #define S10G_PHY_RX_CTLE_TAP_FRACP1 0x18
1723 : : #define S10G_PHY_RX_CTLE_TAP_FRACP2 0x0
1724 : : #define S10G_PHY_RX_CTLE_TAP_FRACP3 0x0
1725 : :
1726 : : #define S25G_PHY_RX_CTLE_TAPWT_WEIGHT1 0x1
1727 : : #define S25G_PHY_RX_CTLE_TAPWT_WEIGHT2 0x0
1728 : : #define S25G_PHY_RX_CTLE_TAPWT_WEIGHT3 0x0
1729 : : #define S25G_PHY_RX_CTLE_TAP_FRACP1 0x18
1730 : : #define S25G_PHY_RX_CTLE_TAP_FRACP2 0x0
1731 : : #define S25G_PHY_RX_CTLE_TAP_FRACP3 0x0
1732 : :
1733 : : #define TXGBE_E56_PHY_LINK_UP 0x4
1734 : :
1735 : : static inline void
1736 : : set_fields_e56(unsigned int *src_data, unsigned int bit_high,
1737 : : unsigned int bit_low, unsigned int set_value)
1738 : : {
1739 : : unsigned int i;
1740 : :
1741 : : /* Single bit field handling */
1742 : : if (bit_high == bit_low) {
1743 [ # # # # ]: 0 : if (set_value == 0) {
1744 : : /* clear single bit */
1745 [ # # ]: 0 : *src_data &= ~(1U << bit_low);
1746 : : } else {
1747 : : /* set single bit */
1748 [ # # ]: 0 : *src_data |= (1U << bit_low);
1749 : : }
1750 : : } else {
1751 : : /* first, clear the bit fields */
1752 [ # # # # : 0 : for (i = bit_low; i <= bit_high; i++) {
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # ]
1753 : : /* clear single bit */
1754 : 0 : *src_data &= ~(1U << i);
1755 : : }
1756 : :
1757 : : /* second, or the bit fields with set value */
1758 [ # # # # ]: 0 : *src_data |= (set_value << bit_low);
1759 : : }
1760 : 0 : }
1761 : :
1762 : : void txgbe_e56_rx_rd_second_code_40g(struct txgbe_hw *hw, int *SECOND_CODE, int lane);
1763 : : void txgbe_e56_rx_rd_second_code(struct txgbe_hw *hw, int *SECOND_CODE);
1764 : : u32 txgbe_e56_cfg_40g(struct txgbe_hw *hw);
1765 : : u32 txgbe_e56_cfg_25g(struct txgbe_hw *hw);
1766 : : u32 txgbe_e56_cfg_10g(struct txgbe_hw *hw);
1767 : : int txgbe_temp_track_seq_40g(struct txgbe_hw *hw, u32 speed);
1768 : : int txgbe_temp_track_seq(struct txgbe_hw *hw, u32 speed);
1769 : : int txgbe_e56_get_temp(struct txgbe_hw *hw, int *temp);
1770 : : int txgbe_set_link_to_amlite(struct txgbe_hw *hw, u32 speed);
1771 : : int txgbe_e56_reconfig_rx(struct txgbe_hw *hw, u32 speed);
1772 : : s32 txgbe_e56_check_phy_link(struct txgbe_hw *hw, u32 *speed,
1773 : : bool *link_up);
1774 : : s32 txgbe_e56_fec_set(struct txgbe_hw *hw);
1775 : : s32 txgbe_e56_fec_polling(struct txgbe_hw *hw, bool *link_up);
1776 : : u32 txgbe_e56_tx_ffe_cfg(struct txgbe_hw *hw, u32 speed);
1777 : :
1778 : : #endif /* _TXGBE_E56_H_ */
|