mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00: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:
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user