Commit 4bb2642c authored by Matthew Hagan's avatar Matthew Hagan Committed by Florian Fainelli
Browse files

ARM: dts: NSP: Move USB3 PHY to internal MDIO bus

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: default avatarMatthew Hagan <mnhagan88@gmail.com>
Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
parent 26441932
Loading
Loading
Loading
Loading
+31 −7
Original line number Diff line number Diff line
@@ -370,6 +370,35 @@ mdio: mdio@32000 {
			#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>;
@@ -528,13 +557,8 @@ sata1: sata-port@1 {
			};
		};

		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>;
		};
	};