phy: cadence-torrent: Add PCIe + DP multilink configuration for 100MHz refclk
authorSwapnil Jakhade <sjakhade@cadence.com>
Tue, 18 Apr 2023 17:31:56 +0000 (19:31 +0200)
committerVinod Koul <vkoul@kernel.org>
Mon, 8 May 2023 11:37:01 +0000 (17:07 +0530)
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>
drivers/phy/cadence/phy-cadence-torrent.c

index cef63d4..2fc5dd4 100644 (file)
@@ -904,74 +904,90 @@ void cdns_torrent_dp_pma_cmn_vco_cfg_100mhz(struct cdns_torrent_phy *cdns_phy,
        /* Setting VCO for 10.8GHz */
        case 2700:
        case 5400:
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0028);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_FBH_OVRD_M0, 0x0022);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBH_OVRD_M0, 0x0022);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBL_OVRD_M0, 0x000C);
+               if (cdns_phy->dp_pll & DP_PLL0)
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_FBH_OVRD_M0, 0x0022);
+
+               if (cdns_phy->dp_pll & DP_PLL1) {
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0028);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBH_OVRD_M0, 0x0022);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_FBL_OVRD_M0, 0x000C);
+               }
                break;
        /* Setting VCO for 9.72GHz */
        case 1620:
        case 2430:
        case 3240:
-               cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0061);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0061);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x3333);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x3333);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0042);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0042);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002);
+               if (cdns_phy->dp_pll & DP_PLL0) {
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0061);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x3333);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0042);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002);
+               }
+               if (cdns_phy->dp_pll & DP_PLL1) {
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0061);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x3333);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0042);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002);
+               }
                break;
        /* Setting VCO for 8.64GHz */
        case 2160:
        case 4320:
-               cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0056);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0056);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x6666);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x6666);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x003A);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x003A);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002);
+               if (cdns_phy->dp_pll & DP_PLL0) {
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0056);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVL_M0, 0x6666);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x003A);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002);
+               }
+               if (cdns_phy->dp_pll & DP_PLL1) {
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0056);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVL_M0, 0x6666);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x003A);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002);
+               }
                break;
        /* Setting VCO for 8.1GHz */
        case 8100:
-               cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0051);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0051);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0036);
-               cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0036);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002);
-               cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002);
+               if (cdns_phy->dp_pll & DP_PLL0) {
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_DSM_DIAG_M0, 0x0004);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_PADJ_M0, 0x0509);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CP_IADJ_M0, 0x0F00);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_FILT_PADJ_M0, 0x0F08);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_INTDIV_M0, 0x0051);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_FRACDIVH_M0, 0x0002);
+                       cdns_torrent_phy_write(regmap, CMN_PLL0_HIGH_THR_M0, 0x0036);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL0_CTRL_M0, 0x0002);
+               }
+               if (cdns_phy->dp_pll & DP_PLL1) {
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_DSM_DIAG_M0, 0x0004);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_PADJ_M0, 0x0509);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CP_IADJ_M0, 0x0F00);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_FILT_PADJ_M0, 0x0F08);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_INTDIV_M0, 0x0051);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_FRACDIVH_M0, 0x0002);
+                       cdns_torrent_phy_write(regmap, CMN_PLL1_HIGH_THR_M0, 0x0036);
+                       cdns_torrent_phy_write(regmap, CMN_PDIAG_PLL1_CTRL_M0, 0x0002);
+               }
                break;
        }
 }
@@ -1708,6 +1724,20 @@ static int cdns_torrent_dp_init(struct phy *phy)
        return cdns_torrent_dp_start(cdns_phy, inst, phy);
 }
 
