@@ -3106,6 +3106,73 @@ static struct cdns_torrent_vals dp_usb_xcvr_diag_ln_vals = {
3106
3106
.num_regs = ARRAY_SIZE (dp_usb_xcvr_diag_ln_regs ),
3107
3107
};
3108
3108
3109
+ /* USXGMII and SGMII/QSGMII link configuration */
3110
+ static struct cdns_reg_pairs usxgmii_sgmii_link_cmn_regs [] = {
3111
+ {0x0002 , PHY_PLL_CFG },
3112
+ {0x0400 , CMN_PDIAG_PLL0_CLK_SEL_M0 },
3113
+ {0x0601 , CMN_PDIAG_PLL1_CLK_SEL_M0 }
3114
+ };
3115
+
3116
+ static struct cdns_reg_pairs usxgmii_sgmii_xcvr_diag_ln_regs [] = {
3117
+ {0x0000 , XCVR_DIAG_HSCLK_SEL },
3118
+ {0x0001 , XCVR_DIAG_HSCLK_DIV },
3119
+ {0x0001 , XCVR_DIAG_PLLDRC_CTRL }
3120
+ };
3121
+
3122
+ static struct cdns_reg_pairs sgmii_usxgmii_xcvr_diag_ln_regs [] = {
3123
+ {0x0111 , XCVR_DIAG_HSCLK_SEL },
3124
+ {0x0103 , XCVR_DIAG_HSCLK_DIV },
3125
+ {0x0A9B , XCVR_DIAG_PLLDRC_CTRL }
3126
+ };
3127
+
3128
+ static struct cdns_torrent_vals usxgmii_sgmii_link_cmn_vals = {
3129
+ .reg_pairs = usxgmii_sgmii_link_cmn_regs ,
3130
+ .num_regs = ARRAY_SIZE (usxgmii_sgmii_link_cmn_regs ),
3131
+ };
3132
+
3133
+ static struct cdns_torrent_vals usxgmii_sgmii_xcvr_diag_ln_vals = {
3134
+ .reg_pairs = usxgmii_sgmii_xcvr_diag_ln_regs ,
3135
+ .num_regs = ARRAY_SIZE (usxgmii_sgmii_xcvr_diag_ln_regs ),
3136
+ };
3137
+
3138
+ static struct cdns_torrent_vals sgmii_usxgmii_xcvr_diag_ln_vals = {
3139
+ .reg_pairs = sgmii_usxgmii_xcvr_diag_ln_regs ,
3140
+ .num_regs = ARRAY_SIZE (sgmii_usxgmii_xcvr_diag_ln_regs ),
3141
+ };
3142
+
3143
+ /* Multilink USXGMII, using PLL0, 156.25 MHz Ref clk, no SSC */
3144
+ static struct cdns_reg_pairs ml_usxgmii_pll0_156_25_no_ssc_cmn_regs [] = {
3145
+ {0x0014 , CMN_PLL0_DSM_FBH_OVRD_M0 },
3146
+ {0x0005 , CMN_PLL0_DSM_FBL_OVRD_M0 },
3147
+ {0x061B , CMN_PLL0_VCOCAL_INIT_TMR },
3148
+ {0x0019 , CMN_PLL0_VCOCAL_ITER_TMR },
3149
+ {0x1354 , CMN_PLL0_VCOCAL_REFTIM_START },
3150
+ {0x1354 , CMN_PLL0_VCOCAL_PLLCNT_START },
3151
+ {0x0003 , CMN_PLL0_VCOCAL_TCTRL },
3152
+ {0x0138 , CMN_PLL0_LOCK_REFCNT_START },
3153
+ {0x0138 , CMN_PLL0_LOCK_PLLCNT_START }
3154
+ };
3155
+
3156
+ static struct cdns_torrent_vals ml_usxgmii_pll0_156_25_no_ssc_cmn_vals = {
3157
+ .reg_pairs = ml_usxgmii_pll0_156_25_no_ssc_cmn_regs ,
3158
+ .num_regs = ARRAY_SIZE (ml_usxgmii_pll0_156_25_no_ssc_cmn_regs ),
3159
+ };
3160
+
3161
+ /* Multilink SGMII/QSGMII, using PLL1, 100 MHz Ref clk, no SSC */
3162
+ static struct cdns_reg_pairs ml_sgmii_pll1_100_no_ssc_cmn_regs [] = {
3163
+ {0x0028 , CMN_PDIAG_PLL1_CP_PADJ_M0 },
3164
+ {0x001E , CMN_PLL1_DSM_FBH_OVRD_M0 },
3165
+ {0x000C , CMN_PLL1_DSM_FBL_OVRD_M0 },
3166
+ {0x0003 , CMN_PLL1_VCOCAL_TCTRL },
3167
+ {0x007F , CMN_TXPUCAL_TUNE },
3168
+ {0x007F , CMN_TXPDCAL_TUNE }
3169
+ };
3170
+
3171
+ static struct cdns_torrent_vals ml_sgmii_pll1_100_no_ssc_cmn_vals = {
3172
+ .reg_pairs = ml_sgmii_pll1_100_no_ssc_cmn_regs ,
3173
+ .num_regs = ARRAY_SIZE (ml_sgmii_pll1_100_no_ssc_cmn_regs ),
3174
+ };
3175
+
3109
3176
/* PCIe and USXGMII link configuration */
3110
3177
static struct cdns_reg_pairs pcie_usxgmii_link_cmn_regs [] = {
3111
3178
{0x0003 , PHY_PLL_CFG },
@@ -4337,10 +4404,12 @@ static struct cdns_torrent_vals_entry link_cmn_vals_entries[] = {
4337
4404
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_NONE ), & sl_sgmii_link_cmn_vals },
4338
4405
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_PCIE ), & pcie_sgmii_link_cmn_vals },
4339
4406
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_USB ), & usb_sgmii_link_cmn_vals },
4407
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_USXGMII ), & usxgmii_sgmii_link_cmn_vals },
4340
4408
4341
4409
{CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_NONE ), & sl_sgmii_link_cmn_vals },
4342
4410
{CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_PCIE ), & pcie_sgmii_link_cmn_vals },
4343
4411
{CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_USB ), & usb_sgmii_link_cmn_vals },
4412
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_USXGMII ), & usxgmii_sgmii_link_cmn_vals },
4344
4413
4345
4414
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & sl_usb_link_cmn_vals },
4346
4415
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE ), & pcie_usb_link_cmn_vals },
@@ -4350,6 +4419,8 @@ static struct cdns_torrent_vals_entry link_cmn_vals_entries[] = {
4350
4419
4351
4420
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_NONE ), & sl_usxgmii_link_cmn_vals },
4352
4421
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_PCIE ), & pcie_usxgmii_link_cmn_vals },
4422
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_SGMII ), & usxgmii_sgmii_link_cmn_vals },
4423
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_QSGMII ), & usxgmii_sgmii_link_cmn_vals },
4353
4424
};
4354
4425
4355
4426
static struct cdns_torrent_vals_entry xcvr_diag_vals_entries [] = {
@@ -4367,10 +4438,12 @@ static struct cdns_torrent_vals_entry xcvr_diag_vals_entries[] = {
4367
4438
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_NONE ), & sl_sgmii_xcvr_diag_ln_vals },
4368
4439
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_PCIE ), & sgmii_pcie_xcvr_diag_ln_vals },
4369
4440
{CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_USB ), & sgmii_usb_xcvr_diag_ln_vals },
4441
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_SGMII , TYPE_USXGMII ), & sgmii_usxgmii_xcvr_diag_ln_vals },
4370
4442
4371
4443
{CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_NONE ), & sl_sgmii_xcvr_diag_ln_vals },
4372
4444
{CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_PCIE ), & sgmii_pcie_xcvr_diag_ln_vals },
4373
4445
{CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_USB ), & sgmii_usb_xcvr_diag_ln_vals },
4446
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_QSGMII , TYPE_USXGMII ), & sgmii_usxgmii_xcvr_diag_ln_vals },
4374
4447
4375
4448
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_NONE ), & sl_usb_xcvr_diag_ln_vals },
4376
4449
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USB , TYPE_PCIE ), & usb_pcie_xcvr_diag_ln_vals },
@@ -4380,6 +4453,8 @@ static struct cdns_torrent_vals_entry xcvr_diag_vals_entries[] = {
4380
4453
4381
4454
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_NONE ), & sl_usxgmii_xcvr_diag_ln_vals },
4382
4455
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_PCIE ), & usxgmii_pcie_xcvr_diag_ln_vals },
4456
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_SGMII ), & usxgmii_sgmii_xcvr_diag_ln_vals },
4457
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_QSGMII ), & usxgmii_sgmii_xcvr_diag_ln_vals },
4383
4458
};
4384
4459
4385
4460
static struct cdns_torrent_vals_entry pcs_cmn_vals_entries [] = {
@@ -4459,7 +4534,13 @@ static struct cdns_torrent_vals_entry cmn_vals_entries[] = {
4459
4534
/* Dual refclk */
4460
4535
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_PCIE , TYPE_USXGMII , NO_SSC ), NULL },
4461
4536
4537
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_SGMII , TYPE_USXGMII , NO_SSC ), & ml_sgmii_pll1_100_no_ssc_cmn_vals },
4538
+
4539
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_QSGMII , TYPE_USXGMII , NO_SSC ), & ml_sgmii_pll1_100_no_ssc_cmn_vals },
4540
+
4462
4541
{CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_PCIE , NO_SSC ), & ml_usxgmii_pll1_156_25_no_ssc_cmn_vals },
4542
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_SGMII , NO_SSC ), & ml_usxgmii_pll0_156_25_no_ssc_cmn_vals },
4543
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_QSGMII , NO_SSC ), & ml_usxgmii_pll0_156_25_no_ssc_cmn_vals },
4463
4544
};
4464
4545
4465
4546
static struct cdns_torrent_vals_entry cdns_tx_ln_vals_entries [] = {
@@ -4531,7 +4612,13 @@ static struct cdns_torrent_vals_entry cdns_tx_ln_vals_entries[] = {
4531
4612
/* Dual refclk */
4532
4613
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_PCIE , TYPE_USXGMII , NO_SSC ), NULL },
4533
4614
4615
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_SGMII , TYPE_USXGMII , NO_SSC ), & sgmii_100_no_ssc_tx_ln_vals },
4616
+
4617
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_QSGMII , TYPE_USXGMII , NO_SSC ), & qsgmii_100_no_ssc_tx_ln_vals },
4618
+
4534
4619
{CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_PCIE , NO_SSC ), & ml_usxgmii_156_25_no_ssc_tx_ln_vals },
4620
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_SGMII , NO_SSC ), & ml_usxgmii_156_25_no_ssc_tx_ln_vals },
4621
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_QSGMII , NO_SSC ), & ml_usxgmii_156_25_no_ssc_tx_ln_vals },
4535
4622
};
4536
4623
4537
4624
static struct cdns_torrent_vals_entry cdns_rx_ln_vals_entries [] = {
@@ -4603,7 +4690,13 @@ static struct cdns_torrent_vals_entry cdns_rx_ln_vals_entries[] = {
4603
4690
/* Dual refclk */
4604
4691
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_PCIE , TYPE_USXGMII , NO_SSC ), & pcie_100_no_ssc_rx_ln_vals },
4605
4692
4693
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_SGMII , TYPE_USXGMII , NO_SSC ), & sgmii_100_no_ssc_rx_ln_vals },
4694
+
4695
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_QSGMII , TYPE_USXGMII , NO_SSC ), & qsgmii_100_no_ssc_rx_ln_vals },
4696
+
4606
4697
{CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_PCIE , NO_SSC ), & ml_usxgmii_156_25_no_ssc_rx_ln_vals },
4698
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_SGMII , NO_SSC ), & ml_usxgmii_156_25_no_ssc_rx_ln_vals },
4699
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_QSGMII , NO_SSC ), & ml_usxgmii_156_25_no_ssc_rx_ln_vals },
4607
4700
};
4608
4701
4609
4702
static const struct cdns_torrent_data cdns_map_torrent = {
@@ -4638,6 +4731,8 @@ static const struct cdns_torrent_data cdns_map_torrent = {
4638
4731
static struct cdns_torrent_vals_entry j721e_phy_pma_cmn_vals_entries [] = {
4639
4732
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_NONE ), & ti_usxgmii_phy_pma_cmn_vals },
4640
4733
{CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_PCIE ), & ti_usxgmii_phy_pma_cmn_vals },
4734
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_SGMII ), & ti_usxgmii_phy_pma_cmn_vals },
4735
+ {CDNS_TORRENT_KEY_ANYCLK (TYPE_USXGMII , TYPE_QSGMII ), & ti_usxgmii_phy_pma_cmn_vals },
4641
4736
};
4642
4737
4643
4738
static struct cdns_torrent_vals_entry ti_tx_ln_vals_entries [] = {
@@ -4709,7 +4804,13 @@ static struct cdns_torrent_vals_entry ti_tx_ln_vals_entries[] = {
4709
4804
/* Dual refclk */
4710
4805
{CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_PCIE , TYPE_USXGMII , NO_SSC ), NULL },
4711
4806
4807
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_SGMII , TYPE_USXGMII , NO_SSC ), & ti_sgmii_100_no_ssc_tx_ln_vals },
4808
+
4809
+ {CDNS_TORRENT_KEY (CLK_100_MHZ , CLK_156_25_MHZ , TYPE_QSGMII , TYPE_USXGMII , NO_SSC ), & ti_qsgmii_100_no_ssc_tx_ln_vals },
4810
+
4712
4811
{CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_PCIE , NO_SSC ), & ml_usxgmii_156_25_no_ssc_tx_ln_vals },
4812
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_SGMII , NO_SSC ), & ml_usxgmii_156_25_no_ssc_tx_ln_vals },
4813
+ {CDNS_TORRENT_KEY (CLK_156_25_MHZ , CLK_100_MHZ , TYPE_USXGMII , TYPE_QSGMII , NO_SSC ), & ml_usxgmii_156_25_no_ssc_tx_ln_vals },
4713
4814
};
4714
4815
4715
4816
static const struct cdns_torrent_data ti_j721e_map_torrent = {
0 commit comments