added 2.6.29.6 aldebaran kernel
[nao-ulib.git] / kernel / 2.6.29.6-aldebaran-rt / drivers / staging / sxg / sxgphycode.h
blob167f356ef86b3441bb57b17957bf5dcd6eb76f53
1 /*
2 * Copyright (C) 1997-2008 Alacritech, Inc. All rights reserved
4 * sxgphycode.h:
6 * This file PHY microcode and register initialization data.
7 */
9 /**********************************************************************
10 * PHY Microcode
12 * The following contains both PHY microcode and PHY register
13 * initialization data. It is specific to both the PHY and the
14 * type of transceiver.
16 **********************************************************************/
19 * Download for AEL2005C PHY with SR/LR transceiver (10GBASE-SR or 10GBASE-LR)
21 static struct PHY_UCODE PhyUcode[] = {
23 * NOTE: An address of 0 is a special case. When the download routine
24 * sees an address of 0, it does not write to the PHY. Instead, it
25 * delays the download. The length of the delay (in ms) is given in
26 * the data field.
28 * Delays are required at certain points.
32 * Platform-specific MDIO Patches:
33 * (include patches for 10G RX polarity flip, 50Mhz Synth, etc)
35 /* Addr, Data */
36 {0xc017, 0xfeb0}, /* flip RX_LOS polarity (mandatory */
37 /* patch for SFP+ applications) */
38 {0xC001, 0x0428}, /* flip RX serial polarity */
40 {0xc013, 0xf341}, /* invert lxmit clock (mandatory patch) */
41 {0xc210, 0x8000}, /* reset datapath (mandatory patch) */
42 {0xc210, 0x8100}, /* reset datapath (mandatory patch) */
43 {0xc210, 0x8000}, /* reset datapath (mandatory patch) */
44 {0xc210, 0x0000}, /* reset datapath (mandatory patch) */
45 {0x0000, 0x0032}, /* wait for 50ms for datapath reset to */
46 /* complete. (mandatory patch) */
48 /* Configure the LED's */
49 {0xc214, 0x0099}, /* configure the LED drivers */
50 {0xc216, 0x5f5f}, /* configure the Activity LED */
51 {0xc217, 0x33ff}, /* configure the Link LED */
53 /* Transceiver-specific MDIO Patches: */
54 {0xc010, 0x448a}, /* (bit 14) mask out high BER input from the */
55 /* LOS signal in 1.000A */
56 /* (mandatory patch for SR code) */
57 {0xc003, 0x0181}, /* (bit 7) enable the CDR inc setting in */
58 /* 1.C005 (mandatory patch for SR code) */
60 /* Transceiver-specific Microcontroller Initialization: */
61 {0xc04a, 0x5200}, /* activate microcontroller and pause */
62 {0x0000, 0x0032}, /* wait 50ms for microcontroller before */
63 /* writing in code. */
65 /* code block starts here: */
66 {0xcc00, 0x2009},
67 {0xcc01, 0x3009},
68 {0xcc02, 0x27ff},
69 {0xcc03, 0x300f},
70 {0xcc04, 0x200c},
71 {0xcc05, 0x300c},
72 {0xcc06, 0x20c4},
73 {0xcc07, 0x3c04},
74 {0xcc08, 0x6437},
75 {0xcc09, 0x20c4},
76 {0xcc0a, 0x3c04},
77 {0xcc0b, 0x6437},
78 {0xcc0c, 0x25c4},
79 {0xcc0d, 0x3c54},
80 {0xcc0e, 0x6724},
81 {0xcc0f, 0x25c4},
82 {0xcc10, 0x3c54},
83 {0xcc11, 0x6724},
84 {0xcc12, 0x2042},
85 {0xcc13, 0x3012},
86 {0xcc14, 0x1002},
87 {0xcc15, 0x2482},
88 {0xcc16, 0x3012},
89 {0xcc17, 0x1002},
90 {0xcc18, 0x2a32},
91 {0xcc19, 0x3002},
92 {0xcc1a, 0x1002},
93 {0xcc1b, 0x200d},
94 {0xcc1c, 0x304d},
95 {0xcc1d, 0x2862},
96 {0xcc1e, 0x3012},
97 {0xcc1f, 0x1002},
98 {0xcc20, 0x2982},
99 {0xcc21, 0x3002},
100 {0xcc22, 0x1002},
101 {0xcc23, 0x628f},
102 {0xcc24, 0x20a4},
103 {0xcc25, 0x3004},
104 {0xcc26, 0x6438},
105 {0xcc27, 0x20a4},
106 {0xcc28, 0x3004},
107 {0xcc29, 0x6438},
108 {0xcc2a, 0x2015},
109 {0xcc2b, 0x3005},
110 {0xcc2c, 0x5853},
111 {0xcc2d, 0x2bd2},
112 {0xcc2e, 0x3002},
113 {0xcc2f, 0x1342},
114 {0xcc30, 0x200c},
115 {0xcc31, 0x300c},
116 {0xcc32, 0x2ff7},
117 {0xcc33, 0x30f7},
118 {0xcc34, 0x20c4},
119 {0xcc35, 0x3c04},
120 {0xcc36, 0x6724},
121 {0xcc37, 0x20c4},
122 {0xcc38, 0x3c04},
123 {0xcc39, 0x6724},
124 {0xcc3a, 0x2d32},
125 {0xcc3b, 0x3002},
126 {0xcc3c, 0x1002},
127 {0xcc3d, 0x2008},
128 {0xcc3e, 0x3008},
129 {0xcc3f, 0x5c83},
130 {0xcc40, 0x2d52},
131 {0xcc41, 0x3002},
132 {0xcc42, 0x1352},
133 {0xcc43, 0x2008},
134 {0xcc44, 0x3008},
135 {0xcc45, 0x5c83},
136 {0xcc46, 0x2d32},
137 {0xcc47, 0x3002},
138 {0xcc48, 0x1352},
139 {0xcc49, 0x201c},
140 {0xcc4a, 0x300c},
141 {0xcc4b, 0x200d},
142 {0xcc4c, 0x310d},
143 {0xcc4d, 0x2862},
144 {0xcc4e, 0x3012},
145 {0xcc4f, 0x1002},
146 {0xcc50, 0x2ed2},
147 {0xcc51, 0x3002},
148 {0xcc52, 0x1342},
149 {0xcc53, 0x6f72},
150 {0xcc54, 0x1002},
151 {0xcc55, 0x628f},
152 {0xcc56, 0x2514},
153 {0xcc57, 0x3c64},
154 {0xcc58, 0x6436},
155 {0xcc59, 0x2514},
156 {0xcc5a, 0x3c64},
157 {0xcc5b, 0x6436},
158 {0xcc5c, 0x2fa4},
159 {0xcc5d, 0x3cd4},
160 {0xcc5e, 0x6624},
161 {0xcc5f, 0x2fa4},
162 {0xcc60, 0x3cd4},
163 {0xcc61, 0x6624},
164 {0xcc62, 0x2f45},
165 {0xcc63, 0x3015},
166 {0xcc64, 0x5653},
167 {0xcc65, 0x2eb2},
168 {0xcc66, 0x3002},
169 {0xcc67, 0x13d2},
170 {0xcc68, 0x2ed2},
171 {0xcc69, 0x3002},
172 {0xcc6a, 0x1002},
173 {0xcc6b, 0x6f72},
174 {0xcc6c, 0x1002},
175 {0xcc6d, 0x628f},
176 {0xcc6e, 0x2602},
177 {0xcc6f, 0x3012},
178 {0xcc70, 0x1002},
179 {0xcc71, 0x200d},
180 {0xcc72, 0x320d},
181 {0xcc73, 0x2862},
182 {0xcc74, 0x3012},
183 {0xcc75, 0x1002},
184 {0xcc76, 0x25c4},
185 {0xcc77, 0x3c54},
186 {0xcc78, 0x6437},
187 {0xcc79, 0x25c4},
188 {0xcc7a, 0x3c54},
189 {0xcc7b, 0x6437},
190 {0xcc7c, 0x20c4},
191 {0xcc7d, 0x3c04},
192 {0xcc7e, 0x6724},
193 {0xcc7f, 0x20c4},
194 {0xcc80, 0x3c04},
195 {0xcc81, 0x6724},
196 {0xcc82, 0x6f72},
197 {0xcc83, 0x1002},
198 {0xcc84, 0x628f},
199 {0xcc85, 0x26f2},
200 {0xcc86, 0x3012},
201 {0xcc87, 0x1002},
202 {0xcc88, 0xc503},
203 {0xcc89, 0xd5d5},
204 {0xcc8a, 0xc600},
205 {0xcc8b, 0x2a6d},
206 {0xcc8c, 0xc601},
207 {0xcc8d, 0x2a4c},
208 {0xcc8e, 0xc602},
209 {0xcc8f, 0x0111},
210 {0xcc90, 0xc60c},
211 {0xcc91, 0x5900},
212 {0xcc92, 0xc710},
213 {0xcc93, 0x0700},
214 {0xcc94, 0xc718},
215 {0xcc95, 0x0700},
216 {0xcc96, 0xc720},
217 {0xcc97, 0x4700},
218 {0xcc98, 0xc801},
219 {0xcc99, 0x7f50},
220 {0xcc9a, 0xc802},
221 {0xcc9b, 0x7760},
222 {0xcc9c, 0xc803},
223 {0xcc9d, 0x7fce},
224 {0xcc9e, 0xc804},
225 {0xcc9f, 0x5700},
226 {0xcca0, 0xc805},
227 {0xcca1, 0x5f11},
228 {0xcca2, 0xc806},
229 {0xcca3, 0x4751},
230 {0xcca4, 0xc807},
231 {0xcca5, 0x57e1},
232 {0xcca6, 0xc808},
233 {0xcca7, 0x2700},
234 {0xcca8, 0xc809},
235 {0xcca9, 0x0000},
236 {0xccaa, 0xc821},
237 {0xccab, 0x0002},
238 {0xccac, 0xc822},
239 {0xccad, 0x0014},
240 {0xccae, 0xc832},
241 {0xccaf, 0x1186},
242 {0xccb0, 0xc847},
243 {0xccb1, 0x1e02},
244 {0xccb2, 0xc013},
245 {0xccb3, 0xf341},
246 {0xccb4, 0xc01a},
247 {0xccb5, 0x0446},
248 {0xccb6, 0xc024},
249 {0xccb7, 0x1000},
250 {0xccb8, 0xc025},
251 {0xccb9, 0x0a00},
252 {0xccba, 0xc026},
253 {0xccbb, 0x0c0c},
254 {0xccbc, 0xc027},
255 {0xccbd, 0x0c0c},
256 {0xccbe, 0xc029},
257 {0xccbf, 0x00a0},
258 {0xccc0, 0xc030},
259 {0xccc1, 0x0a00},
260 {0xccc2, 0xc03c},
261 {0xccc3, 0x001c},
262 {0xccc4, 0xc005},
263 {0xccc5, 0x7a06},
264 {0xccc6, 0x0000},
265 {0xccc7, 0x0000},
266 {0xccc8, 0x628f},
267 {0xccc9, 0x26f2},
268 {0xccca, 0x3012},
269 {0xcccb, 0x1002},
270 {0xcccc, 0xc620},
271 {0xcccd, 0x0000},
272 {0xccce, 0xc621},
273 {0xcccf, 0x003f},
274 {0xccd0, 0xc622},
275 {0xccd1, 0x0000},
276 {0xccd2, 0xc623},
277 {0xccd3, 0x0000},
278 {0xccd4, 0xc624},
279 {0xccd5, 0x0000},
280 {0xccd6, 0xc625},
281 {0xccd7, 0x0000},
282 {0xccd8, 0xc627},
283 {0xccd9, 0x0000},
284 {0xccda, 0xc628},
285 {0xccdb, 0x0000},
286 {0xccdc, 0xc62c},
287 {0xccdd, 0x0000},
288 {0xccde, 0x0000},
289 {0xccdf, 0x0000},
290 {0xcce0, 0x628f},
291 {0xcce1, 0xd019},
292 {0xcce2, 0x26f2},
293 {0xcce3, 0x3012},
294 {0xcce4, 0x1002},
295 {0xcce5, 0xc210},
296 {0xcce6, 0x8000},
297 {0xcce7, 0xc210},
298 {0xcce8, 0x8010},
299 {0xcce9, 0xc210},
300 {0xccea, 0x8000},
301 {0xcceb, 0xc210},
302 {0xccec, 0x0000},
303 {0xcced, 0x0000},
304 {0xccee, 0x0000},
305 {0xccef, 0x8221},
306 {0xccf0, 0x2752},
307 {0xccf1, 0x3012},
308 {0xccf2, 0x1002},
309 {0xccf3, 0x6f72},
310 {0xccf4, 0x1002},
311 {0xccf5, 0x2806},
312 {0xccf6, 0x3006},
313 {0xccf7, 0x2007},
314 {0xccf8, 0x3cc7},
315 {0xccf9, 0xe161},
316 {0xccfa, 0xc171},
317 {0xccfb, 0x6134},
318 {0xccfc, 0x6135},
319 {0xccfd, 0x5453},
320 {0xccfe, 0x2858},
321 {0xccff, 0x3018},
322 {0xcd00, 0x1348},
323 {0xcd01, 0x6524},
324 {0xcd02, 0x27b8},
325 {0xcd03, 0x3018},
326 {0xcd04, 0x1008},
327 {0xcd05, 0x1002},
328 {0xcd06, 0x628f},
329 {0xcd07, 0x5dd3},
330 {0xcd08, 0x2906},
331 {0xcd09, 0x3016},
332 {0xcd0a, 0x1306},
333 {0xcd0b, 0x2ff7},
334 {0xcd0c, 0x30f7},
335 {0xcd0d, 0x60b7},
336 {0xcd0e, 0xdffd},
337 {0xcd0f, 0x0008},
338 {0xcd10, 0x6f72},
339 {0xcd11, 0x1002},
340 {0xcd12, 0x0000},
341 {0xcdff, 0x0a01},
342 /* end of code block */
344 /* Unpause the microcontroller to start program */
345 {0xca00, 0x0080},
346 {0xca12, 0x0000},
347 {0x0000, 0x000A}, /* wait 10ms just to be safe */
348 {0xffff, 0xffff} /* table terminator */