mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 15:43:35 -04:00
phy: cadence-torrent: Add USB + DP multilink configuration
Add USB + DP no SSC multilink configuration sequences. Signed-off-by: Swapnil Jakhade <sjakhade@cadence.com> Link: https://lore.kernel.org/r/20230418173157.25607-5-sjakhade@cadence.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
committed by
Vinod Koul
parent
ede775a87b
commit
72a5ce33b8
@@ -2896,6 +2896,38 @@ static void cdns_torrent_phy_remove(struct platform_device *pdev)
|
||||
cdns_torrent_clk_cleanup(cdns_phy);
|
||||
}
|
||||
|
||||
/* USB and DP link configuration */
|
||||
static struct cdns_reg_pairs usb_dp_link_cmn_regs[] = {
|
||||
{0x0002, PHY_PLL_CFG},
|
||||
{0x8600, CMN_PDIAG_PLL0_CLK_SEL_M0}
|
||||
};
|
||||
|
||||
static struct cdns_reg_pairs usb_dp_xcvr_diag_ln_regs[] = {
|
||||
{0x0000, XCVR_DIAG_HSCLK_SEL},
|
||||
{0x0001, XCVR_DIAG_HSCLK_DIV},
|
||||
{0x0041, XCVR_DIAG_PLLDRC_CTRL}
|
||||
};
|
||||
|
||||
static struct cdns_reg_pairs dp_usb_xcvr_diag_ln_regs[] = {
|
||||
{0x0001, XCVR_DIAG_HSCLK_SEL},
|
||||
{0x0009, XCVR_DIAG_PLLDRC_CTRL}
|
||||
};
|
||||
|
||||
static struct cdns_torrent_vals usb_dp_link_cmn_vals = {
|
||||
.reg_pairs = usb_dp_link_cmn_regs,
|
||||
.num_regs = ARRAY_SIZE(usb_dp_link_cmn_regs),
|
||||
};
|
||||
|
||||
static struct cdns_torrent_vals usb_dp_xcvr_diag_ln_vals = {
|
||||
.reg_pairs = usb_dp_xcvr_diag_ln_regs,
|
||||
.num_regs = ARRAY_SIZE(usb_dp_xcvr_diag_ln_regs),
|
||||
};
|
||||
|
||||
static struct cdns_torrent_vals dp_usb_xcvr_diag_ln_vals = {
|
||||
.reg_pairs = dp_usb_xcvr_diag_ln_regs,
|
||||
.num_regs = ARRAY_SIZE(dp_usb_xcvr_diag_ln_regs),
|
||||
};
|
||||
|
||||
/* PCIe and DP link configuration */
|
||||
static struct cdns_reg_pairs pcie_dp_link_cmn_regs[] = {
|
||||
{0x0003, PHY_PLL_CFG},
|
||||
@@ -3912,6 +3944,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &pcie_dp_link_cmn_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &usb_dp_link_cmn_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -3989,6 +4024,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
|
||||
[INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_dp_link_cmn_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
.xcvr_diag_vals = {
|
||||
@@ -3999,6 +4037,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_pcie_xcvr_diag_ln_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &dp_usb_xcvr_diag_ln_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4076,6 +4117,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
|
||||
[INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_dp_xcvr_diag_ln_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
.pcs_cmn_vals = {
|
||||
@@ -4100,6 +4144,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
|
||||
[INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_phy_pcs_cmn_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
.cmn_vals = {
|
||||
@@ -4125,6 +4172,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_cmn_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4202,6 +4252,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
|
||||
[INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_100_no_ssc_cmn_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -4228,6 +4281,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4305,6 +4361,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
|
||||
[INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -4331,6 +4390,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4408,6 +4470,9 @@ static const struct cdns_torrent_data cdns_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
|
||||
[INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -4424,6 +4489,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &pcie_dp_link_cmn_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &usb_dp_link_cmn_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4501,6 +4569,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
|
||||
[INTERNAL_SSC] = &usb_sgmii_link_cmn_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_dp_link_cmn_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
.xcvr_diag_vals = {
|
||||
@@ -4511,6 +4582,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_pcie_xcvr_diag_ln_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &dp_usb_xcvr_diag_ln_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4588,6 +4662,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
|
||||
[INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_dp_xcvr_diag_ln_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
.pcs_cmn_vals = {
|
||||
@@ -4612,6 +4689,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
|
||||
[INTERNAL_SSC] = &usb_phy_pcs_cmn_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_phy_pcs_cmn_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
.cmn_vals = {
|
||||
@@ -4637,6 +4717,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_cmn_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &sl_dp_100_no_ssc_cmn_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4714,6 +4797,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals,
|
||||
[INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_100_no_ssc_cmn_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -4740,6 +4826,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4817,6 +4906,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
|
||||
[INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_100_no_ssc_tx_ln_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -4843,6 +4935,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[TYPE_PCIE] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
[TYPE_USB] = {
|
||||
[NO_SSC] = &dp_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
},
|
||||
[TYPE_PCIE] = {
|
||||
[TYPE_NONE] = {
|
||||
@@ -4920,6 +5015,9 @@ static const struct cdns_torrent_data ti_j721e_map_torrent = {
|
||||
[EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
|
||||
[INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
[TYPE_DP] = {
|
||||
[NO_SSC] = &usb_100_no_ssc_rx_ln_vals,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user