206206#define RX_REE_GCSM2_CTRL 0x0110U
207207#define RX_REE_PERGCSM_CTRL 0x0118U
208208#define RX_REE_PEAK_UTHR 0x0142U
209+ #define RX_REE_PEAK_LTHR 0x0143U
209210#define RX_REE_ATTEN_THR 0x0149U
210211#define RX_REE_TAP1_CLIP 0x0171U
211212#define RX_REE_TAP2TON_CLIP 0x0172U
@@ -298,6 +299,7 @@ enum cdns_torrent_phy_type {
298299 TYPE_QSGMII ,
299300 TYPE_USB ,
300301 TYPE_USXGMII ,
302+ TYPE_PCIE_ML ,
301303};
302304
303305enum cdns_torrent_ref_clk {
@@ -696,6 +698,7 @@ static const char *cdns_torrent_get_phy_type(enum cdns_torrent_phy_type phy_type
696698 case TYPE_DP :
697699 return "DisplayPort" ;
698700 case TYPE_PCIE :
701+ case TYPE_PCIE_ML :
699702 return "PCIe" ;
700703 case TYPE_SGMII :
701704 return "SGMII" ;
@@ -2481,6 +2484,7 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
24812484 enum cdns_torrent_ssc_mode ssc ;
24822485 struct regmap * regmap ;
24832486 u32 num_regs , num_protocols , protocol ;
2487+ u32 num_pcie_links = 0 ;
24842488
24852489 num_protocols = hweight32 (cdns_phy -> protocol_bitmask );
24862490 /* Maximum 2 protocols are supported */
@@ -2513,6 +2517,44 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
25132517
25142518 phy_t1 = fns (cdns_phy -> protocol_bitmask , 0 );
25152519 phy_t2 = fns (cdns_phy -> protocol_bitmask , 1 );
2520+
2521+ /*
2522+ * PCIe Multilink configuration can be supported along with a
2523+ * non-PCIe protocol. The existing limitation associated with
2524+ * the standalone PCIe Multilink configuration still remains,
2525+ * implying that there can be only two links (subnodes) of the
2526+ * PHY type PCIe which constitute the PCIe Multilink.
2527+ *
2528+ * Such configurations are handled by introducing a new protocol
2529+ * namely TYPE_PCIE_ML. Both of the PCIe links which have the
2530+ * protocol as TYPE_PCIE shall be treated as though the protocol
2531+ * corresponding to them is TYPE_PCIE_ML only for the sake of
2532+ * configuring the SERDES.
2533+ *
2534+ * PCIe Multilink configuration can be identified by checking if
2535+ * there are exactly two links with phy_type set to TYPE_PCIE.
2536+ * phy_t1 and phy_t2 are modified in such cases to support the
2537+ * PCIe Multilink configuration with a non-PCIe protocol.
2538+ */
2539+ for (node = 0 ; node < cdns_phy -> nsubnodes ; node ++ ) {
2540+ if (cdns_phy -> phys [node ].phy_type == TYPE_PCIE )
2541+ num_pcie_links ++ ;
2542+ }
2543+
2544+ if (num_pcie_links > 2 ) {
2545+ dev_err (dev , "cannot support PCIe Multilink with %u PCIe links\n" ,
2546+ num_pcie_links );
2547+ return - EINVAL ;
2548+ } else if (num_pcie_links == 2 ) {
2549+ phy_t1 = TYPE_PCIE_ML ;
2550+ for (node = 0 ; node < cdns_phy -> nsubnodes ; node ++ ) {
2551+ if (cdns_phy -> phys [node ].phy_type == TYPE_PCIE ) {
2552+ cdns_phy -> phys [node ].phy_type = TYPE_PCIE_ML ;
2553+ continue ;
2554+ }
2555+ phy_t2 = cdns_phy -> phys [node ].phy_type ;
2556+ }
2557+ }
25162558 }
25172559
25182560 /**
@@ -2679,6 +2721,11 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
26792721 }
26802722 }
26812723
2724+ /* Restore TYPE_PCIE_ML to TYPE_PCIE to be compatible with suspend-resume */
2725+ for (node = 0 ; node < cdns_phy -> nsubnodes ; node ++ )
2726+ if (cdns_phy -> phys [node ].phy_type == TYPE_PCIE_ML )
2727+ cdns_phy -> phys [node ].phy_type = TYPE_PCIE ;
2728+
26822729 /* Take the PHY out of reset */
26832730 ret = reset_control_deassert (cdns_phy -> phy_rst );
26842731 if (ret )
@@ -3091,15 +3138,14 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
30913138 }
30923139
30933140 if (cdns_phy -> nsubnodes > 1 )
3094- dev_dbg (dev , "Multi-link: %s (%d lanes) & %s (%d lanes)" ,
3095- cdns_torrent_get_phy_type (cdns_phy -> phys [0 ].phy_type ),
3096- cdns_phy -> phys [0 ].num_lanes ,
3097- cdns_torrent_get_phy_type (cdns_phy -> phys [1 ].phy_type ),
3098- cdns_phy -> phys [1 ].num_lanes );
3141+ dev_dbg (dev , "Multi link configuration:\n" );
30993142 else
3100- dev_dbg (dev , "Single link: %s (%d lanes)" ,
3101- cdns_torrent_get_phy_type (cdns_phy -> phys [0 ].phy_type ),
3102- cdns_phy -> phys [0 ].num_lanes );
3143+ dev_dbg (dev , "Single link configuration:\n" );
3144+
3145+ for (i = 0 ; i < cdns_phy -> nsubnodes ; i ++ )
3146+ dev_dbg (dev , "%s (%d lanes)" ,
3147+ cdns_torrent_get_phy_type (cdns_phy -> phys [i ].phy_type ),
3148+ cdns_phy -> phys [i ].num_lanes );
31033149
31043150 return 0 ;
31053151
@@ -3134,6 +3180,37 @@ static void cdns_torrent_phy_remove(struct platform_device *pdev)
31343180 cdns_torrent_clk_cleanup (cdns_phy );
31353181}
31363182
3183+ /* Multilink PCIe and USB Same SSC link configuration */
3184+ static const struct cdns_reg_pairs ml_pcie_usb_link_cmn_regs [] = {
3185+ {0x0002 , PHY_PLL_CFG },
3186+ {0x8600 , CMN_PDIAG_PLL0_CLK_SEL_M0 }
3187+ };
3188+
3189+ static const struct cdns_reg_pairs ml_pcie_usb_xcvr_diag_ln_regs [] = {
3190+ {0x0100 , XCVR_DIAG_HSCLK_SEL },
3191+ {0x0013 , XCVR_DIAG_HSCLK_DIV },
3192+ {0x0812 , XCVR_DIAG_PLLDRC_CTRL }
3193+ };
3194+
3195+ static const struct cdns_reg_pairs usb_ml_pcie_xcvr_diag_ln_regs [] = {
3196+ {0x0041 , XCVR_DIAG_PLLDRC_CTRL },
3197+ };
3198+
3199+ static const struct cdns_torrent_vals ml_pcie_usb_link_cmn_vals = {
3200+ .reg_pairs = ml_pcie_usb_link_cmn_regs ,
3201+ .num_regs = ARRAY_SIZE (ml_pcie_usb_link_cmn_regs ),
3202+ };
3203+
3204+ static const struct cdns_torrent_vals ml_pcie_usb_xcvr_diag_ln_vals = {
3205+ .reg_pairs = ml_pcie_usb_xcvr_diag_ln_regs ,
3206+ .num_regs = ARRAY_SIZE (ml_pcie_usb_xcvr_diag_ln_regs ),
3207+ };
3208+
3209+ static const struct cdns_torrent_vals usb_ml_pcie_xcvr_diag_ln_vals = {
3210+ .reg_pairs = usb_ml_pcie_xcvr_diag_ln_regs ,
3211+ .num_regs = ARRAY_SIZE (usb_ml_pcie_xcvr_diag_ln_regs ),
3212+ };
3213+
31373214/* Multi link PCIe configuration */
31383215static const struct cdns_reg_pairs ml_pcie_link_cmn_regs [] = {
31393216 {0x0002 , PHY_PLL_CFG },
@@ -4140,6 +4217,8 @@ static const struct cdns_reg_pairs usb_100_no_ssc_rx_ln_regs[] = {
41404217 {0x0C02 , RX_REE_ATTEN_THR },
41414218 {0x0330 , RX_REE_SMGM_CTRL1 },
41424219 {0x0300 , RX_REE_SMGM_CTRL2 },
4220+ {0x0000 , RX_REE_PEAK_UTHR },
4221+ {0x01F5 , RX_REE_PEAK_LTHR },
41434222 {0x0019 , RX_REE_TAP1_CLIP },
41444223 {0x0019 , RX_REE_TAP2TON_CLIP },
41454224 {0x1004 , RX_DIAG_SIGDET_TUNE },
@@ -4775,6 +4854,8 @@ static const struct cdns_torrent_vals_entry link_cmn_vals_entries[] = {
47754854 {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_DP ), & pcie_dp_link_cmn_vals },
47764855 {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_USXGMII ), & pcie_usxgmii_link_cmn_vals },
47774856
4857+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE_ML , TYPE_USB ), & ml_pcie_usb_link_cmn_vals },
4858+
47784859 {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_NONE ), & sl_sgmii_link_cmn_vals },
47794860 {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_PCIE ), & pcie_sgmii_link_cmn_vals },
47804861 {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_QSGMII ), & sgmii_qsgmii_link_cmn_vals },
@@ -4789,6 +4870,7 @@ static const struct cdns_torrent_vals_entry link_cmn_vals_entries[] = {
47894870
47904871 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & sl_usb_link_cmn_vals },
47914872 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE ), & pcie_usb_link_cmn_vals },
4873+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE_ML ), & ml_pcie_usb_link_cmn_vals },
47924874 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_SGMII ), & usb_sgmii_link_cmn_vals },
47934875 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_QSGMII ), & usb_sgmii_link_cmn_vals },
47944876 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_DP ), & usb_dp_link_cmn_vals },
@@ -4812,6 +4894,8 @@ static const struct cdns_torrent_vals_entry xcvr_diag_vals_entries[] = {
48124894 {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_DP ), & pcie_dp_xcvr_diag_ln_vals },
48134895 {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_USXGMII ), & pcie_usxgmii_xcvr_diag_ln_vals },
48144896
4897+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE_ML , TYPE_USB ), & ml_pcie_usb_xcvr_diag_ln_vals },
4898+
48154899 {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_NONE ), & sl_sgmii_xcvr_diag_ln_vals },
48164900 {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_PCIE ), & sgmii_pcie_xcvr_diag_ln_vals },
48174901 {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_QSGMII ), & sgmii_qsgmii_xcvr_diag_ln_vals },
@@ -4826,6 +4910,7 @@ static const struct cdns_torrent_vals_entry xcvr_diag_vals_entries[] = {
48264910
48274911 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & sl_usb_xcvr_diag_ln_vals },
48284912 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE ), & usb_pcie_xcvr_diag_ln_vals },
4913+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE_ML ), & usb_ml_pcie_xcvr_diag_ln_vals },
48294914 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_SGMII ), & usb_sgmii_xcvr_diag_ln_vals },
48304915 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_QSGMII ), & usb_sgmii_xcvr_diag_ln_vals },
48314916 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_DP ), & usb_dp_xcvr_diag_ln_vals },
@@ -4839,6 +4924,7 @@ static const struct cdns_torrent_vals_entry xcvr_diag_vals_entries[] = {
48394924static const struct cdns_torrent_vals_entry pcs_cmn_vals_entries [] = {
48404925 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & usb_phy_pcs_cmn_vals },
48414926 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE ), & usb_phy_pcs_cmn_vals },
4927+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE_ML ), & usb_phy_pcs_cmn_vals },
48424928 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_SGMII ), & usb_phy_pcs_cmn_vals },
48434929 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_QSGMII ), & usb_phy_pcs_cmn_vals },
48444930 {CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_DP ), & usb_phy_pcs_cmn_vals },
@@ -4874,6 +4960,10 @@ static const struct cdns_torrent_vals_entry cmn_vals_entries[] = {
48744960
48754961 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
48764962
4963+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), & ml_pcie_100_no_ssc_cmn_vals },
4964+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), & ml_pcie_100_no_ssc_cmn_vals },
4965+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), & ml_pcie_100_int_ssc_cmn_vals },
4966+
48774967 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sl_sgmii_100_no_ssc_cmn_vals },
48784968
48794969 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & sgmii_100_no_ssc_cmn_vals },
@@ -4906,6 +4996,10 @@ static const struct cdns_torrent_vals_entry cmn_vals_entries[] = {
49064996 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
49074997 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_int_ssc_cmn_vals },
49084998
4999+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_cmn_vals },
5000+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
5001+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
5002+
49095003 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & sl_usb_100_no_ssc_cmn_vals },
49105004 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & sl_usb_100_no_ssc_cmn_vals },
49115005 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & sl_usb_100_int_ssc_cmn_vals },
@@ -4960,6 +5054,10 @@ static const struct cdns_torrent_vals_entry cdns_tx_ln_vals_entries[] = {
49605054
49615055 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
49625056
5057+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), NULL },
5058+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), NULL },
5059+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), NULL },
5060+
49635061 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sgmii_100_no_ssc_tx_ln_vals },
49645062
49655063 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & sgmii_100_no_ssc_tx_ln_vals },
@@ -4992,6 +5090,10 @@ static const struct cdns_torrent_vals_entry cdns_tx_ln_vals_entries[] = {
49925090 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
49935091 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
49945092
5093+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
5094+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5095+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5096+
49955097 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
49965098 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
49975099 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
@@ -5046,6 +5148,10 @@ static const struct cdns_torrent_vals_entry cdns_rx_ln_vals_entries[] = {
50465148
50475149 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), & pcie_100_no_ssc_rx_ln_vals },
50485150
5151+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), & ml_pcie_100_no_ssc_rx_ln_vals },
5152+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), & ml_pcie_100_no_ssc_rx_ln_vals },
5153+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), & ml_pcie_100_no_ssc_rx_ln_vals },
5154+
50495155 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
50505156
50515157 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
@@ -5078,6 +5184,10 @@ static const struct cdns_torrent_vals_entry cdns_rx_ln_vals_entries[] = {
50785184 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
50795185 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
50805186
5187+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_rx_ln_vals },
5188+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5189+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5190+
50815191 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_rx_ln_vals },
50825192 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
50835193 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
@@ -5168,6 +5278,10 @@ static const struct cdns_torrent_vals_entry ti_tx_ln_vals_entries[] = {
51685278
51695279 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
51705280
5281+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), NULL },
5282+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), NULL },
5283+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), NULL },
5284+
51715285 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
51725286
51735287 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
@@ -5200,6 +5314,10 @@ static const struct cdns_torrent_vals_entry ti_tx_ln_vals_entries[] = {
52005314 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
52015315 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
52025316
5317+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
5318+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5319+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5320+
52035321 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
52045322 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
52055323 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
@@ -5288,6 +5406,10 @@ static const struct cdns_torrent_vals_entry ti_j7200_cmn_vals_entries[] = {
52885406
52895407 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
52905408
5409+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), & ml_pcie_100_no_ssc_cmn_vals },
5410+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), & ml_pcie_100_no_ssc_cmn_vals },
5411+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), & ml_pcie_100_int_ssc_cmn_vals },
5412+
52915413 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sl_sgmii_100_no_ssc_cmn_vals },
52925414
52935415 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & sgmii_100_no_ssc_cmn_vals },
@@ -5320,6 +5442,10 @@ static const struct cdns_torrent_vals_entry ti_j7200_cmn_vals_entries[] = {
53205442 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
53215443 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_int_ssc_cmn_vals },
53225444
5445+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_cmn_vals },
5446+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
5447+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
5448+
53235449 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & sl_usb_100_no_ssc_cmn_vals },
53245450 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & sl_usb_100_no_ssc_cmn_vals },
53255451 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & sl_usb_100_int_ssc_cmn_vals },
@@ -5374,6 +5500,10 @@ static const struct cdns_torrent_vals_entry ti_j7200_tx_ln_vals_entries[] = {
53745500
53755501 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
53765502
5503+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), NULL },
5504+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), NULL },
5505+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), NULL },
5506+
53775507 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
53785508
53795509 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
@@ -5406,6 +5536,10 @@ static const struct cdns_torrent_vals_entry ti_j7200_tx_ln_vals_entries[] = {
54065536 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
54075537 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
54085538
5539+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
5540+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5541+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5542+
54095543 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
54105544 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
54115545 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
@@ -5460,6 +5594,10 @@ static const struct cdns_torrent_vals_entry ti_j7200_rx_ln_vals_entries[] = {
54605594
54615595 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), & pcie_100_no_ssc_rx_ln_vals },
54625596
5597+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , NO_SSC ), & pcie_100_no_ssc_rx_ln_vals },
5598+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , EXTERNAL_SSC ), & pcie_100_no_ssc_rx_ln_vals },
5599+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE_ML , TYPE_USB , INTERNAL_SSC ), & pcie_100_no_ssc_rx_ln_vals },
5600+
54635601 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
54645602
54655603 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_PCIE , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
@@ -5492,6 +5630,10 @@ static const struct cdns_torrent_vals_entry ti_j7200_rx_ln_vals_entries[] = {
54925630 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
54935631 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
54945632
5633+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , NO_SSC ), & usb_100_no_ssc_rx_ln_vals },
5634+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5635+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE_ML , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5636+
54955637 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_rx_ln_vals },
54965638 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
54975639 {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
0 commit comments