From 2d6e43739c8918ba74ff62af529eb6c2000afd67 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 5 Apr 2021 15:16:10 +0800 Subject: [PATCH] rockchip: backport upstream usbdrd3 patches Link: https://lore.kernel.org/linux-rockchip/20210205114011.10381-1-jbx6244@gmail.com/ Signed-off-by: Tianling Shen --- ...dd-support-for-FriendlyARM-NanoPi-R.patch} | 2 +- ...-add-rk3328-dwc3-usb-controller-node.patch | 48 ++++++++++++++ ...usb3-controller-node-for-RK3328-SoCs.patch | 62 ------------------- ...ckchip-enable-LAN-port-on-NanoPi-R2S.patch | 26 ++++---- ...dd-OF-node-for-USB-eth-on-NanoPi-R2S.patch | 4 +- ...-of-simple-add-compatible-for-rk3328.patch | 35 +++++++++++ ...ple-bail-probe-if-no-dwc3-child-node.patch | 36 +++++++++++ ...328-Add-support-for-OrangePi-R1-Plus.patch | 2 +- ...m64-dts-rockchip-rk3328-add-dfi-node.patch | 4 +- ...anopi-r2s-add-rk3328-dmc-relate-node.patch | 2 +- ...dd-support-for-FriendlyARM-NanoPi-R.patch} | 2 +- ...-add-rk3328-dwc3-usb-controller-node.patch | 48 ++++++++++++++ ...usb3-controller-node-for-RK3328-SoCs.patch | 62 ------------------- ...ckchip-enable-LAN-port-on-NanoPi-R2S.patch | 6 +- ...dd-OF-node-for-USB-eth-on-NanoPi-R2S.patch | 4 +- ...-of-simple-add-compatible-for-rk3328.patch | 35 +++++++++++ ...ple-bail-probe-if-no-dwc3-child-node.patch | 36 +++++++++++ ...m64-dts-rockchip-rk3328-add-dfi-node.patch | 4 +- 18 files changed, 262 insertions(+), 156 deletions(-) rename target/linux/rockchip/patches-5.10/{006-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch => 006-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch} (99%) create mode 100644 target/linux/rockchip/patches-5.10/007-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch delete mode 100644 target/linux/rockchip/patches-5.10/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch create mode 100644 target/linux/rockchip/patches-5.10/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch create mode 100644 target/linux/rockchip/patches-5.10/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch rename target/linux/rockchip/patches-5.4/{009-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch => 009-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch} (99%) create mode 100644 target/linux/rockchip/patches-5.4/010-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch delete mode 100644 target/linux/rockchip/patches-5.4/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch create mode 100644 target/linux/rockchip/patches-5.4/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch create mode 100644 target/linux/rockchip/patches-5.4/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch diff --git a/target/linux/rockchip/patches-5.10/006-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch b/target/linux/rockchip/patches-5.10/006-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch similarity index 99% rename from target/linux/rockchip/patches-5.10/006-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch rename to target/linux/rockchip/patches-5.10/006-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch index 461a5ae7dd..6d43ba3f57 100644 --- a/target/linux/rockchip/patches-5.10/006-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch +++ b/target/linux/rockchip/patches-5.10/006-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch @@ -25,7 +25,7 @@ Link: https://lore.kernel.org/r/20210319051627.814-2-cnsztl@gmail.com Signed-off-by: Heiko Stuebner --- arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3399-nanopi-r4s.dts | 133 +++++++++++++++++++++ + .../boot/dts/rockchip/rk3399-nanopi-r4s.dts | 133 ++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts diff --git a/target/linux/rockchip/patches-5.10/007-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch b/target/linux/rockchip/patches-5.10/007-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch new file mode 100644 index 0000000000..e86599a362 --- /dev/null +++ b/target/linux/rockchip/patches-5.10/007-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch @@ -0,0 +1,48 @@ +From 44dd5e2106dc2fd01697b539085818d1d1c58df0 Mon Sep 17 00:00:00 2001 +From: Cameron Nemo +Date: Tue, 9 Feb 2021 20:23:49 +0100 +Subject: arm64: dts: rockchip: add rk3328 dwc3 usb controller node + +RK3328 SoCs have one USB 3.0 OTG controller which uses DWC_USB3 +core's general architecture. It can act as static xHCI host +controller, static device controller, USB 3.0/2.0 OTG basing +on ID of USB3.0 PHY. + +Signed-off-by: William Wu +Signed-off-by: Cameron Nemo +Signed-off-by: Johan Jonker +Signed-off-by: Heiko Stuebner +Link: https://lore.kernel.org/r/20210209192350.7130-7-jbx6244@gmail.com +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/rk3328.dtsi | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi +@@ -984,6 +984,25 @@ + status = "disabled"; + }; + ++ usbdrd3: usb@ff600000 { ++ compatible = "rockchip,rk3328-dwc3", "snps,dwc3"; ++ reg = <0x0 0xff600000 0x0 0x100000>; ++ interrupts = ; ++ clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>, ++ <&cru ACLK_USB3OTG>; ++ clock-names = "ref_clk", "suspend_clk", ++ "bus_clk"; ++ dr_mode = "otg"; ++ phy_type = "utmi_wide"; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis_enblslpm_quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis_u2_susphy_quirk; ++ snps,dis_u3_susphy_quirk; ++ status = "disabled"; ++ }; ++ + gic: interrupt-controller@ff811000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; diff --git a/target/linux/rockchip/patches-5.10/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch b/target/linux/rockchip/patches-5.10/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch deleted file mode 100644 index e8123ee025..0000000000 --- a/target/linux/rockchip/patches-5.10/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: William Wu - -RK3328 has one USB 3.0 OTG controller which uses DWC_USB3 -core's general architecture. It can act as static xHCI host -controller, static device controller, USB 3.0/2.0 OTG basing -on ID of USB3.0 PHY. - -Signed-off-by: William Wu -Signed-off-by: Leonidas P. Papadakos - ---- - -NOTE: This binding still has issues. From the original thread: - -the rk3328 usb3-phy has an issue with detecting any plugin events -after a previous device got removed - see the inno-usb3-phy driver -in the vendor kernel. - -The current state is good-enough for enabling the USB3 attached LAN -port of the NanoPi R2S. However, it might explode depending on your -use-case. You've been warned. - ---- - arch/arm64/boot/dts/rockchip/rk3328.dtsi | 27 ++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi -@@ -984,6 +984,33 @@ - status = "disabled"; - }; - -+ usbdrd3: usb@ff600000 { -+ compatible = "rockchip,rk3328-dwc3", "rockchip,rk3399-dwc3"; -+ clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>, -+ <&cru ACLK_USB3OTG>; -+ clock-names = "ref_clk", "suspend_clk", -+ "bus_clk"; -+ #address-cells = <2>; -+ #size-cells = <2>; -+ ranges; -+ status = "disabled"; -+ -+ usbdrd_dwc3: dwc3@ff600000 { -+ compatible = "snps,dwc3"; -+ reg = <0x0 0xff600000 0x0 0x100000>; -+ interrupts = ; -+ dr_mode = "otg"; -+ phy_type = "utmi_wide"; -+ snps,dis_enblslpm_quirk; -+ snps,dis-u2-freeclk-exists-quirk; -+ snps,dis_u2_susphy_quirk; -+ snps,dis_u3_susphy_quirk; -+ snps,dis-del-phy-power-chg-quirk; -+ snps,dis-tx-ipgap-linecheck-quirk; -+ status = "disabled"; -+ }; -+ }; -+ - gic: interrupt-controller@ff811000 { - compatible = "arm,gic-400"; - #interrupt-cells = <3>; diff --git a/target/linux/rockchip/patches-5.10/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch b/target/linux/rockchip/patches-5.10/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch index 82e2137a8b..2a24c29e88 100644 --- a/target/linux/rockchip/patches-5.10/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch +++ b/target/linux/rockchip/patches-5.10/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch @@ -13,10 +13,11 @@ Signed-off-by: David Bauer --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -44,6 +44,18 @@ - }; +@@ -103,6 +103,18 @@ + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; }; - ++ + vcc_rtl8153: vcc-rtl8153-regulator { + compatible = "regulator-fixed"; + gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; @@ -28,12 +29,11 @@ Signed-off-by: David Bauer + regulator-max-microvolt = <5000000>; + enable-active-high; + }; -+ - leds { - compatible = "gpio-leds"; - pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>; -@@ -273,6 +285,12 @@ - }; + }; + + &cpu0 { +@@ -324,6 +336,12 @@ + rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; }; }; + @@ -44,17 +44,13 @@ Signed-off-by: David Bauer + }; }; - &io_domains { -@@ -379,3 +397,12 @@ + &pwm2 { +@@ -379,3 +397,8 @@ &usb_host0_ohci { status = "okay"; }; + +&usbdrd3 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3 { + dr_mode = "host"; + status = "okay"; +}; diff --git a/target/linux/rockchip/patches-5.10/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch b/target/linux/rockchip/patches-5.10/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch index 0acfae5de3..6d40d23b24 100644 --- a/target/linux/rockchip/patches-5.10/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch +++ b/target/linux/rockchip/patches-5.10/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch @@ -14,8 +14,8 @@ Signed-off-by: David Bauer --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -405,4 +405,11 @@ - &usbdrd_dwc3 { +@@ -401,4 +401,11 @@ + &usbdrd3 { dr_mode = "host"; status = "okay"; + diff --git a/target/linux/rockchip/patches-5.10/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch b/target/linux/rockchip/patches-5.10/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch new file mode 100644 index 0000000000..f1b2b0d691 --- /dev/null +++ b/target/linux/rockchip/patches-5.10/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch @@ -0,0 +1,35 @@ +From: Johan Jonker +To: heiko@sntech.de +Cc: devicetree@vger.kernel.org, balbi@kernel.org, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, + robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org +Subject: [PATCH v3 6/8] usb: dwc3: of-simple: add compatible for rk3328 +Date: Fri, 5 Feb 2021 12:40:09 +0100 +Message-ID: <20210205114011.10381-6-jbx6244@gmail.com> (raw) +In-Reply-To: <20210205114011.10381-1-jbx6244@gmail.com> + +From: Cameron Nemo + +Add a compatible to be hooked into by the Rockchip rk3328 device tree. + +The rk3399 compatible cannot be reused because the rk3328 SoCs may +require a specialized driver in the future and old device trees must +remain compatible with newer kernels. + +Signed-off-by: Cameron Nemo +Signed-off-by: Johan Jonker +--- + drivers/usb/dwc3/dwc3-of-simple.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/dwc3/dwc3-of-simple.c ++++ b/drivers/usb/dwc3/dwc3-of-simple.c +@@ -171,6 +171,7 @@ static const struct dev_pm_ops dwc3_of_s + }; + + static const struct of_device_id of_dwc3_simple_match[] = { ++ { .compatible = "rockchip,rk3328-dwc3" }, + { .compatible = "rockchip,rk3399-dwc3" }, + { .compatible = "xlnx,zynqmp-dwc3" }, + { .compatible = "cavium,octeon-7130-usb-uctl" }, diff --git a/target/linux/rockchip/patches-5.10/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch b/target/linux/rockchip/patches-5.10/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch new file mode 100644 index 0000000000..6d0b79f416 --- /dev/null +++ b/target/linux/rockchip/patches-5.10/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch @@ -0,0 +1,36 @@ +From: Johan Jonker +To: heiko@sntech.de +Cc: devicetree@vger.kernel.org, balbi@kernel.org, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, + robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org +Subject: [PATCH v5 2/8] usb: dwc3: of-simple: bail probe if no dwc3 child node +Date: Tue, 9 Feb 2021 20:23:44 +0100 +Message-ID: <20210209192350.7130-2-jbx6244@gmail.com> (raw) +In-Reply-To: <20210209192350.7130-1-jbx6244@gmail.com> + +For some of the dwc3-of-simple compatible SoCs we +don't want to bind this driver to a dwc3 node, +but bind that node to the 'snps,dwc3' driver instead. +The kernel has no logic to decide which driver to bind +to if there are 2 matching drivers, so bail probe if no +dwc3 child node. + +Signed-off-by: Johan Jonker +--- + drivers/usb/dwc3/dwc3-of-simple.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/dwc3/dwc3-of-simple.c ++++ b/drivers/usb/dwc3/dwc3-of-simple.c +@@ -38,6 +38,10 @@ static int dwc3_of_simple_probe(struct p + + int ret; + ++ /* Bail probe if no dwc3 child node. */ ++ if (!of_get_compatible_child(dev->of_node, "snps,dwc3")) ++ return -ENODEV; ++ + simple = devm_kzalloc(dev, sizeof(*simple), GFP_KERNEL); + if (!simple) + return -ENOMEM; diff --git a/target/linux/rockchip/patches-5.10/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch b/target/linux/rockchip/patches-5.10/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch index c529427791..3bc09bdf53 100644 --- a/target/linux/rockchip/patches-5.10/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch +++ b/target/linux/rockchip/patches-5.10/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -7,6 +7,7 @@ +@@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-od dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb diff --git a/target/linux/rockchip/patches-5.10/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch b/target/linux/rockchip/patches-5.10/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch index 8a5222da22..479340820c 100644 --- a/target/linux/rockchip/patches-5.10/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch +++ b/target/linux/rockchip/patches-5.10/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch @@ -11,8 +11,8 @@ Signed-off-by: Tianling Shen --- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi -@@ -1022,6 +1022,13 @@ - }; +@@ -1014,6 +1014,13 @@ + status = "disabled"; }; + dfi: dfi@ff790000 { diff --git a/target/linux/rockchip/patches-5.10/807-arm64-dts-nanopi-r2s-add-rk3328-dmc-relate-node.patch b/target/linux/rockchip/patches-5.10/807-arm64-dts-nanopi-r2s-add-rk3328-dmc-relate-node.patch index d93b9a77b2..d4bf547763 100644 --- a/target/linux/rockchip/patches-5.10/807-arm64-dts-nanopi-r2s-add-rk3328-dmc-relate-node.patch +++ b/target/linux/rockchip/patches-5.10/807-arm64-dts-nanopi-r2s-add-rk3328-dmc-relate-node.patch @@ -25,8 +25,8 @@ Signed-off-by: hmz007 / { @@ -115,6 +116,72 @@ - regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; + enable-active-high; }; + + dmc: dmc { diff --git a/target/linux/rockchip/patches-5.4/009-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch b/target/linux/rockchip/patches-5.4/009-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch similarity index 99% rename from target/linux/rockchip/patches-5.4/009-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch rename to target/linux/rockchip/patches-5.4/009-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch index c508d71317..b7495f000b 100644 --- a/target/linux/rockchip/patches-5.4/009-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch +++ b/target/linux/rockchip/patches-5.4/009-v5.13-rockchip-rk3399-Add-support-for-FriendlyARM-NanoPi-R.patch @@ -25,7 +25,7 @@ Link: https://lore.kernel.org/r/20210319051627.814-2-cnsztl@gmail.com Signed-off-by: Heiko Stuebner --- arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3399-nanopi-r4s.dts | 133 +++++++++++++++++++++ + .../boot/dts/rockchip/rk3399-nanopi-r4s.dts | 133 ++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts diff --git a/target/linux/rockchip/patches-5.4/010-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch b/target/linux/rockchip/patches-5.4/010-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch new file mode 100644 index 0000000000..2942e8f43f --- /dev/null +++ b/target/linux/rockchip/patches-5.4/010-v5.13-arm64-dts-rockchip-add-rk3328-dwc3-usb-controller-node.patch @@ -0,0 +1,48 @@ +From 44dd5e2106dc2fd01697b539085818d1d1c58df0 Mon Sep 17 00:00:00 2001 +From: Cameron Nemo +Date: Tue, 9 Feb 2021 20:23:49 +0100 +Subject: arm64: dts: rockchip: add rk3328 dwc3 usb controller node + +RK3328 SoCs have one USB 3.0 OTG controller which uses DWC_USB3 +core's general architecture. It can act as static xHCI host +controller, static device controller, USB 3.0/2.0 OTG basing +on ID of USB3.0 PHY. + +Signed-off-by: William Wu +Signed-off-by: Cameron Nemo +Signed-off-by: Johan Jonker +Signed-off-by: Heiko Stuebner +Link: https://lore.kernel.org/r/20210209192350.7130-7-jbx6244@gmail.com +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/rk3328.dtsi | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi +@@ -955,6 +955,25 @@ + status = "disabled"; + }; + ++ usbdrd3: usb@ff600000 { ++ compatible = "rockchip,rk3328-dwc3", "snps,dwc3"; ++ reg = <0x0 0xff600000 0x0 0x100000>; ++ interrupts = ; ++ clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>, ++ <&cru ACLK_USB3OTG>; ++ clock-names = "ref_clk", "suspend_clk", ++ "bus_clk"; ++ dr_mode = "otg"; ++ phy_type = "utmi_wide"; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis_enblslpm_quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis_u2_susphy_quirk; ++ snps,dis_u3_susphy_quirk; ++ status = "disabled"; ++ }; ++ + gic: interrupt-controller@ff811000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; diff --git a/target/linux/rockchip/patches-5.4/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch b/target/linux/rockchip/patches-5.4/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch deleted file mode 100644 index 621b25abca..0000000000 --- a/target/linux/rockchip/patches-5.4/101-dts-rockchip-add-usb3-controller-node-for-RK3328-SoCs.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: William Wu - -RK3328 has one USB 3.0 OTG controller which uses DWC_USB3 -core's general architecture. It can act as static xHCI host -controller, static device controller, USB 3.0/2.0 OTG basing -on ID of USB3.0 PHY. - -Signed-off-by: William Wu -Signed-off-by: Leonidas P. Papadakos - ---- - -NOTE: This binding still has issues. From the original thread: - -the rk3328 usb3-phy has an issue with detecting any plugin events -after a previous device got removed - see the inno-usb3-phy driver -in the vendor kernel. - -The current state is good-enough for enabling the USB3 attached LAN -port of the NanoPi R2S. However, it might explode depending on your -use-case. You've been warned. - ---- - arch/arm64/boot/dts/rockchip/rk3328.dtsi | 27 ++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi -@@ -955,6 +955,33 @@ - status = "disabled"; - }; - -+ usbdrd3: usb@ff600000 { -+ compatible = "rockchip,rk3328-dwc3", "rockchip,rk3399-dwc3"; -+ clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>, -+ <&cru ACLK_USB3OTG>; -+ clock-names = "ref_clk", "suspend_clk", -+ "bus_clk"; -+ #address-cells = <2>; -+ #size-cells = <2>; -+ ranges; -+ status = "disabled"; -+ -+ usbdrd_dwc3: dwc3@ff600000 { -+ compatible = "snps,dwc3"; -+ reg = <0x0 0xff600000 0x0 0x100000>; -+ interrupts = ; -+ dr_mode = "otg"; -+ phy_type = "utmi_wide"; -+ snps,dis_enblslpm_quirk; -+ snps,dis-u2-freeclk-exists-quirk; -+ snps,dis_u2_susphy_quirk; -+ snps,dis_u3_susphy_quirk; -+ snps,dis-del-phy-power-chg-quirk; -+ snps,dis-tx-ipgap-linecheck-quirk; -+ status = "disabled"; -+ }; -+ }; -+ - gic: interrupt-controller@ff811000 { - compatible = "arm,gic-400"; - #interrupt-cells = <3>; diff --git a/target/linux/rockchip/patches-5.4/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch b/target/linux/rockchip/patches-5.4/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch index 37dcb88948..11fa87914f 100644 --- a/target/linux/rockchip/patches-5.4/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch +++ b/target/linux/rockchip/patches-5.4/102-rockchip-enable-LAN-port-on-NanoPi-R2S.patch @@ -45,16 +45,12 @@ Signed-off-by: David Bauer }; &pwm2 { -@@ -375,3 +393,12 @@ +@@ -375,3 +393,8 @@ &usb_host0_ohci { status = "okay"; }; + +&usbdrd3 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3 { + dr_mode = "host"; + status = "okay"; +}; diff --git a/target/linux/rockchip/patches-5.4/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch b/target/linux/rockchip/patches-5.4/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch index e318f3136f..f026fdc58e 100644 --- a/target/linux/rockchip/patches-5.4/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch +++ b/target/linux/rockchip/patches-5.4/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch @@ -14,8 +14,8 @@ Signed-off-by: David Bauer --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -401,4 +401,11 @@ - &usbdrd_dwc3 { +@@ -397,4 +397,11 @@ + &usbdrd3 { dr_mode = "host"; status = "okay"; + diff --git a/target/linux/rockchip/patches-5.4/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch b/target/linux/rockchip/patches-5.4/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch new file mode 100644 index 0000000000..e2b4358bf7 --- /dev/null +++ b/target/linux/rockchip/patches-5.4/106-usb-dwc3-of-simple-add-compatible-for-rk3328.patch @@ -0,0 +1,35 @@ +From: Johan Jonker +To: heiko@sntech.de +Cc: devicetree@vger.kernel.org, balbi@kernel.org, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, + robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org +Subject: [PATCH v3 6/8] usb: dwc3: of-simple: add compatible for rk3328 +Date: Fri, 5 Feb 2021 12:40:09 +0100 +Message-ID: <20210205114011.10381-6-jbx6244@gmail.com> (raw) +In-Reply-To: <20210205114011.10381-1-jbx6244@gmail.com> + +From: Cameron Nemo + +Add a compatible to be hooked into by the Rockchip rk3328 device tree. + +The rk3399 compatible cannot be reused because the rk3328 SoCs may +require a specialized driver in the future and old device trees must +remain compatible with newer kernels. + +Signed-off-by: Cameron Nemo +Signed-off-by: Johan Jonker +--- + drivers/usb/dwc3/dwc3-of-simple.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/dwc3/dwc3-of-simple.c ++++ b/drivers/usb/dwc3/dwc3-of-simple.c +@@ -176,6 +176,7 @@ static const struct dev_pm_ops dwc3_of_s + }; + + static const struct of_device_id of_dwc3_simple_match[] = { ++ { .compatible = "rockchip,rk3328-dwc3" }, + { .compatible = "rockchip,rk3399-dwc3" }, + { .compatible = "xlnx,zynqmp-dwc3" }, + { .compatible = "cavium,octeon-7130-usb-uctl" }, diff --git a/target/linux/rockchip/patches-5.4/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch b/target/linux/rockchip/patches-5.4/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch new file mode 100644 index 0000000000..6fedf775ce --- /dev/null +++ b/target/linux/rockchip/patches-5.4/107-usb-dwc3-of-simple-bail-probe-if-no-dwc3-child-node.patch @@ -0,0 +1,36 @@ +From: Johan Jonker +To: heiko@sntech.de +Cc: devicetree@vger.kernel.org, balbi@kernel.org, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, + robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org +Subject: [PATCH v5 2/8] usb: dwc3: of-simple: bail probe if no dwc3 child node +Date: Tue, 9 Feb 2021 20:23:44 +0100 +Message-ID: <20210209192350.7130-2-jbx6244@gmail.com> (raw) +In-Reply-To: <20210209192350.7130-1-jbx6244@gmail.com> + +For some of the dwc3-of-simple compatible SoCs we +don't want to bind this driver to a dwc3 node, +but bind that node to the 'snps,dwc3' driver instead. +The kernel has no logic to decide which driver to bind +to if there are 2 matching drivers, so bail probe if no +dwc3 child node. + +Signed-off-by: Johan Jonker +--- + drivers/usb/dwc3/dwc3-of-simple.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/dwc3/dwc3-of-simple.c ++++ b/drivers/usb/dwc3/dwc3-of-simple.c +@@ -40,6 +40,10 @@ static int dwc3_of_simple_probe(struct p + int ret; + bool shared_resets = false; + ++ /* Bail probe if no dwc3 child node. */ ++ if (!of_get_compatible_child(dev->of_node, "snps,dwc3")) ++ return -ENODEV; ++ + simple = devm_kzalloc(dev, sizeof(*simple), GFP_KERNEL); + if (!simple) + return -ENOMEM; diff --git a/target/linux/rockchip/patches-5.4/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch b/target/linux/rockchip/patches-5.4/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch index e9b79b6fa9..c090dbf97a 100644 --- a/target/linux/rockchip/patches-5.4/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch +++ b/target/linux/rockchip/patches-5.4/806-arm64-dts-rockchip-rk3328-add-dfi-node.patch @@ -11,8 +11,8 @@ Signed-off-by: Tianling Shen --- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi -@@ -993,6 +993,13 @@ - }; +@@ -985,6 +985,13 @@ + status = "disabled"; }; + dfi: dfi@ff790000 {