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 = 0xfffe0014, /* -255.96 */ 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 /* pps_delay */ 345 11, 346 }, 347 348 /* ICE_TIME_REF_FREQ_122_880 -> 122.88 MHz */ 349 { 350 /* pll_freq */ 351 783360000, /* 783.36 MHz */ 352 /* nominal_incval */ 353 0x146cc2177ULL, 354 /* pps_delay */ 355 12, 356 }, 357 358 /* ICE_TIME_REF_FREQ_125_000 -> 125 MHz */ 359 { 360 /* pll_freq */ 361 796875000, /* 796.875 MHz */ 362 /* nominal_incval */ 363 0x141414141ULL, 364 /* pps_delay */ 365 12, 366 }, 367 368 /* ICE_TIME_REF_FREQ_153_600 -> 153.6 MHz */ 369 { 370 /* pll_freq */ 371 816000000, /* 816 MHz */ 372 /* nominal_incval */ 373 0x139b9b9baULL, 374 /* pps_delay */ 375 12, 376 }, 377 378 /* ICE_TIME_REF_FREQ_156_250 -> 156.25 MHz */ 379 { 380 /* pll_freq */ 381 830078125, /* 830.78125 MHz */ 382 /* nominal_incval */ 383 0x134679aceULL, 384 /* pps_delay */ 385 11, 386 }, 387 388 /* ICE_TIME_REF_FREQ_245_760 -> 245.76 MHz */ 389 { 390 /* pll_freq */ 391 783360000, /* 783.36 MHz */ 392 /* nominal_incval */ 393 0x146cc2177ULL, 394 /* pps_delay */ 395 12, 396 }, 397 }; 398 399 const struct ice_cgu_pll_params_e82x e822_cgu_params[NUM_ICE_TIME_REF_FREQ] = { 400 /* ICE_TIME_REF_FREQ_25_000 -> 25 MHz */ 401 { 402 /* refclk_pre_div */ 403 1, 404 /* feedback_div */ 405 197, 406 /* frac_n_div */ 407 2621440, 408 /* post_pll_div */ 409 6, 410 }, 411 412 /* ICE_TIME_REF_FREQ_122_880 -> 122.88 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_125_000 -> 125 MHz */ 425 { 426 /* refclk_pre_div */ 427 5, 428 /* feedback_div */ 429 223, 430 /* frac_n_div */ 431 524288, 432 /* post_pll_div */ 433 7, 434 }, 435 436 /* ICE_TIME_REF_FREQ_153_600 -> 153.6 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_156_250 -> 156.25 MHz */ 449 { 450 /* refclk_pre_div */ 451 5, 452 /* feedback_div */ 453 159, 454 /* frac_n_div */ 455 1572864, 456 /* post_pll_div */ 457 6, 458 }, 459 460 /* ICE_TIME_REF_FREQ_245_760 -> 245.76 MHz */ 461 { 462 /* refclk_pre_div */ 463 10, 464 /* feedback_div */ 465 223, 466 /* frac_n_div */ 467 524288, 468 /* post_pll_div */ 469 7, 470 }, 471 }; 472 473 const 474 struct ice_cgu_pll_params_e825c e825c_cgu_params[NUM_ICE_TIME_REF_FREQ] = { 475 /* ICE_TIME_REF_FREQ_25_000 -> 25 MHz */ 476 { 477 /* tspll_ck_refclkfreq */ 478 0x19, 479 /* tspll_ndivratio */ 480 1, 481 /* tspll_fbdiv_intgr */ 482 320, 483 /* tspll_fbdiv_frac */ 484 0, 485 /* ref1588_ck_div */ 486 0, 487 }, 488 489 /* ICE_TIME_REF_FREQ_122_880 -> 122.88 MHz */ 490 { 491 /* tspll_ck_refclkfreq */ 492 0x29, 493 /* tspll_ndivratio */ 494 3, 495 /* tspll_fbdiv_intgr */ 496 195, 497 /* tspll_fbdiv_frac */ 498 1342177280UL, 499 /* ref1588_ck_div */ 500 0, 501 }, 502 503 /* ICE_TIME_REF_FREQ_125_000 -> 125 MHz */ 504 { 505 /* tspll_ck_refclkfreq */ 506 0x3E, 507 /* tspll_ndivratio */ 508 2, 509 /* tspll_fbdiv_intgr */ 510 128, 511 /* tspll_fbdiv_frac */ 512 0, 513 /* ref1588_ck_div */ 514 0, 515 }, 516 517 /* ICE_TIME_REF_FREQ_153_600 -> 153.6 MHz */ 518 { 519 /* tspll_ck_refclkfreq */ 520 0x33, 521 /* tspll_ndivratio */ 522 3, 523 /* tspll_fbdiv_intgr */ 524 156, 525 /* tspll_fbdiv_frac */ 526 1073741824UL, 527 /* ref1588_ck_div */ 528 0, 529 }, 530 531 /* ICE_TIME_REF_FREQ_156_250 -> 156.25 MHz */ 532 { 533 /* tspll_ck_refclkfreq */ 534 0x1F, 535 /* tspll_ndivratio */ 536 5, 537 /* tspll_fbdiv_intgr */ 538 256, 539 /* tspll_fbdiv_frac */ 540 0, 541 /* ref1588_ck_div */ 542 0, 543 }, 544 545 /* ICE_TIME_REF_FREQ_245_760 -> 245.76 MHz */ 546 { 547 /* tspll_ck_refclkfreq */ 548 0x52, 549 /* tspll_ndivratio */ 550 3, 551 /* tspll_fbdiv_intgr */ 552 97, 553 /* tspll_fbdiv_frac */ 554 2818572288UL, 555 /* ref1588_ck_div */ 556 0, 557 }, 558 }; 559 560 /* struct ice_vernier_info_e82x 561 * 562 * E822 hardware calibrates the delay of the timestamp indication from the 563 * actual packet transmission or reception during the initialization of the 564 * PHY. To do this, the hardware mechanism uses some conversions between the 565 * various clocks within the PHY block. This table defines constants used to 566 * calculate the correct conversion ratios in the PHY registers. 567 * 568 * Many of the values relate to the PAR/PCS clock conversion registers. For 569 * these registers, a value of 0 means that the associated register is not 570 * used by this link speed, and that the register should be cleared by writing 571 * 0. Other values specify the clock frequency in Hz. 572 */ 573 const struct ice_vernier_info_e82x e822_vernier[NUM_ICE_PTP_LNK_SPD] = { 574 /* ICE_PTP_LNK_SPD_1G */ 575 { 576 /* tx_par_clk */ 577 31250000, /* 31.25 MHz */ 578 /* rx_par_clk */ 579 31250000, /* 31.25 MHz */ 580 /* tx_pcs_clk */ 581 125000000, /* 125 MHz */ 582 /* rx_pcs_clk */ 583 125000000, /* 125 MHz */ 584 /* tx_desk_rsgb_par */ 585 0, /* unused */ 586 /* rx_desk_rsgb_par */ 587 0, /* unused */ 588 /* tx_desk_rsgb_pcs */ 589 0, /* unused */ 590 /* rx_desk_rsgb_pcs */ 591 0, /* unused */ 592 /* tx_fixed_delay */ 593 25140, 594 /* pmd_adj_divisor */ 595 10000000, 596 /* rx_fixed_delay */ 597 17372, 598 }, 599 /* ICE_PTP_LNK_SPD_10G */ 600 { 601 /* tx_par_clk */ 602 257812500, /* 257.8125 MHz */ 603 /* rx_par_clk */ 604 257812500, /* 257.8125 MHz */ 605 /* tx_pcs_clk */ 606 156250000, /* 156.25 MHz */ 607 /* rx_pcs_clk */ 608 156250000, /* 156.25 MHz */ 609 /* tx_desk_rsgb_par */ 610 0, /* unused */ 611 /* rx_desk_rsgb_par */ 612 0, /* unused */ 613 /* tx_desk_rsgb_pcs */ 614 0, /* unused */ 615 /* rx_desk_rsgb_pcs */ 616 0, /* unused */ 617 /* tx_fixed_delay */ 618 6938, 619 /* pmd_adj_divisor */ 620 82500000, 621 /* rx_fixed_delay */ 622 6212, 623 }, 624 /* ICE_PTP_LNK_SPD_25G */ 625 { 626 /* tx_par_clk */ 627 644531250, /* 644.53125 MHZ */ 628 /* rx_par_clk */ 629 644531250, /* 644.53125 MHz */ 630 /* tx_pcs_clk */ 631 390625000, /* 390.625 MHz */ 632 /* rx_pcs_clk */ 633 390625000, /* 390.625 MHz */ 634 /* tx_desk_rsgb_par */ 635 0, /* unused */ 636 /* rx_desk_rsgb_par */ 637 0, /* unused */ 638 /* tx_desk_rsgb_pcs */ 639 0, /* unused */ 640 /* rx_desk_rsgb_pcs */ 641 0, /* unused */ 642 /* tx_fixed_delay */ 643 2778, 644 /* pmd_adj_divisor */ 645 206250000, 646 /* rx_fixed_delay */ 647 2491, 648 }, 649 /* ICE_PTP_LNK_SPD_25G_RS */ 650 { 651 /* tx_par_clk */ 652 0, /* unused */ 653 /* rx_par_clk */ 654 0, /* unused */ 655 /* tx_pcs_clk */ 656 0, /* unused */ 657 /* rx_pcs_clk */ 658 0, /* unused */ 659 /* tx_desk_rsgb_par */ 660 161132812, /* 162.1328125 MHz Reed Solomon gearbox */ 661 /* rx_desk_rsgb_par */ 662 161132812, /* 162.1328125 MHz Reed Solomon gearbox */ 663 /* tx_desk_rsgb_pcs */ 664 97656250, /* 97.62625 MHz Reed Solomon gearbox */ 665 /* rx_desk_rsgb_pcs */ 666 97656250, /* 97.62625 MHz Reed Solomon gearbox */ 667 /* tx_fixed_delay */ 668 3928, 669 /* pmd_adj_divisor */ 670 206250000, 671 /* rx_fixed_delay */ 672 29535, 673 }, 674 /* ICE_PTP_LNK_SPD_40G */ 675 { 676 /* tx_par_clk */ 677 257812500, 678 /* rx_par_clk */ 679 257812500, 680 /* tx_pcs_clk */ 681 156250000, /* 156.25 MHz */ 682 /* rx_pcs_clk */ 683 156250000, /* 156.25 MHz */ 684 /* tx_desk_rsgb_par */ 685 0, /* unused */ 686 /* rx_desk_rsgb_par */ 687 156250000, /* 156.25 MHz deskew clock */ 688 /* tx_desk_rsgb_pcs */ 689 0, /* unused */ 690 /* rx_desk_rsgb_pcs */ 691 156250000, /* 156.25 MHz deskew clock */ 692 /* tx_fixed_delay */ 693 5666, 694 /* pmd_adj_divisor */ 695 82500000, 696 /* rx_fixed_delay */ 697 4244, 698 }, 699 /* ICE_PTP_LNK_SPD_50G */ 700 { 701 /* tx_par_clk */ 702 644531250, /* 644.53125 MHZ */ 703 /* rx_par_clk */ 704 644531250, /* 644.53125 MHZ */ 705 /* tx_pcs_clk */ 706 390625000, /* 390.625 MHz */ 707 /* rx_pcs_clk */ 708 390625000, /* 390.625 MHz */ 709 /* tx_desk_rsgb_par */ 710 0, /* unused */ 711 /* rx_desk_rsgb_par */ 712 195312500, /* 193.3125 MHz deskew clock */ 713 /* tx_desk_rsgb_pcs */ 714 0, /* unused */ 715 /* rx_desk_rsgb_pcs */ 716 195312500, /* 193.3125 MHz deskew clock */ 717 /* tx_fixed_delay */ 718 2778, 719 /* pmd_adj_divisor */ 720 206250000, 721 /* rx_fixed_delay */ 722 2868, 723 }, 724 /* ICE_PTP_LNK_SPD_50G_RS */ 725 { 726 /* tx_par_clk */ 727 0, /* unused */ 728 /* rx_par_clk */ 729 644531250, /* 644.53125 MHz */ 730 /* tx_pcs_clk */ 731 0, /* unused */ 732 /* rx_pcs_clk */ 733 644531250, /* 644.53125 MHz */ 734 /* tx_desk_rsgb_par */ 735 322265625, /* 322.265625 MHz Reed Solomon gearbox */ 736 /* rx_desk_rsgb_par */ 737 322265625, /* 322.265625 MHz Reed Solomon gearbox */ 738 /* tx_desk_rsgb_pcs */ 739 644531250, /* 644.53125 MHz Reed Solomon gearbox */ 740 /* rx_desk_rsgb_pcs */ 741 644531250, /* 644.53125 MHz Reed Solomon gearbox */ 742 /* tx_fixed_delay */ 743 2095, 744 /* pmd_adj_divisor */ 745 206250000, 746 /* rx_fixed_delay */ 747 14524, 748 }, 749 /* ICE_PTP_LNK_SPD_100G_RS */ 750 { 751 /* tx_par_clk */ 752 0, /* unused */ 753 /* rx_par_clk */ 754 644531250, /* 644.53125 MHz */ 755 /* tx_pcs_clk */ 756 0, /* unused */ 757 /* rx_pcs_clk */ 758 644531250, /* 644.53125 MHz */ 759 /* tx_desk_rsgb_par */ 760 644531250, /* 644.53125 MHz Reed Solomon gearbox */ 761 /* rx_desk_rsgb_par */ 762 644531250, /* 644.53125 MHz Reed Solomon gearbox */ 763 /* tx_desk_rsgb_pcs */ 764 644531250, /* 644.53125 MHz Reed Solomon gearbox */ 765 /* rx_desk_rsgb_pcs */ 766 644531250, /* 644.53125 MHz Reed Solomon gearbox */ 767 /* tx_fixed_delay */ 768 1620, 769 /* pmd_adj_divisor */ 770 206250000, 771 /* rx_fixed_delay */ 772 7775, 773 }, 774 }; 775 776 #endif /* _ICE_PTP_CONSTS_H_ */ 777