Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Swapnil Jakhade and committed by
Vinod Koul
72a5ce33 ede775a8

+98
+98
drivers/phy/cadence/phy-cadence-torrent.c
··· 2896 2896 cdns_torrent_clk_cleanup(cdns_phy); 2897 2897 } 2898 2898 2899 + /* USB and DP link configuration */ 2900 + static struct cdns_reg_pairs usb_dp_link_cmn_regs[] = { 2901 + {0x0002, PHY_PLL_CFG}, 2902 + {0x8600, CMN_PDIAG_PLL0_CLK_SEL_M0} 2903 + }; 2904 + 2905 + static struct cdns_reg_pairs usb_dp_xcvr_diag_ln_regs[] = { 2906 + {0x0000, XCVR_DIAG_HSCLK_SEL}, 2907 + {0x0001, XCVR_DIAG_HSCLK_DIV}, 2908 + {0x0041, XCVR_DIAG_PLLDRC_CTRL} 2909 + }; 2910 + 2911 + static struct cdns_reg_pairs dp_usb_xcvr_diag_ln_regs[] = { 2912 + {0x0001, XCVR_DIAG_HSCLK_SEL}, 2913 + {0x0009, XCVR_DIAG_PLLDRC_CTRL} 2914 + }; 2915 + 2916 + static struct cdns_torrent_vals usb_dp_link_cmn_vals = { 2917 + .reg_pairs = usb_dp_link_cmn_regs, 2918 + .num_regs = ARRAY_SIZE(usb_dp_link_cmn_regs), 2919 + }; 2920 + 2921 + static struct cdns_torrent_vals usb_dp_xcvr_diag_ln_vals = { 2922 + .reg_pairs = usb_dp_xcvr_diag_ln_regs, 2923 + .num_regs = ARRAY_SIZE(usb_dp_xcvr_diag_ln_regs), 2924 + }; 2925 + 2926 + static struct cdns_torrent_vals dp_usb_xcvr_diag_ln_vals = { 2927 + .reg_pairs = dp_usb_xcvr_diag_ln_regs, 2928 + .num_regs = ARRAY_SIZE(dp_usb_xcvr_diag_ln_regs), 2929 + }; 2930 + 2899 2931 /* PCIe and DP link configuration */ 2900 2932 static struct cdns_reg_pairs pcie_dp_link_cmn_regs[] = { 2901 2933 {0x0003, PHY_PLL_CFG}, ··· 3944 3912 [TYPE_PCIE] = { 3945 3913 [NO_SSC] = &pcie_dp_link_cmn_vals, 3946 3914 }, 3915 + [TYPE_USB] = { 3916 + [NO_SSC] = &usb_dp_link_cmn_vals, 3917 + }, 3947 3918 }, 3948 3919 [TYPE_PCIE] = { 3949 3920 [TYPE_NONE] = { ··· 4024 3989 [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals, 4025 3990 [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals, 4026 3991 }, 3992 + [TYPE_DP] = { 3993 + [NO_SSC] = &usb_dp_link_cmn_vals, 3994 + }, 4027 3995 }, 4028 3996 }, 4029 3997 .xcvr_diag_vals = { ··· 4036 3998 }, 4037 3999 [TYPE_PCIE] = { 4038 4000 [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals, 4001 + }, 4002 + [TYPE_USB] = { 4003 + [NO_SSC] = &dp_usb_xcvr_diag_ln_vals, 4039 4004 }, 4040 4005 }, 4041 4006 [TYPE_PCIE] = { ··· 4117 4076 [EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals, 4118 4077 [INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals, 4119 4078 }, 4079 + [TYPE_DP] = { 4080 + [NO_SSC] = &usb_dp_xcvr_diag_ln_vals, 4081 + }, 4120 4082 }, 4121 4083 }, 4122 4084 .pcs_cmn_vals = { ··· 4143 4099 [NO_SSC] = &usb_phy_pcs_cmn_vals, 4144 4100 [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals, 4145 4101 [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals, 4102 + }, 4103 + [TYPE_DP] = { 4104 + [NO_SSC] = &usb_phy_pcs_cmn_vals, 4146 4105 }, 4147 4106 }, 4148 4107 }, ··· 4171 4124 }, 4172 4125 [TYPE_PCIE] = { 4173 4126 [NO_SSC] = &dp_100_no_ssc_cmn_vals, 4127 + }, 4128 + [TYPE_USB] = { 4129 + [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals, 4174 4130 }, 4175 4131 }, 4176 4132 [TYPE_PCIE] = { ··· 4252 4202 [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals, 4253 4203 [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals, 4254 4204 }, 4205 + [TYPE_DP] = { 4206 + [NO_SSC] = &usb_100_no_ssc_cmn_vals, 4207 + }, 4255 4208 }, 4256 4209 }, 4257 4210 }, ··· 4279 4226 [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals, 4280 4227 }, 4281 4228 [TYPE_PCIE] = { 4229 + [NO_SSC] = &dp_100_no_ssc_tx_ln_vals, 4230 + }, 4231 + [TYPE_USB] = { 4282 4232 [NO_SSC] = &dp_100_no_ssc_tx_ln_vals, 4283 4233 }, 4284 4234 }, ··· 4361 4305 [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals, 4362 4306 [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals, 4363 4307 }, 4308 + [TYPE_DP] = { 4309 + [NO_SSC] = &usb_100_no_ssc_tx_ln_vals, 4310 + }, 4364 4311 }, 4365 4312 }, 4366 4313 }, ··· 4388 4329 [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals, 4389 4330 }, 4390 4331 [TYPE_PCIE] = { 4332 + [NO_SSC] = &dp_100_no_ssc_rx_ln_vals, 4333 + }, 4334 + [TYPE_USB] = { 4391 4335 [NO_SSC] = &dp_100_no_ssc_rx_ln_vals, 4392 4336 }, 4393 4337 }, ··· 4469 4407 [NO_SSC] = &usb_100_no_ssc_rx_ln_vals, 4470 4408 [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals, 4471 4409 [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals, 4410 + }, 4411 + [TYPE_DP] = { 4412 + [NO_SSC] = &usb_100_no_ssc_rx_ln_vals, 4472 4413 }, 4473 4414 }, 4474 4415 }, ··· 4489 4424 [TYPE_PCIE] = { 4490 4425 [NO_SSC] = &pcie_dp_link_cmn_vals, 4491 4426 }, 4427 + [TYPE_USB] = { 4428 + [NO_SSC] = &usb_dp_link_cmn_vals, 4429 + }, 4492 4430 }, 4493 4431 [TYPE_PCIE] = { 4494 4432 [TYPE_NONE] = { ··· 4569 4501 [EXTERNAL_SSC] = &usb_sgmii_link_cmn_vals, 4570 4502 [INTERNAL_SSC] = &usb_sgmii_link_cmn_vals, 4571 4503 }, 4504 + [TYPE_DP] = { 4505 + [NO_SSC] = &usb_dp_link_cmn_vals, 4506 + }, 4572 4507 }, 4573 4508 }, 4574 4509 .xcvr_diag_vals = { ··· 4581 4510 }, 4582 4511 [TYPE_PCIE] = { 4583 4512 [NO_SSC] = &dp_pcie_xcvr_diag_ln_vals, 4513 + }, 4514 + [TYPE_USB] = { 4515 + [NO_SSC] = &dp_usb_xcvr_diag_ln_vals, 4584 4516 }, 4585 4517 }, 4586 4518 [TYPE_PCIE] = { ··· 4662 4588 [EXTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals, 4663 4589 [INTERNAL_SSC] = &usb_sgmii_xcvr_diag_ln_vals, 4664 4590 }, 4591 + [TYPE_DP] = { 4592 + [NO_SSC] = &usb_dp_xcvr_diag_ln_vals, 4593 + }, 4665 4594 }, 4666 4595 }, 4667 4596 .pcs_cmn_vals = { ··· 4688 4611 [NO_SSC] = &usb_phy_pcs_cmn_vals, 4689 4612 [EXTERNAL_SSC] = &usb_phy_pcs_cmn_vals, 4690 4613 [INTERNAL_SSC] = &usb_phy_pcs_cmn_vals, 4614 + }, 4615 + [TYPE_DP] = { 4616 + [NO_SSC] = &usb_phy_pcs_cmn_vals, 4691 4617 }, 4692 4618 }, 4693 4619 }, ··· 4716 4636 }, 4717 4637 [TYPE_PCIE] = { 4718 4638 [NO_SSC] = &dp_100_no_ssc_cmn_vals, 4639 + }, 4640 + [TYPE_USB] = { 4641 + [NO_SSC] = &sl_dp_100_no_ssc_cmn_vals, 4719 4642 }, 4720 4643 }, 4721 4644 [TYPE_PCIE] = { ··· 4797 4714 [EXTERNAL_SSC] = &sl_usb_100_no_ssc_cmn_vals, 4798 4715 [INTERNAL_SSC] = &sl_usb_100_int_ssc_cmn_vals, 4799 4716 }, 4717 + [TYPE_DP] = { 4718 + [NO_SSC] = &usb_100_no_ssc_cmn_vals, 4719 + }, 4800 4720 }, 4801 4721 }, 4802 4722 }, ··· 4824 4738 [NO_SSC] = &sl_dp_100_no_ssc_tx_ln_vals, 4825 4739 }, 4826 4740 [TYPE_PCIE] = { 4741 + [NO_SSC] = &dp_100_no_ssc_tx_ln_vals, 4742 + }, 4743 + [TYPE_USB] = { 4827 4744 [NO_SSC] = &dp_100_no_ssc_tx_ln_vals, 4828 4745 }, 4829 4746 }, ··· 4906 4817 [EXTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals, 4907 4818 [INTERNAL_SSC] = &usb_100_no_ssc_tx_ln_vals, 4908 4819 }, 4820 + [TYPE_DP] = { 4821 + [NO_SSC] = &usb_100_no_ssc_tx_ln_vals, 4822 + }, 4909 4823 }, 4910 4824 }, 4911 4825 }, ··· 4933 4841 [NO_SSC] = &sl_dp_100_no_ssc_rx_ln_vals, 4934 4842 }, 4935 4843 [TYPE_PCIE] = { 4844 + [NO_SSC] = &dp_100_no_ssc_rx_ln_vals, 4845 + }, 4846 + [TYPE_USB] = { 4936 4847 [NO_SSC] = &dp_100_no_ssc_rx_ln_vals, 4937 4848 }, 4938 4849 }, ··· 5014 4919 [NO_SSC] = &usb_100_no_ssc_rx_ln_vals, 5015 4920 [EXTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals, 5016 4921 [INTERNAL_SSC] = &usb_100_no_ssc_rx_ln_vals, 4922 + }, 4923 + [TYPE_DP] = { 4924 + [NO_SSC] = &usb_100_no_ssc_rx_ln_vals, 5017 4925 }, 5018 4926 }, 5019 4927 },