Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

phy: cadence-torrent: Add PCIe + DP multilink configuration for 100MHz refclk

Add multilink DP configuration support for 100MHz reference clock rate.
This is the only clock rate supported currently for multilink PHY
configurations. Also, add PCIe + DP multiprotocol multilink register
configuration sequences for 100MHz refclk with no SSC.

Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com>
Link: https://lore.kernel.org/r/20230418173157.25607-4-sjakhade@cadence.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Swapnil Jakhade and committed by
Vinod Koul
ede775a8 c756cc16

+227 -57
+227 -57
drivers/phy/cadence/phy-cadence-torrent.c
··· 904 904 /* Setting VCO for 10.8GHz */ 905 905 case 2700: 906 906 case 5400: 907 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0028); 908 - cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_FBH_OVRD_M0, 0x0022); 909 - cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBH_OVRD_M0, 0x0022); 910 - cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBL_OVRD_M0, 0x000C); 907 + if (cdns_phy->dp_pll & DP_PLL0) 908 + cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_FBH_OVRD_M0, 0x0022); 909 + 910 + if (cdns_phy->dp_pll & DP_PLL1) { 911 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0028); 912 + cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBH_OVRD_M0, 0x0022); 913 + cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBL_OVRD_M0, 0x000C); 914 + } 911 915 break; 912 916 /* Setting VCO for 9.72GHz */ 913 917 case 1620: 914 918 case 2430: 915 919 case 3240: 916 - cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004); 917 - cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004); 918 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509); 919 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509); 920 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00); 921 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00); 922 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08); 923 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08); 924 - cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0061); 925 - cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0061); 926 - cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x3333); 927 - cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x3333); 928 - cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002); 929 - cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002); 930 - cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0042); 931 - cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0042); 932 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002); 933 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002); 920 + if (cdns_phy->dp_pll & DP_PLL0) { 921 + cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004); 922 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509); 923 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00); 924 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08); 925 + cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0061); 926 + cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x3333); 927 + cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002); 928 + cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0042); 929 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002); 930 + } 931 + if (cdns_phy->dp_pll & DP_PLL1) { 932 + cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004); 933 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509); 934 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00); 935 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08); 936 + cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0061); 937 + cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x3333); 938 + cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002); 939 + cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0042); 940 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002); 941 + } 934 942 break; 935 943 /* Setting VCO for 8.64GHz */ 936 944 case 2160: 937 945 case 4320: 938 - cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004); 939 - cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004); 940 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509); 941 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509); 942 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00); 943 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00); 944 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08); 945 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08); 946 - cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0056); 947 - cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0056); 948 - cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x6666); 949 - cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x6666); 950 - cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002); 951 - cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002); 952 - cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x003A); 953 - cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x003A); 954 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002); 955 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002); 946 + if (cdns_phy->dp_pll & DP_PLL0) { 947 + cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004); 948 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509); 949 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00); 950 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08); 951 + cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0056); 952 + cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x6666); 953 + cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002); 954 + cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x003A); 955 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002); 956 + } 957 + if (cdns_phy->dp_pll & DP_PLL1) { 958 + cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004); 959 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509); 960 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00); 961 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08); 962 + cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0056); 963 + cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x6666); 964 + cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002); 965 + cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x003A); 966 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002); 967 + } 956 968 break; 957 969 /* Setting VCO for 8.1GHz */ 958 970 case 8100: 959 - cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004); 960 - cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004); 961 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509); 962 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509); 963 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00); 964 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00); 965 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08); 966 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08); 967 - cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0051); 968 - cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0051); 969 - cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002); 970 - cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002); 971 - cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0036); 972 - cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0036); 973 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002); 974 - cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002); 971 + if (cdns_phy->dp_pll & DP_PLL0) { 972 + cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004); 973 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509); 974 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00); 975 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08); 976 + cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0051); 977 + cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002); 978 + cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0036); 979 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002); 980 + } 981 + if (cdns_phy->dp_pll & DP_PLL1) { 982 + cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004); 983 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509); 984 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00); 985 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08); 986 + cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0051); 987 + cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002); 988 + cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0036); 989 + cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002); 990 + } 975 991 break; 976 992 } 977 993 } ··· 1724 1708 return cdns_torrent_dp_start(cdns_phy, inst, phy); 1725 1709 } 1726 1710 1711 + static int cdns_torrent_dp_multilink_init(struct cdns_torrent_phy *cdns_phy, 1712 + struct cdns_torrent_inst *inst, 1713 + struct phy *phy) 1714 + { 1715 + if (cdns_phy->ref_clk_rate != CLK_100_MHZ) { 1716 + dev_err(cdns_phy->dev, "Unsupported Ref Clock Rate\n"); 1717 + return -EINVAL; 1718 + } 1719 + 1720 + cdns_torrent_dp_common_init(cdns_phy, inst); 1721 + 1722 + return cdns_torrent_dp_start(cdns_phy, inst, phy); 1723 + } 1724 + 1727 1725 static int cdns_torrent_derived_refclk_enable(struct clk_hw *hw) 1728 1726 { 1729 1727 struct cdns_torrent_derived_refclk *derived_refclk = to_cdns_torrent_derived_refclk(hw); ··· 2249 2219 u32 num_regs; 2250 2220 int i, j; 2251 2221 2252 - if (cdns_phy->nsubnodes > 1) 2222 + if (cdns_phy->nsubnodes > 1) { 2223 + if (phy_type == TYPE_DP) 2224 + return cdns_torrent_dp_multilink_init(cdns_phy, inst, phy); 2253 2225 return 0; 2226 + } 2254 2227 2255 2228 /** 2256 2229 * Spread spectrum generation is not required or supported ··· 2493 2460 regmap_write(regmap, reg_pairs[j].off, 2494 2461 reg_pairs[j].val); 2495 2462 } 2463 + } 2464 + 2465 + if (phy_t1 == TYPE_DP) { 2466 + ret = cdns_torrent_dp_get_pll(cdns_phy, phy_t2); 2467 + if (ret) 2468 + return ret; 2496 2469 } 2497 2470 2498 2471 reset_control_deassert(cdns_phy->phys[node].lnk_rst); ··· 2895 2856 clk_disable_unprepare(cdns_phy->clk); 2896 2857 cdns_torrent_clk_cleanup(cdns_phy); 2897 2858 } 2859 + 2860 + /* PCIe and DP link configuration */ 2861 + static struct cdns_reg_pairs pcie_dp_link_cmn_regs[] = { 2862 + {0x0003, PHY_PLL_CFG}, 2863 + {0x0601, CMN_PDIAG_PLL0_CLK_SEL_M0}, 2864 + {0x0400, CMN_PDIAG_PLL0_CLK_SEL_M1} 2865 + }; 2866 + 2867 + static struct cdns_reg_pairs pcie_dp_xcvr_diag_ln_regs[] = { 2868 + {0x0000, XCVR_DIAG_HSCLK_SEL}, 2869 + {0x0001, XCVR_DIAG_HSCLK_DIV}, 2870 + {0x0012, XCVR_DIAG_PLLDRC_CTRL} 2871 + }; 2872 + 2873 + static struct cdns_reg_pairs dp_pcie_xcvr_diag_ln_regs[] = { 2874 + {0x0001, XCVR_DIAG_HSCLK_SEL}, 2875 + {0x0009, XCVR_DIAG_PLLDRC_CTRL} 2876 + }; 2877 + 2878 + static struct cdns_torrent_vals pcie_dp_link_cmn_vals = { 2879 + .reg_pairs = pcie_dp_link_cmn_regs, 2880 + .num_regs = ARRAY_SIZE(pcie_dp_link_cmn_regs), 2881 + }; 2882 + 2883 + static struct cdns_torrent_vals pcie_dp_xcvr_diag_ln_vals = { 2884 + .reg_pairs = pcie_dp_xcvr_diag_ln_regs, 2885 + .num_regs = ARRAY_SIZE(pcie_dp_xcvr_diag_ln_regs), 2886 + }; 2887 + 2888 + static struct cdns_torrent_vals dp_pcie_xcvr_diag_ln_vals = { 2889 + .reg_pairs = dp_pcie_xcvr_diag_ln_regs, 2890 + .num_regs = ARRAY_SIZE(dp_pcie_xcvr_diag_ln_regs), 2891 + }; 2892 + 2893 + /* DP Multilink, 100 MHz Ref clk, no SSC */ 2894 + static struct cdns_reg_pairs dp_100_no_ssc_cmn_regs[] = { 2895 + {0x007F, CMN_TXPUCAL_TUNE}, 2896 + {0x007F, CMN_TXPDCAL_TUNE} 2897 + }; 2898 + 2899 + static struct cdns_reg_pairs dp_100_no_ssc_tx_ln_regs[] = { 2900 + {0x00FB, TX_PSC_A0}, 2901 + {0x04AA, TX_PSC_A2}, 2902 + {0x04AA, TX_PSC_A3}, 2903 + {0x000F, XCVR_DIAG_BIDI_CTRL} 2904 + }; 2905 + 2906 + static struct cdns_reg_pairs dp_100_no_ssc_rx_ln_regs[] = { 2907 + {0x0000, RX_PSC_A0}, 2908 + {0x0000, RX_PSC_A2}, 2909 + {0x0000, RX_PSC_A3}, 2910 + {0x0000, RX_PSC_CAL}, 2911 + {0x0000, RX_REE_GCSM1_CTRL}, 2912 + {0x0000, RX_REE_GCSM2_CTRL}, 2913 + {0x0000, RX_REE_PERGCSM_CTRL} 2914 + }; 2915 + 2916 + static struct cdns_torrent_vals dp_100_no_ssc_cmn_vals = { 2917 + .reg_pairs = dp_100_no_ssc_cmn_regs, 2918 + .num_regs = ARRAY_SIZE(dp_100_no_ssc_cmn_regs), 2919 + }; 2920 + 2921 + static struct cdns_torrent_vals dp_100_no_ssc_tx_ln_vals = { 2922 + .reg_pairs = dp_100_no_ssc_tx_ln_regs, 2923 + .num_regs = ARRAY_SIZE(dp_100_no_ssc_tx_ln_regs), 2924 + }; 2925 + 2926 + static struct cdns_torrent_vals dp_100_no_ssc_rx_ln_vals = { 2927 + .reg_pairs = dp_100_no_ssc_rx_ln_regs, 2928 + .num_regs = ARRAY_SIZE(dp_100_no_ssc_rx_ln_regs), 2929 + }; 2898 2930 2899 2931 /* Single DisplayPort(DP) link configuration */ 2900 2932 static struct cdns_reg_pairs sl_dp_link_cmn_regs[] = { ··· 3909 3799 [TYPE_NONE] = { 3910 3800 [NO_SSC] = &sl_dp_link_cmn_vals, 3911 3801 }, 3802 + [TYPE_PCIE] = { 3803 + [NO_SSC] = &pcie_dp_link_cmn_vals, 3804 + }, 3912 3805 }, 3913 3806 [TYPE_PCIE] = { 3914 3807 [TYPE_NONE] = { ··· 3933 3820 [NO_SSC] = &pcie_usb_link_cmn_vals, 3934 3821 [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals, 3935 3822 [INTERNAL_SSC] = &pcie_usb_link_cmn_vals, 3823 + }, 3824 + [TYPE_DP] = { 3825 + [NO_SSC] = &pcie_dp_link_cmn_vals, 3936 3826 }, 3937 3827 }, 3938 3828 [TYPE_SGMII] = { ··· 3996 3880 [TYPE_NONE] = { 3997 3881 [NO_SSC] = &sl_dp_xcvr_diag_ln_vals, 3998 3882 }, 3883 + [TYPE_PCIE] = { 3884 + [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals, 3885 + }, 3999 3886 }, 4000 3887 [TYPE_PCIE] = { 4001 3888 [TYPE_NONE] = { ··· 4020 3901 [NO_SSC] = &pcie_usb_xcvr_diag_ln_vals, 4021 3902 [EXTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals, 4022 3903 [INTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals, 3904 + }, 3905 + [TYPE_DP] = { 3906 + [NO_SSC] = &pcie_dp_xcvr_diag_ln_vals, 4023 3907 }, 4024 3908 }, 4025 3909 [TYPE_SGMII] = { ··· 4122 4000 [TYPE_NONE] = { 4123 4001 [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals, 4124 4002 }, 4003 + [TYPE_PCIE] = { 4004 + [NO_SSC] = &dp_100_no_ssc_cmn_vals, 4005 + }, 4125 4006 }, 4126 4007 [TYPE_PCIE] = { 4127 4008 [TYPE_NONE] = { ··· 4146 4021 [NO_SSC] = &pcie_100_no_ssc_cmn_vals, 4147 4022 [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals, 4148 4023 [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals, 4024 + }, 4025 + [TYPE_DP] = { 4026 + [NO_SSC] = NULL, 4149 4027 }, 4150 4028 }, 4151 4029 [TYPE_SGMII] = { ··· 4225 4097 [TYPE_NONE] = { 4226 4098 [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals, 4227 4099 }, 4100 + [TYPE_PCIE] = { 4101 + [NO_SSC] = &dp_100_no_ssc_tx_ln_vals, 4102 + }, 4228 4103 }, 4229 4104 [TYPE_PCIE] = { 4230 4105 [TYPE_NONE] = { ··· 4249 4118 [NO_SSC] = NULL, 4250 4119 [EXTERNAL_SSC] = NULL, 4251 4120 [INTERNAL_SSC] = NULL, 4121 + }, 4122 + [TYPE_DP] = { 4123 + [NO_SSC] = NULL, 4252 4124 }, 4253 4125 }, 4254 4126 [TYPE_SGMII] = { ··· 4328 4194 [TYPE_NONE] = { 4329 4195 [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals, 4330 4196 }, 4197 + [TYPE_PCIE] = { 4198 + [NO_SSC] = &dp_100_no_ssc_rx_ln_vals, 4199 + }, 4331 4200 }, 4332 4201 [TYPE_PCIE] = { 4333 4202 [TYPE_NONE] = { ··· 4352 4215 [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4353 4216 [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4354 4217 [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4218 + }, 4219 + [TYPE_DP] = { 4220 + [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4355 4221 }, 4356 4222 }, 4357 4223 [TYPE_SGMII] = { ··· 4421 4281 [TYPE_NONE] = { 4422 4282 [NO_SSC] = &sl_dp_link_cmn_vals, 4423 4283 }, 4284 + [TYPE_PCIE] = { 4285 + [NO_SSC] = &pcie_dp_link_cmn_vals, 4286 + }, 4424 4287 }, 4425 4288 [TYPE_PCIE] = { 4426 4289 [TYPE_NONE] = { ··· 4445 4302 [NO_SSC] = &pcie_usb_link_cmn_vals, 4446 4303 [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals, 4447 4304 [INTERNAL_SSC] = &pcie_usb_link_cmn_vals, 4305 + }, 4306 + [TYPE_DP] = { 4307 + [NO_SSC] = &pcie_dp_link_cmn_vals, 4448 4308 }, 4449 4309 }, 4450 4310 [TYPE_SGMII] = { ··· 4508 4362 [TYPE_NONE] = { 4509 4363 [NO_SSC] = &sl_dp_xcvr_diag_ln_vals, 4510 4364 }, 4365 + [TYPE_PCIE] = { 4366 + [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals, 4367 + }, 4511 4368 }, 4512 4369 [TYPE_PCIE] = { 4513 4370 [TYPE_NONE] = { ··· 4532 4383 [NO_SSC] = &pcie_usb_xcvr_diag_ln_vals, 4533 4384 [EXTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals, 4534 4385 [INTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals, 4386 + }, 4387 + [TYPE_DP] = { 4388 + [NO_SSC] = &pcie_dp_xcvr_diag_ln_vals, 4535 4389 }, 4536 4390 }, 4537 4391 [TYPE_SGMII] = { ··· 4634 4482 [TYPE_NONE] = { 4635 4483 [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals, 4636 4484 }, 4485 + [TYPE_PCIE] = { 4486 + [NO_SSC] = &dp_100_no_ssc_cmn_vals, 4487 + }, 4637 4488 }, 4638 4489 [TYPE_PCIE] = { 4639 4490 [TYPE_NONE] = { ··· 4658 4503 [NO_SSC] = &pcie_100_no_ssc_cmn_vals, 4659 4504 [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals, 4660 4505 [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals, 4506 + }, 4507 + [TYPE_DP] = { 4508 + [NO_SSC] = NULL, 4661 4509 }, 4662 4510 }, 4663 4511 [TYPE_SGMII] = { ··· 4737 4579 [TYPE_NONE] = { 4738 4580 [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals, 4739 4581 }, 4582 + [TYPE_PCIE] = { 4583 + [NO_SSC] = &dp_100_no_ssc_tx_ln_vals, 4584 + }, 4740 4585 }, 4741 4586 [TYPE_PCIE] = { 4742 4587 [TYPE_NONE] = { ··· 4761 4600 [NO_SSC] = NULL, 4762 4601 [EXTERNAL_SSC] = NULL, 4763 4602 [INTERNAL_SSC] = NULL, 4603 + }, 4604 + [TYPE_DP] = { 4605 + [NO_SSC] = NULL, 4764 4606 }, 4765 4607 }, 4766 4608 [TYPE_SGMII] = { ··· 4840 4676 [TYPE_NONE] = { 4841 4677 [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals, 4842 4678 }, 4679 + [TYPE_PCIE] = { 4680 + [NO_SSC] = &dp_100_no_ssc_rx_ln_vals, 4681 + }, 4843 4682 }, 4844 4683 [TYPE_PCIE] = { 4845 4684 [TYPE_NONE] = { ··· 4864 4697 [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4865 4698 [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4866 4699 [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4700 + }, 4701 + [TYPE_DP] = { 4702 + [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals, 4867 4703 }, 4868 4704 }, 4869 4705 [TYPE_SGMII] = {