1
2
3
4
5
6
7#ifndef __FSL_SERDES_H__
8#define __FSL_SERDES_H__
9
10#include <config.h>
11
12#ifdef CONFIG_FSL_LSCH3
13enum srds_prtcl {
14
15
16
17
18 NONE = 0,
19 PCIE1,
20 PCIE2,
21 PCIE3,
22 PCIE4,
23 PCIE5,
24 PCIE6,
25 SATA1,
26 SATA2,
27 SATA3,
28 SATA4,
29 XAUI1,
30 XAUI2,
31 XFI1,
32 XFI2,
33 XFI3,
34 XFI4,
35 XFI5,
36 XFI6,
37 XFI7,
38 XFI8,
39 XFI9,
40 XFI10,
41 XFI11,
42 XFI12,
43 XFI13,
44 XFI14,
45 SGMII1,
46 SGMII2,
47 SGMII3,
48 SGMII4,
49 SGMII5,
50 SGMII6,
51 SGMII7,
52 SGMII8,
53 SGMII9,
54 SGMII10,
55 SGMII11,
56 SGMII12,
57 SGMII13,
58 SGMII14,
59 SGMII15,
60 SGMII16,
61 SGMII17,
62 SGMII18,
63 QSGMII_A,
64 QSGMII_B,
65 QSGMII_C,
66 QSGMII_D,
67 SGMII_T1,
68 SGMII_T2,
69 SGMII_T3,
70 SGMII_T4,
71 SXGMII1,
72 SXGMII2,
73 SXGMII3,
74 SXGMII4,
75 QXGMII1,
76 QXGMII2,
77 QXGMII3,
78 QXGMII4,
79 _25GE1,
80 _25GE2,
81 _25GE3,
82 _25GE4,
83 _25GE5,
84 _25GE6,
85 _25GE7,
86 _25GE8,
87 _25GE9,
88 _25GE10,
89 _40GE1,
90 _40GE2,
91 _50GE1,
92 _50GE2,
93 _100GE1,
94 _100GE2,
95 SERDES_PRCTL_COUNT
96};
97
98enum srds {
99 FSL_SRDS_1 = 0,
100 FSL_SRDS_2 = 1,
101 NXP_SRDS_3 = 2,
102};
103#elif defined(CONFIG_FSL_LSCH2)
104enum srds_prtcl {
105
106
107
108
109 NONE = 0,
110 PCIE1,
111 PCIE2,
112 PCIE3,
113 PCIE4,
114 SATA1,
115 SATA2,
116 SRIO1,
117 SRIO2,
118 SGMII_FM1_DTSEC1,
119 SGMII_FM1_DTSEC2,
120 SGMII_FM1_DTSEC3,
121 SGMII_FM1_DTSEC4,
122 SGMII_FM1_DTSEC5,
123 SGMII_FM1_DTSEC6,
124 SGMII_FM1_DTSEC9,
125 SGMII_FM1_DTSEC10,
126 SGMII_FM2_DTSEC1,
127 SGMII_FM2_DTSEC2,
128 SGMII_FM2_DTSEC3,
129 SGMII_FM2_DTSEC4,
130 SGMII_FM2_DTSEC5,
131 SGMII_FM2_DTSEC6,
132 SGMII_FM2_DTSEC9,
133 SGMII_FM2_DTSEC10,
134 SGMII_TSEC1,
135 SGMII_TSEC2,
136 SGMII_TSEC3,
137 SGMII_TSEC4,
138 XAUI_FM1,
139 XAUI_FM2,
140 AURORA,
141 CPRI1,
142 CPRI2,
143 CPRI3,
144 CPRI4,
145 CPRI5,
146 CPRI6,
147 CPRI7,
148 CPRI8,
149 XAUI_FM1_MAC9,
150 XAUI_FM1_MAC10,
151 XAUI_FM2_MAC9,
152 XAUI_FM2_MAC10,
153 HIGIG_FM1_MAC9,
154 HIGIG_FM1_MAC10,
155 HIGIG_FM2_MAC9,
156 HIGIG_FM2_MAC10,
157 QSGMII_FM1_A,
158 QSGMII_FM1_B,
159 QSGMII_FM2_A,
160 QSGMII_FM2_B,
161 XFI_FM1_MAC1,
162 XFI_FM1_MAC2,
163 XFI_FM1_MAC9,
164 XFI_FM1_MAC10,
165 XFI_FM2_MAC9,
166 XFI_FM2_MAC10,
167 INTERLAKEN,
168 QSGMII_SW1_A,
169 QSGMII_SW1_B,
170 SGMII_2500_FM1_DTSEC1,
171 SGMII_2500_FM1_DTSEC2,
172 SGMII_2500_FM1_DTSEC3,
173 SGMII_2500_FM1_DTSEC4,
174 SGMII_2500_FM1_DTSEC5,
175 SGMII_2500_FM1_DTSEC6,
176 SGMII_2500_FM1_DTSEC9,
177 SGMII_2500_FM1_DTSEC10,
178 SGMII_2500_FM2_DTSEC1,
179 SGMII_2500_FM2_DTSEC2,
180 SGMII_2500_FM2_DTSEC3,
181 SGMII_2500_FM2_DTSEC4,
182 SGMII_2500_FM2_DTSEC5,
183 SGMII_2500_FM2_DTSEC6,
184 SGMII_2500_FM2_DTSEC9,
185 SGMII_2500_FM2_DTSEC10,
186 TX_CLK,
187 SERDES_PRCTL_COUNT
188};
189
190enum srds {
191 FSL_SRDS_1 = 0,
192 FSL_SRDS_2 = 1,
193};
194
195#endif
196
197int is_serdes_configured(enum srds_prtcl device);
198void fsl_serdes_init(void);
199int serdes_get_first_lane(u32 sd, enum srds_prtcl device);
200enum srds_prtcl serdes_get_prtcl(int serdes, int cfg, int lane);
201int is_serdes_prtcl_valid(int serdes, u32 prtcl);
202int serdes_get_number(int serdes, int cfg);
203void fsl_rgmii_init(void);
204
205#ifdef CONFIG_FSL_LSCH2
206const char *serdes_clock_to_string(u32 clock);
207int get_serdes_protocol(void);
208#endif
209#ifdef CONFIG_SYS_HAS_SERDES
210
211int get_serdes_volt(void);
212
213int set_serdes_volt(int svdd);
214
215int setup_serdes_volt(u32 svdd);
216#endif
217
218#endif
219