+static int cdns_torrent_dp_multilink_init(struct cdns_torrent_phy *cdns_phy,
+                                         struct cdns_torrent_inst *inst,
+                                         struct phy *phy)
+{
+       if (cdns_phy->ref_clk_rate != CLK_100_MHZ) {
+               dev_err(cdns_phy->dev, "Unsupported Ref Clock Rate\n");
+               return -EINVAL;
+       }
+
+       cdns_torrent_dp_common_init(cdns_phy, inst);
+
+       return cdns_torrent_dp_start(cdns_phy, inst, phy);
+}
+
 static int cdns_torrent_derived_refclk_enable(struct clk_hw *hw)
 {
        struct cdns_torrent_derived_refclk *derived_refclk = to_cdns_torrent_derived_refclk(hw);
@@ -2219,8 +2249,11 @@ static int cdns_torrent_phy_init(struct phy *phy)
        u32 num_regs;
        int i, j;
 
-       if (cdns_phy->nsubnodes > 1)
+       if (cdns_phy->nsubnodes > 1) {
+               if (phy_type == TYPE_DP)
+                       return cdns_torrent_dp_multilink_init(cdns_phy, inst, phy);
                return 0;
+       }
 
        /**
         * Spread spectrum generation is not required or supported
@@ -2462,6 +2495,12 @@ int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
                        }
                }
 
+               if (phy_t1 == TYPE_DP) {
+                       ret = cdns_torrent_dp_get_pll(cdns_phy, phy_t2);
+                       if (ret)
+                               return ret;
+               }
+
                reset_control_deassert(cdns_phy->phys[node].lnk_rst);
        }
 
@@ -2857,6 +2896,77 @@ static void cdns_torrent_phy_remove(struct platform_device *pdev)
        cdns_torrent_clk_cleanup(cdns_phy);
 }
 
+/* PCIe and DP link configuration */
+static struct cdns_reg_pairs pcie_dp_link_cmn_regs[] = {
+       {0x0003, PHY_PLL_CFG},
+       {0x0601, CMN_PDIAG_PLL0_CLK_SEL_M0},
+       {0x0400, CMN_PDIAG_PLL0_CLK_SEL_M1}
+};
+
+static struct cdns_reg_pairs pcie_dp_xcvr_diag_ln_regs[] = {
+       {0x0000, XCVR_DIAG_HSCLK_SEL},
+       {0x0001, XCVR_DIAG_HSCLK_DIV},
+       {0x0012, XCVR_DIAG_PLLDRC_CTRL}
+};
+
+static struct cdns_reg_pairs dp_pcie_xcvr_diag_ln_regs[] = {
+       {0x0001, XCVR_DIAG_HSCLK_SEL},
+       {0x0009, XCVR_DIAG_PLLDRC_CTRL}
+};
+
+static struct cdns_torrent_vals pcie_dp_link_cmn_vals = {
+       .reg_pairs = pcie_dp_link_cmn_regs,
+       .num_regs = ARRAY_SIZE(pcie_dp_link_cmn_regs),
+};
+
+static struct cdns_torrent_vals pcie_dp_xcvr_diag_ln_vals = {
+       .reg_pairs = pcie_dp_xcvr_diag_ln_regs,
+       .num_regs = ARRAY_SIZE(pcie_dp_xcvr_diag_ln_regs),
+};
+
+static struct cdns_torrent_vals dp_pcie_xcvr_diag_ln_vals = {
+       .reg_pairs = dp_pcie_xcvr_diag_ln_regs,
+       .num_regs = ARRAY_SIZE(dp_pcie_xcvr_diag_ln_regs),
+};
+
+/* DP Multilink, 100 MHz Ref clk, no SSC */
+static struct cdns_reg_pairs dp_100_no_ssc_cmn_regs[] = {
+       {0x007F, CMN_TXPUCAL_TUNE},
+       {0x007F, CMN_TXPDCAL_TUNE}
+};
+
+static struct cdns_reg_pairs dp_100_no_ssc_tx_ln_regs[] = {
+       {0x00FB, TX_PSC_A0},
+       {0x04AA, TX_PSC_A2},
+       {0x04AA, TX_PSC_A3},
+       {0x000F, XCVR_DIAG_BIDI_CTRL}
+};
+
+static struct cdns_reg_pairs dp_100_no_ssc_rx_ln_regs[] = {
+       {0x0000, RX_PSC_A0},
+       {0x0000, RX_PSC_A2},
+       {0x0000, RX_PSC_A3},
+       {0x0000, RX_PSC_CAL},
+       {0x0000, RX_REE_GCSM1_CTRL},
+       {0x0000, RX_REE_GCSM2_CTRL},
+       {0x0000, RX_REE_PERGCSM_CTRL}
+};
+
+static struct cdns_torrent_vals dp_100_no_ssc_cmn_vals = {
+       .reg_pairs = dp_100_no_ssc_cmn_regs,
+       .num_regs = ARRAY_SIZE(dp_100_no_ssc_cmn_regs),
+};
+
+static struct cdns_torrent_vals dp_100_no_ssc_tx_ln_vals = {
+       .reg_pairs = dp_100_no_ssc_tx_ln_regs,
+       .num_regs = ARRAY_SIZE(dp_100_no_ssc_tx_ln_regs),
+};
+
+static struct cdns_torrent_vals dp_100_no_ssc_rx_ln_vals = {
+       .reg_pairs = dp_100_no_ssc_rx_ln_regs,
+       .num_regs = ARRAY_SIZE(dp_100_no_ssc_rx_ln_regs),
+};
+
 /* Single DisplayPort(DP) link configuration */
 static struct cdns_reg_pairs sl_dp_link_cmn_regs[] = {
        {0x0000, PHY_PLL_CFG},
@@ -3799,6 +3909,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                        [TYPE_NONE] = {
                                [NO_SSC] = &sl_dp_link_cmn_vals,
                        },
+                       [TYPE_PCIE] = {
+                               [NO_SSC] = &pcie_dp_link_cmn_vals,
+                       },
                },
                [TYPE_PCIE] = {
                        [TYPE_NONE] = {
@@ -3821,6 +3934,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals,
                                [INTERNAL_SSC] = &pcie_usb_link_cmn_vals,
                        },
+                       [TYPE_DP] = {
+                               [NO_SSC] = &pcie_dp_link_cmn_vals,
+                       },
                },
                [TYPE_SGMII] = {
                        [TYPE_NONE] = {
@@ -3880,6 +3996,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                        [TYPE_NONE] = {
                                [NO_SSC] = &sl_dp_xcvr_diag_ln_vals,
                        },
+                       [TYPE_PCIE] = {
+                               [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals,
+                       },
                },
                [TYPE_PCIE] = {
                        [TYPE_NONE] = {
@@ -3902,6 +4021,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                [EXTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
                                [INTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
                        },
+                       [TYPE_DP] = {
+                               [NO_SSC] = &pcie_dp_xcvr_diag_ln_vals,
+                       },
                },
                [TYPE_SGMII] = {
                        [TYPE_NONE] = {
@@ -4000,6 +4122,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                [TYPE_NONE] = {
                                        [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
                                },
+                               [TYPE_PCIE] = {
+                                       [NO_SSC] = &dp_100_no_ssc_cmn_vals,
+                               },
                        },
                        [TYPE_PCIE] = {
                                [TYPE_NONE] = {
@@ -4022,6 +4147,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                        [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
                                        [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
                                },
+                               [TYPE_DP] = {
+                                       [NO_SSC] = NULL,
+                               },
                        },
                        [TYPE_SGMII] = {
                                [TYPE_NONE] = {
@@ -4097,6 +4225,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                [TYPE_NONE] = {
                                        [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals,
                                },
+                               [TYPE_PCIE] = {
+                                       [NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
+                               },
                        },
                        [TYPE_PCIE] = {
                                [TYPE_NONE] = {
@@ -4119,6 +4250,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                        [EXTERNAL_SSC] = NULL,
                                        [INTERNAL_SSC] = NULL,
                                },
+                               [TYPE_DP] = {
+                                       [NO_SSC] = NULL,
+                               },
                        },
                        [TYPE_SGMII] = {
                                [TYPE_NONE] = {
@@ -4194,6 +4328,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                [TYPE_NONE] = {
                                        [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals,
                                },
+                               [TYPE_PCIE] = {
+                                       [NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
+                               },
                        },
                        [TYPE_PCIE] = {
                                [TYPE_NONE] = {
@@ -4216,6 +4353,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
                                        [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
                                        [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
                                },
+                               [TYPE_DP] = {
+                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
+                               },
                        },
                        [TYPE_SGMII] = {
                                [TYPE_NONE] = {
@@ -4281,6 +4421,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                        [TYPE_NONE] = {
                                [NO_SSC] = &sl_dp_link_cmn_vals,
                        },
+                       [TYPE_PCIE] = {
+                               [NO_SSC] = &pcie_dp_link_cmn_vals,
+                       },
                },
                [TYPE_PCIE] = {
                        [TYPE_NONE] = {
@@ -4303,6 +4446,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                [EXTERNAL_SSC] = &pcie_usb_link_cmn_vals,
                                [INTERNAL_SSC] = &pcie_usb_link_cmn_vals,
                        },
+                       [TYPE_DP] = {
+                               [NO_SSC] = &pcie_dp_link_cmn_vals,
+                       },
                },
                [TYPE_SGMII] = {
                        [TYPE_NONE] = {
@@ -4362,6 +4508,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                        [TYPE_NONE] = {
                                [NO_SSC] = &sl_dp_xcvr_diag_ln_vals,
                        },
+                       [TYPE_PCIE] = {
+                               [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals,
+                       },
                },
                [TYPE_PCIE] = {
                        [TYPE_NONE] = {
@@ -4384,6 +4533,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                [EXTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
                                [INTERNAL_SSC] = &pcie_usb_xcvr_diag_ln_vals,
                        },
+                       [TYPE_DP] = {
+                               [NO_SSC] = &pcie_dp_xcvr_diag_ln_vals,
+                       },
                },
                [TYPE_SGMII] = {
                        [TYPE_NONE] = {
@@ -4482,6 +4634,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                [TYPE_NONE] = {
                                        [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
                                },
+                               [TYPE_PCIE] = {
+                                       [NO_SSC] = &dp_100_no_ssc_cmn_vals,
+                               },
                        },
                        [TYPE_PCIE] = {
                                [TYPE_NONE] = {
@@ -4504,6 +4659,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                        [EXTERNAL_SSC] = &pcie_100_no_ssc_cmn_vals,
                                        [INTERNAL_SSC] = &pcie_100_int_ssc_cmn_vals,
                                },
+                               [TYPE_DP] = {
+                                       [NO_SSC] = NULL,
+                               },
                        },
                        [TYPE_SGMII] = {
                                [TYPE_NONE] = {
@@ -4579,6 +4737,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                [TYPE_NONE] = {
                                        [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals,
                                },
+                               [TYPE_PCIE] = {
+                                       [NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
+                               },
                        },
                        [TYPE_PCIE] = {
                                [TYPE_NONE] = {
@@ -4601,6 +4762,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                        [EXTERNAL_SSC] = NULL,
                                        [INTERNAL_SSC] = NULL,
                                },
+                               [TYPE_DP] = {
+                                       [NO_SSC] = NULL,
+                               },
                        },
                        [TYPE_SGMII] = {
                                [TYPE_NONE] = {
@@ -4676,6 +4840,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                [TYPE_NONE] = {
                                        [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals,
                                },
+                               [TYPE_PCIE] = {
+                                       [NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
+                               },
                        },
                        [TYPE_PCIE] = {
                                [TYPE_NONE] = {
@@ -4698,6 +4865,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
                                        [EXTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
                                        [INTERNAL_SSC] = &pcie_100_no_ssc_rx_ln_vals,
                                },
+                               [TYPE_DP] = {
+                                       [NO_SSC] = &pcie_100_no_ssc_rx_ln_vals,
+                               },
                        },
                        [TYPE_SGMII] = {
                                [TYPE_NONE] = {