linux/drivers/phy
Michal Tomek f8020dfb31 phy: rockchip-snps-pcie3: fix bifurcation on rk3588
So far all RK3588 boards use fully aggregated PCIe. CM3588 is one
of the few boards using this feature and apparently it is broken.

The PHY offers the following mapping options:

  port 0 lane 0 - always mapped to controller 0 (4L)
  port 0 lane 1 - to controller 0 or 2 (1L0)
  port 1 lane 0 - to controller 0 or 1 (2L)
  port 1 lane 1 - to controller 0, 1 or 3 (1L1)

The data-lanes DT property maps these as follows:

  0 = no controller (unsupported by the HW)
  1 = 4L
  2 = 2L
  3 = 1L0
  4 = 1L1

That allows the following configurations with first column being the
mainline data-lane mapping, second column being the downstream name,
third column being PCIE3PHY_GRF_CMN_CON0 and PHP_GRF_PCIESEL register
values and final column being the user visible lane setup:

  <1 1 1 1> = AGGREG = [4 0] = x4 (aggregation)
  <1 1 2 2> = NANBNB = [0 0] = x2 x2 (no bif.)
  <1 3 2 2> = NANBBI = [1 1] = x2 x1x1 (bif. of port 0)
  <1 1 2 4> = NABINB = [2 2] = x1x1 x2 (bif. of port 1)
  <1 3 2 4> = NABIBI = [3 3] = x1x1 x1x1 (bif. of both ports)

The driver currently does not program PHP_GRF_PCIESEL correctly, which
is fixed by this patch. As a side-effect the new logic is much simpler
than the old logic.

Fixes: 2e9bffc4f7 ("phy: rockchip: Support PCIe v3")
Signed-off-by: Michal Tomek <mtdev79b@gmail.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240404-rk3588-pcie-bifurcation-fixes-v1-1-9907136eeafd@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2024-04-06 14:31:13 +05:30
..
allwinner phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
amlogic phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
broadcom phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
cadence phy: cadence-torrent: Add USXGMII(156.25MHz) + SGMII/QSGMII(100MHz) multilink config for TI J7200 2024-02-07 15:02:13 +01:00
freescale phy: freescale: imx8m-pcie: fix pcie link-up instability 2024-04-06 12:43:16 +05:30
hisilicon phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
ingenic phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
intel phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
lantiq phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
marvell phy: marvell: a3700-comphy: Fix hardcoded array size 2024-04-05 22:32:00 +05:30
mediatek phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
microchip phy-for-6.9 2024-03-16 11:24:51 -07:00
motorola phy: Drop unnecessary of_match_device() calls 2023-10-13 15:47:53 +05:30
mscc phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
qualcomm phy-for-6.9 2024-03-16 11:24:51 -07:00
ralink phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
realtek phy: realtek: usb: add new driver for the Realtek RTD SoC USB 3.0 PHY 2024-01-27 17:36:14 -08:00
renesas phy-for-6.9 2024-03-16 11:24:51 -07:00
rockchip phy: rockchip-snps-pcie3: fix bifurcation on rk3588 2024-04-06 14:31:13 +05:30
samsung phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
socionext phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
st phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
starfive phy: starfive: StarFive PHYs should depend on ARCH_STARFIVE 2023-07-26 19:09:08 +05:30
sunplus phy: sunplus: return negative error code in sp_usb_phy_probe 2023-11-27 18:39:18 +05:30
tegra USB/Thunderbolt changes for 6.9-rc1 2024-03-21 12:35:20 -07:00
ti phy-for-6.9 2024-03-16 11:24:51 -07:00
xilinx phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
Kconfig phy: realtek: usb: add new driver for the Realtek RTD SoC USB 2.0 PHY 2024-01-27 17:36:14 -08:00
Makefile phy: realtek: usb: add new driver for the Realtek RTD SoC USB 2.0 PHY 2024-01-27 17:36:14 -08:00
phy-can-transceiver.c phy: phy-can-transceiver: insert space after include 2023-12-21 22:39:59 +05:30
phy-core-mipi-dphy.c phy: dphy: add support to calculate the timing based on hs_clk_rate 2022-10-27 14:38:04 +03:00
phy-core.c USB/Thunderbolt changes for 6.9-rc1 2024-03-21 12:35:20 -07:00
phy-lgm-usb.c phy: phy-lgm-usb: Convert to platform remove callback returning void 2023-03-20 18:14:56 +05:30
phy-lpc18xx-usb-otg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
phy-pistachio-usb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
phy-xgene.c phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30