xref: /linux/drivers/net/ethernet/intel/ice/ice_ptp_consts.h (revision 6a128cdf1926b20a94d6af7d7d03b76ba19a4f8b)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (C) 2018-2021, Intel Corporation. */
3 
4 #ifndef _ICE_PTP_CONSTS_H_
5 #define _ICE_PTP_CONSTS_H_
6 
7 /* Constant definitions related to the hardware clock used for PTP 1588
8  * features and functionality.
9  */
10 /* Constants defined for the PTP 1588 clock hardware. */
11 
12 const struct ice_phy_reg_info_eth56g eth56g_phy_res[NUM_ETH56G_PHY_RES] = {
13 	/* ETH56G_PHY_REG_PTP */
14 	{
15 		/* base_addr */
16 		{
17 			0x092000,
18 			0x126000,
19 			0x1BA000,
20 			0x24E000,
21 			0x2E2000,
22 		},
23 		/* step */
24 		0x98,
25 	},
26 	/* ETH56G_PHY_MEM_PTP */
27 	{
28 		/* base_addr */
29 		{
30 			0x093000,
31 			0x127000,
32 			0x1BB000,
33 			0x24F000,
34 			0x2E3000,
35 		},
36 		/* step */
37 		0x200,
38 	},
39 	/* ETH56G_PHY_REG_XPCS */
40 	{
41 		/* base_addr */
42 		{
43 			0x000000,
44 			0x009400,
45 			0x128000,
46 			0x1BC000,
47 			0x250000,
48 		},
49 		/* step */
50 		0x21000,
51 	},
52 	/* ETH56G_PHY_REG_MAC */
53 	{
54 		/* base_addr */
55 		{
56 			0x085000,
57 			0x119000,
58 			0x1AD000,
59 			0x241000,
60 			0x2D5000,
61 		},
62 		/* step */
63 		0x1000,
64 	},
65 	/* ETH56G_PHY_REG_GPCS */
66 	{
67 		/* base_addr */
68 		{
69 			0x084000,
70 			0x118000,
71 			0x1AC000,
72 			0x240000,
73 			0x2D4000,
74 		},
75 		/* step */
76 		0x400,
77 	},
78 };
79 
80 const
81 struct ice_eth56g_mac_reg_cfg eth56g_mac_cfg[NUM_ICE_ETH56G_LNK_SPD] = {
82 	[ICE_ETH56G_LNK_SPD_1G] = {
83 		.tx_mode = { .def = 6, },
84 		.rx_mode = { .def = 6, },
85 		.blks_per_clk = 1,
86 		.blktime = 0x4000, /* 32 */
87 		.tx_offset = {
88 			.serdes = 0x6666, /* 51.2 */
89 			.no_fec = 0xd066, /* 104.2 */
90 			.sfd = 0x3000, /* 24 */
91 			.onestep = 0x30000 /* 384 */
92 		},
93 		.rx_offset = {
94 			.serdes = 0xffffc59a, /* -29.2 */
95 			.no_fec = 0xffff0a80, /* -122.75 */
96 			.sfd = 0x2c00, /* 22 */
97 			.bs_ds = 0x19a /* 0.8 */
98 			/* Dynamic bitslip 0 equals to 10 */
99 		}
100 	},
101 	[ICE_ETH56G_LNK_SPD_2_5G] = {
102 		.tx_mode = { .def = 6, },
103 		.rx_mode = { .def = 6, },
104 		.blks_per_clk = 1,
105 		.blktime = 0x199a, /* 12.8 */
106 		.tx_offset = {
107 			.serdes = 0x28f6, /* 20.48 */
108 			.no_fec = 0x53b8, /* 41.86 */
109 			.sfd = 0x1333, /* 9.6 */
110 			.onestep = 0x13333 /* 153.6 */
111 		},
112 		.rx_offset = {
113 			.serdes = 0xffffe8a4, /* -11.68 */
114 			.no_fec = 0xffff9a76, /* -50.77 */
115 			.sfd = 0xf33, /* 7.6 */
116 			.bs_ds = 0xa4 /* 0.32 */
117 		}
118 	},
119 	[ICE_ETH56G_LNK_SPD_10G] = {
120 		.tx_mode = { .def = 1, },
121 		.rx_mode = { .def = 1, },
122 		.blks_per_clk = 1,
123 		.blktime = 0x666, /* 3.2 */
124 		.tx_offset = {
125 			.serdes = 0x234c, /* 17.6484848 */
126 			.no_fec = 0x8e80, /* 71.25 */
127 			.fc = 0xb4a4, /* 90.32 */
128 			.sfd = 0x4a4, /* 2.32 */
129 			.onestep = 0x4ccd /* 38.4 */
130 		},
131 		.rx_offset = {
132 			.serdes = 0xffffeb27, /* -10.42424 */
133 			.no_fec = 0xffffcccd, /* -25.6 */
134 			.fc = 0xfffc557b, /* -469.26 */
135 			.sfd = 0x4a4, /* 2.32 */
136 			.bs_ds = 0x32 /* 0.0969697 */
137 		}
138 	},
139 	[ICE_ETH56G_LNK_SPD_25G] = {
140 		.tx_mode = {
141 			.def = 1,
142 			.rs = 4
143 		},
144 		.tx_mk_dly = 4,
145 		.tx_cw_dly = {
146 			.def = 1,
147 			.onestep = 6
148 		},
149 		.rx_mode = {
150 			.def = 1,
151 			.rs = 4
152 		},
153 		.rx_mk_dly = {
154 			.def = 1,
155 			.rs = 1
156 		},
157 		.rx_cw_dly = {
158 			.def = 1,
159 			.rs = 1
160 		},
161 		.blks_per_clk = 1,
162 		.blktime = 0x28f, /* 1.28 */
163 		.mktime = 0x147b, /* 10.24, only if RS-FEC enabled */
164 		.tx_offset = {
165 			.serdes = 0xe1e, /* 7.0593939 */
166 			.no_fec = 0x3857, /* 28.17 */
167 			.fc = 0x48c3, /* 36.38 */
168 			.rs = 0x8100, /* 64.5 */
169 			.sfd = 0x1dc, /* 0.93 */
170 			.onestep = 0x1eb8 /* 15.36 */
171 		},
172 		.rx_offset = {
173 			.serdes = 0xfffff7a9, /* -4.1697 */
174 			.no_fec = 0xffffe71a, /* -12.45 */
175 			.fc = 0xfffe894d, /* -187.35 */
176 			.rs = 0xfffff8cd, /* -3.6 */
177 			.sfd = 0x1dc, /* 0.93 */
178 			.bs_ds = 0x14 /* 0.0387879, RS-FEC 0 */
179 		}
180 	},
181 	[ICE_ETH56G_LNK_SPD_40G] = {
182 		.tx_mode = { .def = 3 },
183 		.tx_mk_dly = 4,
184 		.tx_cw_dly = {
185 			.def = 1,
186 			.onestep = 6
187 		},
188 		.rx_mode = { .def = 4 },
189 		.rx_mk_dly = { .def = 1 },
190 		.rx_cw_dly = { .def = 1 },
191 		.blktime = 0x333, /* 1.6 */
192 		.mktime = 0xccd, /* 6.4 */
193 		.tx_offset = {
194 			.serdes = 0x234c, /* 17.6484848 */
195 			.no_fec = 0x5a8a, /* 45.27 */
196 			.fc = 0x81b8, /* 64.86 */
197 			.sfd = 0x4a4, /* 2.32 */
198 			.onestep = 0x1333 /* 9.6 */
199 		},
200 		.rx_offset = {
201 			.serdes = 0xffffeb27, /* -10.42424 */
202 			.no_fec = 0xfffff594, /* -5.21 */
203 			.fc = 0xfffe3080, /* -231.75 */
204 			.sfd = 0x4a4, /* 2.32 */
205 			.bs_ds = 0xccd /* 6.4 */
206 		}
207 	},
208 	[ICE_ETH56G_LNK_SPD_50G] = {
209 		.tx_mode = { .def = 5 },
210 		.tx_mk_dly = 4,
211 		.tx_cw_dly = {
212 			.def = 1,
213 			.onestep = 6
214 		},
215 		.rx_mode = { .def = 5 },
216 		.rx_mk_dly = { .def = 1 },
217 		.rx_cw_dly = { .def = 1 },
218 		.blktime = 0x28f, /* 1.28 */
219 		.mktime = 0xa3d, /* 5.12 */
220 		.tx_offset = {
221 			.serdes = 0x13ba, /* 9.86353 */
222 			.rs = 0x5400, /* 42 */
223 			.sfd = 0xe6, /* 0.45 */
224 			.onestep = 0xf5c /* 7.68 */
225 		},
226 		.rx_offset = {
227 			.serdes = 0xfffff7e8, /* -4.04706 */
228 			.rs = 0xfffff994, /* -3.21 */
229 			.sfd = 0xe6 /* 0.45 */
230 		}
231 	},
232 	[ICE_ETH56G_LNK_SPD_50G2] = {
233 		.tx_mode = {
234 			.def = 3,
235 			.rs = 2
236 		},
237 		.tx_mk_dly = 4,
238 		.tx_cw_dly = {
239 			.def = 1,
240 			.onestep = 6
241 		},
242 		.rx_mode = {
243 			.def = 4,
244 			.rs = 1
245 		},
246 		.rx_mk_dly = { .def = 1 },
247 		.rx_cw_dly = { .def = 1 },
248 		.blktime = 0x28f, /* 1.28 */
249 		.mktime = 0xa3d, /* 5.12 */
250 		.tx_offset = {
251 			.serdes = 0xe1e, /* 7.0593939 */
252 			.no_fec = 0x3d33, /* 30.6 */
253 			.rs = 0x5057, /* 40.17 */
254 			.sfd = 0x1dc, /* 0.93 */
255 			.onestep = 0xf5c /* 7.68 */
256 		},
257 		.rx_offset = {
258 			.serdes = 0xfffff7a9, /* -4.1697 */
259 			.no_fec = 0xfffff8cd, /* -3.6 */
260 			.rs = 0xfffff21a, /* -6.95 */
261 			.sfd = 0x1dc, /* 0.93 */
262 			.bs_ds = 0xa3d /* 5.12, RS-FEC 0x633 (3.1) */
263 		}
264 	},
265 	[ICE_ETH56G_LNK_SPD_100G] = {
266 		.tx_mode = {
267 			.def = 3,
268 			.rs = 2
269 		},
270 		.tx_mk_dly = 10,
271 		.tx_cw_dly = {
272 			.def = 3,
273 			.onestep = 6
274 		},
275 		.rx_mode = {
276 			.def = 4,
277 			.rs = 1
278 		},
279 		.rx_mk_dly = { .def = 5 },
280 		.rx_cw_dly = { .def = 5 },
281 		.blks_per_clk = 1,
282 		.blktime = 0x148, /* 0.64 */
283 		.mktime = 0x199a, /* 12.8 */
284 		.tx_offset = {
285 			.serdes = 0xe1e, /* 7.0593939 */
286 			.no_fec = 0x67ec, /* 51.96 */
287 			.rs = 0x44fb, /* 34.49 */
288 			.sfd = 0x1dc, /* 0.93 */
289 			.onestep = 0xf5c /* 7.68 */
290 		},
291 		.rx_offset = {
292 			.serdes = 0xfffff7a9, /* -4.1697 */
293 			.no_fec = 0xfffff5a9, /* -5.17 */
294 			.rs = 0xfffff6e6, /* -4.55 */
295 			.sfd = 0x1dc, /* 0.93 */
296 			.bs_ds = 0x199a /* 12.8, RS-FEC 0x31b (1.552) */
297 		}
298 	},
299 	[ICE_ETH56G_LNK_SPD_100G2] = {
300 		.tx_mode = { .def = 5 },
301 		.tx_mk_dly = 10,
302 		.tx_cw_dly = {
303 			.def = 3,
304 			.onestep = 6
305 		},
306 		.rx_mode = { .def = 5 },
307 		.rx_mk_dly = { .def = 5 },
308 		.rx_cw_dly = { .def = 5 },
309 		.blks_per_clk = 1,
310 		.blktime = 0x148, /* 0.64 */
311 		.mktime = 0x199a, /* 12.8 */
312 		.tx_offset = {
313 			.serdes = 0x13ba, /* 9.86353 */
314 			.rs = 0x460a, /* 35.02 */
315 			.sfd = 0xe6, /* 0.45 */
316 			.onestep = 0xf5c /* 7.68 */
317 		},
318 		.rx_offset = {
319 			.serdes = 0xfffff7e8, /* -4.04706 */
320 			.rs = 0xfffff548, /* -5.36 */
321 			.sfd = 0xe6, /* 0.45 */
322 			.bs_ds = 0x303 /* 1.506 */
323 		}
324 	}
325 };
326 
327 /* struct ice_time_ref_info_e82x
328  *
329  * E822 hardware can use different sources as the reference for the PTP
330  * hardware clock. Each clock has different characteristics such as a slightly
331  * different frequency, etc.
332  *
333  * This lookup table defines several constants that depend on the current time
334  * reference. See the struct ice_time_ref_info_e82x for information about the
335  * meaning of each constant.
336  */
337 const struct ice_time_ref_info_e82x e82x_time_ref[NUM_ICE_TIME_REF_FREQ] = {
338 	/* ICE_TIME_REF_FREQ_25_000 -> 25 MHz */
339 	{
340 		/* pll_freq */
341 		823437500, /* 823.4375 MHz PLL */
342 		/* nominal_incval */
343 		0x136e44fabULL,
344 	},
345 
346 	/* ICE_TIME_REF_FREQ_122_880 -> 122.88 MHz */
347 	{
348 		/* pll_freq */
349 		783360000, /* 783.36 MHz */
350 		/* nominal_incval */
351 		0x146cc2177ULL,
352 	},
353 
354 	/* ICE_TIME_REF_FREQ_125_000 -> 125 MHz */
355 	{
356 		/* pll_freq */
357 		796875000, /* 796.875 MHz */
358 		/* nominal_incval */
359 		0x141414141ULL,
360 	},
361 
362 	/* ICE_TIME_REF_FREQ_153_600 -> 153.6 MHz */
363 	{
364 		/* pll_freq */
365 		816000000, /* 816 MHz */
366 		/* nominal_incval */
367 		0x139b9b9baULL,
368 	},
369 
370 	/* ICE_TIME_REF_FREQ_156_250 -> 156.25 MHz */
371 	{
372 		/* pll_freq */
373 		830078125, /* 830.78125 MHz */
374 		/* nominal_incval */
375 		0x134679aceULL,
376 	},
377 
378 	/* ICE_TIME_REF_FREQ_245_760 -> 245.76 MHz */
379 	{
380 		/* pll_freq */
381 		783360000, /* 783.36 MHz */
382 		/* nominal_incval */
383 		0x146cc2177ULL,
384 	},
385 };
386 
387 const struct ice_cgu_pll_params_e82x e822_cgu_params[NUM_ICE_TIME_REF_FREQ] = {
388 	/* ICE_TIME_REF_FREQ_25_000 -> 25 MHz */
389 	{
390 		/* refclk_pre_div */
391 		1,
392 		/* feedback_div */
393 		197,
394 		/* frac_n_div */
395 		2621440,
396 		/* post_pll_div */
397 		6,
398 	},
399 
400 	/* ICE_TIME_REF_FREQ_122_880 -> 122.88 MHz */
401 	{
402 		/* refclk_pre_div */
403 		5,
404 		/* feedback_div */
405 		223,
406 		/* frac_n_div */
407 		524288,
408 		/* post_pll_div */
409 		7,
410 	},
411 
412 	/* ICE_TIME_REF_FREQ_125_000 -> 125 MHz */
413 	{
414 		/* refclk_pre_div */
415 		5,
416 		/* feedback_div */
417 		223,
418 		/* frac_n_div */
419 		524288,
420 		/* post_pll_div */
421 		7,
422 	},
423 
424 	/* ICE_TIME_REF_FREQ_153_600 -> 153.6 MHz */
425 	{
426 		/* refclk_pre_div */
427 		5,
428 		/* feedback_div */
429 		159,
430 		/* frac_n_div */
431 		1572864,
432 		/* post_pll_div */
433 		6,
434 	},
435 
436 	/* ICE_TIME_REF_FREQ_156_250 -> 156.25 MHz */
437 	{
438 		/* refclk_pre_div */
439 		5,
440 		/* feedback_div */
441 		159,
442 		/* frac_n_div */
443 		1572864,
444 		/* post_pll_div */
445 		6,
446 	},
447 
448 	/* ICE_TIME_REF_FREQ_245_760 -> 245.76 MHz */
449 	{
450 		/* refclk_pre_div */
451 		10,
452 		/* feedback_div */
453 		223,
454 		/* frac_n_div */
455 		524288,
456 		/* post_pll_div */
457 		7,
458 	},
459 };
460 
461 const
462 struct ice_cgu_pll_params_e825c e825c_cgu_params[NUM_ICE_TIME_REF_FREQ] = {
463 	/* ICE_TIME_REF_FREQ_25_000 -> 25 MHz */
464 	{
465 		/* tspll_ck_refclkfreq */
466 		0x19,
467 		/* tspll_ndivratio */
468 		1,
469 		/* tspll_fbdiv_intgr */
470 		320,
471 		/* tspll_fbdiv_frac */
472 		0,
473 		/* ref1588_ck_div */
474 		0,
475 	},
476 
477 	/* ICE_TIME_REF_FREQ_122_880 -> 122.88 MHz */
478 	{
479 		/* tspll_ck_refclkfreq */
480 		0x29,
481 		/* tspll_ndivratio */
482 		3,
483 		/* tspll_fbdiv_intgr */
484 		195,
485 		/* tspll_fbdiv_frac */
486 		1342177280UL,
487 		/* ref1588_ck_div */
488 		0,
489 	},
490 
491 	/* ICE_TIME_REF_FREQ_125_000 -> 125 MHz */
492 	{
493 		/* tspll_ck_refclkfreq */
494 		0x3E,
495 		/* tspll_ndivratio */
496 		2,
497 		/* tspll_fbdiv_intgr */
498 		128,
499 		/* tspll_fbdiv_frac */
500 		0,
501 		/* ref1588_ck_div */
502 		0,
503 	},
504 
505 	/* ICE_TIME_REF_FREQ_153_600 -> 153.6 MHz */
506 	{
507 		/* tspll_ck_refclkfreq */
508 		0x33,
509 		/* tspll_ndivratio */
510 		3,
511 		/* tspll_fbdiv_intgr */
512 		156,
513 		/* tspll_fbdiv_frac */
514 		1073741824UL,
515 		/* ref1588_ck_div */
516 		0,
517 	},
518 
519 	/* ICE_TIME_REF_FREQ_156_250 -> 156.25 MHz */
520 	{
521 		/* tspll_ck_refclkfreq */
522 		0x1F,
523 		/* tspll_ndivratio */
524 		5,
525 		/* tspll_fbdiv_intgr */
526 		256,
527 		/* tspll_fbdiv_frac */
528 		0,
529 		/* ref1588_ck_div */
530 		0,
531 	},
532 
533 	/* ICE_TIME_REF_FREQ_245_760 -> 245.76 MHz */
534 	{
535 		/* tspll_ck_refclkfreq */
536 		0x52,
537 		/* tspll_ndivratio */
538 		3,
539 		/* tspll_fbdiv_intgr */
540 		97,
541 		/* tspll_fbdiv_frac */
542 		2818572288UL,
543 		/* ref1588_ck_div */
544 		0,
545 	},
546 };
547 
548 /* struct ice_vernier_info_e82x
549  *
550  * E822 hardware calibrates the delay of the timestamp indication from the
551  * actual packet transmission or reception during the initialization of the
552  * PHY. To do this, the hardware mechanism uses some conversions between the
553  * various clocks within the PHY block. This table defines constants used to
554  * calculate the correct conversion ratios in the PHY registers.
555  *
556  * Many of the values relate to the PAR/PCS clock conversion registers. For
557  * these registers, a value of 0 means that the associated register is not
558  * used by this link speed, and that the register should be cleared by writing
559  * 0. Other values specify the clock frequency in Hz.
560  */
561 const struct ice_vernier_info_e82x e822_vernier[NUM_ICE_PTP_LNK_SPD] = {
562 	/* ICE_PTP_LNK_SPD_1G */
563 	{
564 		/* tx_par_clk */
565 		31250000, /* 31.25 MHz */
566 		/* rx_par_clk */
567 		31250000, /* 31.25 MHz */
568 		/* tx_pcs_clk */
569 		125000000, /* 125 MHz */
570 		/* rx_pcs_clk */
571 		125000000, /* 125 MHz */
572 		/* tx_desk_rsgb_par */
573 		0, /* unused */
574 		/* rx_desk_rsgb_par */
575 		0, /* unused */
576 		/* tx_desk_rsgb_pcs */
577 		0, /* unused */
578 		/* rx_desk_rsgb_pcs */
579 		0, /* unused */
580 		/* tx_fixed_delay */
581 		25140,
582 		/* pmd_adj_divisor */
583 		10000000,
584 		/* rx_fixed_delay */
585 		17372,
586 	},
587 	/* ICE_PTP_LNK_SPD_10G */
588 	{
589 		/* tx_par_clk */
590 		257812500, /* 257.8125 MHz */
591 		/* rx_par_clk */
592 		257812500, /* 257.8125 MHz */
593 		/* tx_pcs_clk */
594 		156250000, /* 156.25 MHz */
595 		/* rx_pcs_clk */
596 		156250000, /* 156.25 MHz */
597 		/* tx_desk_rsgb_par */
598 		0, /* unused */
599 		/* rx_desk_rsgb_par */
600 		0, /* unused */
601 		/* tx_desk_rsgb_pcs */
602 		0, /* unused */
603 		/* rx_desk_rsgb_pcs */
604 		0, /* unused */
605 		/* tx_fixed_delay */
606 		6938,
607 		/* pmd_adj_divisor */
608 		82500000,
609 		/* rx_fixed_delay */
610 		6212,
611 	},
612 	/* ICE_PTP_LNK_SPD_25G */
613 	{
614 		/* tx_par_clk */
615 		644531250, /* 644.53125 MHZ */
616 		/* rx_par_clk */
617 		644531250, /* 644.53125 MHz */
618 		/* tx_pcs_clk */
619 		390625000, /* 390.625 MHz */
620 		/* rx_pcs_clk */
621 		390625000, /* 390.625 MHz */
622 		/* tx_desk_rsgb_par */
623 		0, /* unused */
624 		/* rx_desk_rsgb_par */
625 		0, /* unused */
626 		/* tx_desk_rsgb_pcs */
627 		0, /* unused */
628 		/* rx_desk_rsgb_pcs */
629 		0, /* unused */
630 		/* tx_fixed_delay */
631 		2778,
632 		/* pmd_adj_divisor */
633 		206250000,
634 		/* rx_fixed_delay */
635 		2491,
636 	},
637 	/* ICE_PTP_LNK_SPD_25G_RS */
638 	{
639 		/* tx_par_clk */
640 		0, /* unused */
641 		/* rx_par_clk */
642 		0, /* unused */
643 		/* tx_pcs_clk */
644 		0, /* unused */
645 		/* rx_pcs_clk */
646 		0, /* unused */
647 		/* tx_desk_rsgb_par */
648 		161132812, /* 162.1328125 MHz Reed Solomon gearbox */
649 		/* rx_desk_rsgb_par */
650 		161132812, /* 162.1328125 MHz Reed Solomon gearbox */
651 		/* tx_desk_rsgb_pcs */
652 		97656250, /* 97.62625 MHz Reed Solomon gearbox */
653 		/* rx_desk_rsgb_pcs */
654 		97656250, /* 97.62625 MHz Reed Solomon gearbox */
655 		/* tx_fixed_delay */
656 		3928,
657 		/* pmd_adj_divisor */
658 		206250000,
659 		/* rx_fixed_delay */
660 		29535,
661 	},
662 	/* ICE_PTP_LNK_SPD_40G */
663 	{
664 		/* tx_par_clk */
665 		257812500,
666 		/* rx_par_clk */
667 		257812500,
668 		/* tx_pcs_clk */
669 		156250000, /* 156.25 MHz */
670 		/* rx_pcs_clk */
671 		156250000, /* 156.25 MHz */
672 		/* tx_desk_rsgb_par */
673 		0, /* unused */
674 		/* rx_desk_rsgb_par */
675 		156250000, /* 156.25 MHz deskew clock */
676 		/* tx_desk_rsgb_pcs */
677 		0, /* unused */
678 		/* rx_desk_rsgb_pcs */
679 		156250000, /* 156.25 MHz deskew clock */
680 		/* tx_fixed_delay */
681 		5666,
682 		/* pmd_adj_divisor */
683 		82500000,
684 		/* rx_fixed_delay */
685 		4244,
686 	},
687 	/* ICE_PTP_LNK_SPD_50G */
688 	{
689 		/* tx_par_clk */
690 		644531250, /* 644.53125 MHZ */
691 		/* rx_par_clk */
692 		644531250, /* 644.53125 MHZ */
693 		/* tx_pcs_clk */
694 		390625000, /* 390.625 MHz */
695 		/* rx_pcs_clk */
696 		390625000, /* 390.625 MHz */
697 		/* tx_desk_rsgb_par */
698 		0, /* unused */
699 		/* rx_desk_rsgb_par */
700 		195312500, /* 193.3125 MHz deskew clock */
701 		/* tx_desk_rsgb_pcs */
702 		0, /* unused */
703 		/* rx_desk_rsgb_pcs */
704 		195312500, /* 193.3125 MHz deskew clock */
705 		/* tx_fixed_delay */
706 		2778,
707 		/* pmd_adj_divisor */
708 		206250000,
709 		/* rx_fixed_delay */
710 		2868,
711 	},
712 	/* ICE_PTP_LNK_SPD_50G_RS */
713 	{
714 		/* tx_par_clk */
715 		0, /* unused */
716 		/* rx_par_clk */
717 		644531250, /* 644.53125 MHz */
718 		/* tx_pcs_clk */
719 		0, /* unused */
720 		/* rx_pcs_clk */
721 		644531250, /* 644.53125 MHz */
722 		/* tx_desk_rsgb_par */
723 		322265625, /* 322.265625 MHz Reed Solomon gearbox */
724 		/* rx_desk_rsgb_par */
725 		322265625, /* 322.265625 MHz Reed Solomon gearbox */
726 		/* tx_desk_rsgb_pcs */
727 		644531250, /* 644.53125 MHz Reed Solomon gearbox */
728 		/* rx_desk_rsgb_pcs */
729 		644531250, /* 644.53125 MHz Reed Solomon gearbox */
730 		/* tx_fixed_delay */
731 		2095,
732 		/* pmd_adj_divisor */
733 		206250000,
734 		/* rx_fixed_delay */
735 		14524,
736 	},
737 	/* ICE_PTP_LNK_SPD_100G_RS */
738 	{
739 		/* tx_par_clk */
740 		0, /* unused */
741 		/* rx_par_clk */
742 		644531250, /* 644.53125 MHz */
743 		/* tx_pcs_clk */
744 		0, /* unused */
745 		/* rx_pcs_clk */
746 		644531250, /* 644.53125 MHz */
747 		/* tx_desk_rsgb_par */
748 		644531250, /* 644.53125 MHz Reed Solomon gearbox */
749 		/* rx_desk_rsgb_par */
750 		644531250, /* 644.53125 MHz Reed Solomon gearbox */
751 		/* tx_desk_rsgb_pcs */
752 		390625000, /* 390.625 MHz Reed Solomon gearbox */
753 		/* rx_desk_rsgb_pcs */
754 		390625000, /* 390.625 MHz Reed Solomon gearbox */
755 		/* tx_fixed_delay */
756 		1620,
757 		/* pmd_adj_divisor */
758 		206250000,
759 		/* rx_fixed_delay */
760 		7775,
761 	},
762 };
763 
764 #endif /* _ICE_PTP_CONSTS_H_ */
765