58 lines
2.3 KiB
Diff
58 lines
2.3 KiB
Diff
From 2e9bffc4f713db465177238f6033f7d367d6f151 Mon Sep 17 00:00:00 2001
|
|
From: Shawn Lin <shawn.lin@rock-chips.com>
|
|
Date: Thu, 25 Aug 2022 21:38:34 +0200
|
|
Subject: [PATCH] phy: rockchip: Support PCIe v3
|
|
|
|
RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566.
|
|
It use a dedicated PCIe-phy. Add support for this.
|
|
|
|
Initial support by Shawn Lin, modifications by Peter Geis and Frank
|
|
Wunderlich.
|
|
|
|
Add data-lanes property for splitting pcie-lanes across controllers.
|
|
|
|
The data-lanes is an array where x=0 means lane is disabled and x > 0
|
|
means controller x is assigned to phy lane.
|
|
|
|
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
|
|
Suggested-by: Peter Geis <pgwipeout@gmail.com>
|
|
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
|
Link: https://lore.kernel.org/r/20220825193836.54262-4-linux@fw-web.de
|
|
Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|
---
|
|
drivers/phy/rockchip/Kconfig | 9 +
|
|
drivers/phy/rockchip/Makefile | 1 +
|
|
.../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++
|
|
include/linux/phy/pcie.h | 12 +
|
|
4 files changed, 341 insertions(+)
|
|
create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c
|
|
create mode 100644 include/linux/phy/pcie.h
|
|
|
|
--- a/drivers/phy/rockchip/Kconfig
|
|
+++ b/drivers/phy/rockchip/Kconfig
|
|
@@ -83,6 +83,15 @@ config PHY_ROCKCHIP_PCIE
|
|
help
|
|
Enable this to support the Rockchip PCIe PHY.
|
|
|
|
+config PHY_ROCKCHIP_SNPS_PCIE3
|
|
+ tristate "Rockchip Snps PCIe3 PHY Driver"
|
|
+ depends on (ARCH_ROCKCHIP && OF) || COMPILE_TEST
|
|
+ depends on HAS_IOMEM
|
|
+ select GENERIC_PHY
|
|
+ select MFD_SYSCON
|
|
+ help
|
|
+ Enable this to support the Rockchip snps PCIe3 PHY.
|
|
+
|
|
config PHY_ROCKCHIP_TYPEC
|
|
tristate "Rockchip TYPEC PHY Driver"
|
|
depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST)
|
|
--- a/drivers/phy/rockchip/Makefile
|
|
+++ b/drivers/phy/rockchip/Makefile
|
|
@@ -8,5 +8,6 @@ obj-$(CONFIG_PHY_ROCKCHIP_INNO_HDMI) +=
|
|
obj-$(CONFIG_PHY_ROCKCHIP_INNO_USB2) += phy-rockchip-inno-usb2.o
|
|
obj-$(CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY) += phy-rockchip-naneng-combphy.o
|
|
obj-$(CONFIG_PHY_ROCKCHIP_PCIE) += phy-rockchip-pcie.o
|
|
+obj-$(CONFIG_PHY_ROCKCHIP_SNPS_PCIE3) += phy-rockchip-snps-pcie3.o
|
|
obj-$(CONFIG_PHY_ROCKCHIP_TYPEC) += phy-rockchip-typec.o
|
|
obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o
|