You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
456 lines
11 KiB
456 lines
11 KiB
From 37f6130ec39fe14e923d472746a51e6f06f761b7 Mon Sep 17 00:00:00 2001
|
|
From: Vivek Unune <npcomplete13@gmail.com>
|
|
Date: Mon, 9 Apr 2018 18:31:53 -0400
|
|
Subject: [PATCH] ARM: dts: BCM5301X: Make USB 3.0 PHY use MDIO PHY driver
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Currently, the USB 3.0 PHY in bcm5301x.dtsi uses platform driver which
|
|
requires register range "ccb-mii" <0x18003000 0x1000>. This range
|
|
overlaps with MDIO cmd and param registers (<0x18003000 0x8>).
|
|
Essentially, the platform driver partly acts like a MDIO bus driver,
|
|
hence to use of this register range.
|
|
|
|
In some Northstar devices like Linksys EA9500, secondary switch is
|
|
connected via external MDIO. The only way to access and configure the
|
|
external switch is via MDIO bus. When we enable the MDIO bus in it's
|
|
current state, the MDIO bus and any child buses fail to register because
|
|
of the register range overlap.
|
|
|
|
On Northstar, the USB 3.0 PHY is connected at address 0x10 on the
|
|
internal MDIO bus. This change moves the usb3_phy node and makes it a
|
|
child node of internal MDIO bus.
|
|
|
|
Thanks to Rafał Miłecki's commit af850e14a7ae ("phy: bcm-ns-usb3: add
|
|
MDIO driver using proper bus layer") the same USB 3.0 platform driver
|
|
can now act as USB 3.0 PHY MDIO driver.
|
|
|
|
Tested on Linksys Panamera (EA9500)
|
|
|
|
Signed-off-by: Vivek Unune <npcomplete13@gmail.com>
|
|
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
---
|
|
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 4 +++
|
|
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 4 +++
|
|
arch/arm/boot/dts/bcm47094.dtsi | 7 +++--
|
|
arch/arm/boot/dts/bcm5301x.dtsi | 35 +++++++++++++++++-----
|
|
arch/arm/boot/dts/bcm94708.dts | 4 +++
|
|
arch/arm/boot/dts/bcm94709.dts | 4 +++
|
|
arch/arm/boot/dts/bcm953012er.dts | 4 +++
|
|
arch/arm/boot/dts/bcm953012hr.dts | 4 +++
|
|
arch/arm/boot/dts/bcm953012k.dts | 4 +++
|
|
34 files changed, 159 insertions(+), 11 deletions(-)
|
|
|
|
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
|
|
@@ -90,3 +90,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
|
|
@@ -80,3 +80,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
|
|
@@ -146,3 +146,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
|
|
@@ -38,3 +38,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts
|
|
@@ -57,3 +57,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
|
|
@@ -64,3 +64,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
|
|
@@ -91,3 +91,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
|
|
@@ -83,3 +83,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
|
|
+++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
|
|
@@ -158,3 +158,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
|
|
+++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
|
|
@@ -74,3 +74,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
|
|
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
|
|
@@ -118,3 +118,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
|
|
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
|
|
@@ -104,3 +104,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
|
|
+++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts
|
|
@@ -57,3 +57,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
|
|
+++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts
|
|
@@ -105,3 +105,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
|
|
+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
|
|
@@ -99,3 +99,7 @@
|
|
&usb2 {
|
|
vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
|
|
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
|
|
@@ -62,3 +62,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
|
|
+++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
|
|
@@ -127,3 +127,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts
|
|
+++ b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts
|
|
@@ -39,3 +39,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
|
|
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
|
|
@@ -101,3 +101,7 @@
|
|
&usb3 {
|
|
vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
|
|
+++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
|
|
@@ -182,3 +182,7 @@
|
|
&usb3 {
|
|
vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
|
|
+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
|
|
@@ -104,3 +104,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
|
|
+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
|
|
@@ -115,3 +115,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
|
|
+++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
|
|
@@ -33,3 +33,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
|
|
+++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
|
|
@@ -60,3 +60,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
|
|
+++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
|
|
@@ -60,3 +60,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
|
|
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
|
|
@@ -100,3 +100,7 @@
|
|
&spi_nor {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
|
|
+++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
|
|
@@ -91,3 +91,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm47094.dtsi
|
|
+++ b/arch/arm/boot/dts/bcm47094.dtsi
|
|
@@ -7,9 +7,10 @@
|
|
#include "bcm4708.dtsi"
|
|
|
|
/ {
|
|
- usb3_phy: usb3-phy {
|
|
- compatible = "brcm,ns-bx-usb3-phy";
|
|
- };
|
|
+};
|
|
+
|
|
+&usb3_phy {
|
|
+ compatible = "brcm,ns-bx-usb3-phy";
|
|
};
|
|
|
|
&uart0 {
|
|
--- a/arch/arm/boot/dts/bcm5301x.dtsi
|
|
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
|
|
@@ -154,13 +154,6 @@
|
|
clock-names = "phy-ref-clk";
|
|
};
|
|
|
|
- usb3_phy: usb3-phy {
|
|
- compatible = "brcm,ns-ax-usb3-phy";
|
|
- reg = <0x18105000 0x1000>, <0x18003000 0x1000>;
|
|
- reg-names = "dmp", "ccb-mii";
|
|
- #phy-cells = <0>;
|
|
- };
|
|
-
|
|
axi@18000000 {
|
|
compatible = "brcm,bus-axi";
|
|
reg = <0x18000000 0x1000>;
|
|
@@ -359,7 +352,33 @@
|
|
reg = <0x18003000 0x8>;
|
|
#size-cells = <1>;
|
|
#address-cells = <0>;
|
|
- status = "disabled";
|
|
+ };
|
|
+
|
|
+ mdio-bus-mux {
|
|
+ compatible = "mdio-mux-mmioreg";
|
|
+ mdio-parent-bus = <&mdio>;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ reg = <0x18003000 0x4>;
|
|
+ mux-mask = <0x200>;
|
|
+
|
|
+ mdio@0 {
|
|
+ reg = <0x0>;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ usb3_phy: usb3-phy@10 {
|
|
+ compatible = "brcm,ns-ax-usb3-phy";
|
|
+ reg = <0x10>;
|
|
+ usb3-dmp-syscon = <&usb3_dmp>;
|
|
+ #phy-cells = <0>;
|
|
+ status = "disabled";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ usb3_dmp: syscon@18105000 {
|
|
+ reg = <0x18105000 0x1000>;
|
|
};
|
|
|
|
i2c0: i2c@18009000 {
|
|
--- a/arch/arm/boot/dts/bcm94708.dts
|
|
+++ b/arch/arm/boot/dts/bcm94708.dts
|
|
@@ -42,3 +42,7 @@
|
|
reg = <0x00000000 0x08000000>;
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm94709.dts
|
|
+++ b/arch/arm/boot/dts/bcm94709.dts
|
|
@@ -42,3 +42,7 @@
|
|
reg = <0x00000000 0x08000000>;
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm953012er.dts
|
|
+++ b/arch/arm/boot/dts/bcm953012er.dts
|
|
@@ -90,3 +90,7 @@
|
|
};
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm953012hr.dts
|
|
+++ b/arch/arm/boot/dts/bcm953012hr.dts
|
|
@@ -95,3 +95,7 @@
|
|
reg = <0x00700000 0x00900000>;
|
|
};
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
--- a/arch/arm/boot/dts/bcm953012k.dts
|
|
+++ b/arch/arm/boot/dts/bcm953012k.dts
|
|
@@ -113,3 +113,7 @@
|
|
&uart1 {
|
|
status = "okay";
|
|
};
|
|
+
|
|
+&usb3_phy {
|
|
+ status = "okay";
|
|
+};
|
|
|