ARM: dts: NSP: Move USB3 PHY to internal MDIO bus
authorMatthew Hagan <mnhagan88@gmail.com>
Sun, 13 Jun 2021 09:46:37 +0000 (10:46 +0100)
committerFlorian Fainelli <f.fainelli@gmail.com>
Tue, 14 Sep 2021 21:34:49 +0000 (14:34 -0700)
This patch largely replicates Vivek Unune's patch "ARM: dts:
BCM5301X:Make usb3 phy use mdio phy driver"[1] for the NSP platform,
whereby we need to create an mdio-mux to facilitate switches
configured via external MDIO, in this case on the Meraki MX65.

However in doing so, we are creating an overlap with usb3_phy's
ccb-mii range. To resolve this, usb3_phy should be moved to a child
node of the internal MDIO bus. The result is heavily based upon Vivek's
patch. This has also been cross-referenced with Yendapally Reddy's
earlier work which utilised the subsequently dropped brcm,nsp-usb3-phy
driver: "[PATCH v2 4/4] arm: dts: nsp: Add USB nodes to device tree"
[2]. Finally, this change provides conformance to the bcm-ns-usb3-phy
documentation, utilising the required usb3-dmp-syscon property. Note
that support for the deprecated ccb-mii bindings has been dropped as of
"phy: phy-bcm-ns-usb3: drop support for deprecated DT binding"[3].

[1] https://lore.kernel.org/patchwork/patch/933971/
[2] https://www.spinics.net/lists/arm-kernel/msg555132.html
[3] https://lore.kernel.org/linux-devicetree/20201113113423.9466-1-zajec5@gmail.com/

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm/boot/dts/bcm-nsp.dtsi

index c47edb3..745d1d9 100644 (file)
                        #address-cells = <1>;
                };
 
+               mdio-mux@32000 {
+                       compatible = "mdio-mux-mmioreg";
+                       reg = <0x32000 0x4>;
+                       mux-mask = <0x200>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       mdio-parent-bus = <&mdio>;
+
+                       mdio_int: mdio@0 {
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               usb3_phy: usb3-phy@10 {
+                                       compatible = "brcm,ns-bx-usb3-phy";
+                                       reg = <0x10>;
+                                       usb3-dmp-syscon = <&usb3_dmp>;
+                                       #phy-cells = <0>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       mdio_ext: mdio@200 {
+                               reg = <0x200>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                rng: rng@33000 {
                        compatible = "brcm,bcm-nsp-rng";
                        reg = <0x33000 0x14>;
                        };
                };
 
-               usb3_phy: usb3-phy@104000 {
-                       compatible = "brcm,ns-bx-usb3-phy";
-                       reg = <0x104000 0x1000>,
-                             <0x032000 0x1000>;
-                       reg-names = "dmp", "ccb-mii";
-                       #phy-cells = <0>;
-                       status = "disabled";
+               usb3_dmp: syscon@104000 {
+                       reg = <0x104000 0x1000>;
                };
        };