206
206
#define RX_REE_GCSM2_CTRL 0x0110U
207
207
#define RX_REE_PERGCSM_CTRL 0x0118U
208
208
#define RX_REE_PEAK_UTHR 0x0142U
209
+ #define RX_REE_PEAK_LTHR 0x0143U
209
210
#define RX_REE_ATTEN_THR 0x0149U
210
211
#define RX_REE_TAP1_CLIP 0x0171U
211
212
#define RX_REE_TAP2TON_CLIP 0x0172U
@@ -298,6 +299,7 @@ enum cdns_torrent_phy_type {
298
299
TYPE_QSGMII ,
299
300
TYPE_USB ,
300
301
TYPE_USXGMII ,
302
+ TYPE_PCIE_ML ,
301
303
};
302
304
303
305
enum cdns_torrent_ref_clk {
@@ -696,6 +698,7 @@ static const char *cdns_torrent_get_phy_type(enum cdns_torrent_phy_type phy_type
696
698
case TYPE_DP :
697
699
return "DisplayPort" ;
698
700
case TYPE_PCIE :
701
+ case TYPE_PCIE_ML :
699
702
return "PCIe" ;
700
703
case TYPE_SGMII :
701
704
return "SGMII" ;
@@ -2481,6 +2484,7 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
2481
2484
enum cdns_torrent_ssc_mode ssc ;
2482
2485
struct regmap * regmap ;
2483
2486
u32 num_regs , num_protocols , protocol ;
2487
+ u32 num_pcie_links = 0 ;
2484
2488
2485
2489
num_protocols = hweight32 (cdns_phy -> protocol_bitmask );
2486
2490
/* Maximum 2 protocols are supported */
@@ -2513,6 +2517,44 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
2513
2517
2514
2518
phy_t1 = fns (cdns_phy -> protocol_bitmask , 0 );
2515
2519
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
+ }
2516
2558
}
2517
2559
2518
2560
/**
@@ -2679,6 +2721,11 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
2679
2721
}
2680
2722
}
2681
2723
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
+
2682
2729
/* Take the PHY out of reset */
2683
2730
ret = reset_control_deassert (cdns_phy -> phy_rst );
2684
2731
if (ret )
@@ -3091,15 +3138,14 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
3091
3138
}
3092
3139
3093
3140
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" );
3099
3142
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 );
3103
3149
3104
3150
return 0 ;
3105
3151
@@ -3134,6 +3180,37 @@ static void cdns_torrent_phy_remove(struct platform_device *pdev)
3134
3180
cdns_torrent_clk_cleanup (cdns_phy );
3135
3181
}
3136
3182
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
+
3137
3214
/* Multi link PCIe configuration */
3138
3215
static const struct cdns_reg_pairs ml_pcie_link_cmn_regs [] = {
3139
3216
{0x0002 , PHY_PLL_CFG },
@@ -4140,6 +4217,8 @@ static const struct cdns_reg_pairs usb_100_no_ssc_rx_ln_regs[] = {
4140
4217
{0x0C02 , RX_REE_ATTEN_THR },
4141
4218
{0x0330 , RX_REE_SMGM_CTRL1 },
4142
4219
{0x0300 , RX_REE_SMGM_CTRL2 },
4220
+ {0x0000 , RX_REE_PEAK_UTHR },
4221
+ {0x01F5 , RX_REE_PEAK_LTHR },
4143
4222
{0x0019 , RX_REE_TAP1_CLIP },
4144
4223
{0x0019 , RX_REE_TAP2TON_CLIP },
4145
4224
{0x1004 , RX_DIAG_SIGDET_TUNE },
@@ -4775,6 +4854,8 @@ static const struct cdns_torrent_vals_entry link_cmn_vals_entries[] = {
4775
4854
{CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_DP ), & pcie_dp_link_cmn_vals },
4776
4855
{CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_USXGMII ), & pcie_usxgmii_link_cmn_vals },
4777
4856
4857
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE_ML , TYPE_USB ), & ml_pcie_usb_link_cmn_vals },
4858
+
4778
4859
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_NONE ), & sl_sgmii_link_cmn_vals },
4779
4860
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_PCIE ), & pcie_sgmii_link_cmn_vals },
4780
4861
{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[] = {
4789
4870
4790
4871
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & sl_usb_link_cmn_vals },
4791
4872
{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 },
4792
4874
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_SGMII ), & usb_sgmii_link_cmn_vals },
4793
4875
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_QSGMII ), & usb_sgmii_link_cmn_vals },
4794
4876
{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[] = {
4812
4894
{CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_DP ), & pcie_dp_xcvr_diag_ln_vals },
4813
4895
{CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE , TYPE_USXGMII ), & pcie_usxgmii_xcvr_diag_ln_vals },
4814
4896
4897
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_PCIE_ML , TYPE_USB ), & ml_pcie_usb_xcvr_diag_ln_vals },
4898
+
4815
4899
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_NONE ), & sl_sgmii_xcvr_diag_ln_vals },
4816
4900
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_PCIE ), & sgmii_pcie_xcvr_diag_ln_vals },
4817
4901
{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[] = {
4826
4910
4827
4911
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & sl_usb_xcvr_diag_ln_vals },
4828
4912
{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 },
4829
4914
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_SGMII ), & usb_sgmii_xcvr_diag_ln_vals },
4830
4915
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_QSGMII ), & usb_sgmii_xcvr_diag_ln_vals },
4831
4916
{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[] = {
4839
4924
static const struct cdns_torrent_vals_entry pcs_cmn_vals_entries [] = {
4840
4925
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & usb_phy_pcs_cmn_vals },
4841
4926
{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 },
4842
4928
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_SGMII ), & usb_phy_pcs_cmn_vals },
4843
4929
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_QSGMII ), & usb_phy_pcs_cmn_vals },
4844
4930
{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[] = {
4874
4960
4875
4961
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
4876
4962
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
+
4877
4967
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sl_sgmii_100_no_ssc_cmn_vals },
4878
4968
4879
4969
{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[] = {
4906
4996
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
4907
4997
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_int_ssc_cmn_vals },
4908
4998
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
+
4909
5003
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & sl_usb_100_no_ssc_cmn_vals },
4910
5004
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & sl_usb_100_no_ssc_cmn_vals },
4911
5005
{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[] = {
4960
5054
4961
5055
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
4962
5056
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
+
4963
5061
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sgmii_100_no_ssc_tx_ln_vals },
4964
5062
4965
5063
{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[] = {
4992
5090
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
4993
5091
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
4994
5092
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
+
4995
5097
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
4996
5098
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
4997
5099
{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[] = {
5046
5148
5047
5149
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), & pcie_100_no_ssc_rx_ln_vals },
5048
5150
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
+
5049
5155
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
5050
5156
5051
5157
{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[] = {
5078
5184
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5079
5185
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5080
5186
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
+
5081
5191
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_rx_ln_vals },
5082
5192
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5083
5193
{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[] = {
5168
5278
5169
5279
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
5170
5280
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
+
5171
5285
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
5172
5286
5173
5287
{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[] = {
5200
5314
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5201
5315
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5202
5316
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
+
5203
5321
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
5204
5322
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5205
5323
{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[] = {
5288
5406
5289
5407
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
5290
5408
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
+
5291
5413
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sl_sgmii_100_no_ssc_cmn_vals },
5292
5414
5293
5415
{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[] = {
5320
5442
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_cmn_vals },
5321
5443
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_int_ssc_cmn_vals },
5322
5444
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
+
5323
5449
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & sl_usb_100_no_ssc_cmn_vals },
5324
5450
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & sl_usb_100_no_ssc_cmn_vals },
5325
5451
{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[] = {
5374
5500
5375
5501
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), NULL },
5376
5502
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
+
5377
5507
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
5378
5508
5379
5509
{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[] = {
5406
5536
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5407
5537
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5408
5538
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
+
5409
5543
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_tx_ln_vals },
5410
5544
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_tx_ln_vals },
5411
5545
{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[] = {
5460
5594
5461
5595
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_PCIE , TYPE_DP , NO_SSC ), & pcie_100_no_ssc_rx_ln_vals },
5462
5596
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
+
5463
5601
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_SGMII , TYPE_NONE , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
5464
5602
5465
5603
{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[] = {
5492
5630
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5493
5631
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_PCIE , INTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5494
5632
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
+
5495
5637
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , NO_SSC ), & usb_100_no_ssc_rx_ln_vals },
5496
5638
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_100_MHZ , TYPE_USB , TYPE_SGMII , EXTERNAL_SSC ), & usb_100_no_ssc_rx_ln_vals },
5497
5639
{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