linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: freescale: ten64: add usb hub definition
@ 2025-01-29  4:53 Mathew McBride
  2025-02-23  4:03 ` Shawn Guo
  2025-03-05  0:19 ` [PATCH v2] " Mathew McBride
  0 siblings, 2 replies; 4+ messages in thread
From: Mathew McBride @ 2025-01-29  4:53 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel, linux-kernel, Shawn Guo,
	Rob Herring, Krzysztof Kozlowski
  Cc: Mathew McBride

A device tree binding for the Microchip USB5744 hub controller
was added in commit 02be19e914b8 ("dt-bindings: usb: Add support
for Microchip usb5744 hub controller").

U-Boot will consume this binding in order to perform the
necessary actions to enable the USB hub ports over I2C.
(We previously used our own out-of-tree driver for
this task)

The Ten64 board does not have any switchable supplies
for the voltage rails utilized by the USB5744, so a
pair of dummy supplies have been added to facilitate
operation with U-Boot's hub driver.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 45 +++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index bc0d89427fbe5..fc15c83d222f6 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -87,6 +87,22 @@ sfp_xg1: dpmac1-sfp {
 		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
 		maximum-power-milliwatt = <2000>;
 	};
+
+	usb1v2_supply: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "usbhub_1v2";
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+		regulator-always-on;
+	};
+
+	system3v3_supply: regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "system_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
 };
 
 /* XG1 - Upper SFP */
@@ -231,6 +247,12 @@ at97sc: tpm@29 {
 		compatible = "atmel,at97sc3204t";
 		reg = <0x29>;
 	};
+
+	usbhub: usb-hub@2d {
+		compatible = "microchip,usb5744";
+		reg = <0x2d>;
+	};
+
 };
 
 &i2c2 {
@@ -378,10 +400,33 @@ partition@9400000 {
 	};
 };
 
+/* LS1088A USB Port 0 - direct to bottom USB-A port */
 &usb0 {
 	status = "okay";
 };
 
+/* LS1088A USB Port 1 - to Microchip USB5744 USB Hub */
 &usb1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+
 	status = "okay";
+
+	hub_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub_3_0>;
+		i2c-bus = <&usbhub>;
+		vdd-supply = <&system3v3_supply>;
+		vdd2-supply = <&usb1v2_supply>;
+	};
+
+	hub_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub_2_0>;
+		i2c-bus = <&usbhub>;
+		vdd-supply = <&system3v3_supply>;
+		vdd2-supply = <&usb1v2_supply>;
+	};
 };
-- 
2.45.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm64: dts: freescale: ten64: add usb hub definition
  2025-01-29  4:53 [PATCH] arm64: dts: freescale: ten64: add usb hub definition Mathew McBride
@ 2025-02-23  4:03 ` Shawn Guo
  2025-03-05  0:19 ` [PATCH v2] " Mathew McBride
  1 sibling, 0 replies; 4+ messages in thread
From: Shawn Guo @ 2025-02-23  4:03 UTC (permalink / raw)
  To: Mathew McBride
  Cc: devicetree, linux-arm-kernel, linux-kernel, Shawn Guo,
	Rob Herring, Krzysztof Kozlowski

On Wed, Jan 29, 2025 at 03:53:52PM +1100, Mathew McBride wrote:
> A device tree binding for the Microchip USB5744 hub controller
> was added in commit 02be19e914b8 ("dt-bindings: usb: Add support
> for Microchip usb5744 hub controller").
> 
> U-Boot will consume this binding in order to perform the
> necessary actions to enable the USB hub ports over I2C.
> (We previously used our own out-of-tree driver for
> this task)
> 
> The Ten64 board does not have any switchable supplies
> for the voltage rails utilized by the USB5744, so a
> pair of dummy supplies have been added to facilitate
> operation with U-Boot's hub driver.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 45 +++++++++++++++++++
>  1 file changed, 45 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> index bc0d89427fbe5..fc15c83d222f6 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
> @@ -87,6 +87,22 @@ sfp_xg1: dpmac1-sfp {
>  		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
>  		maximum-power-milliwatt = <2000>;
>  	};
> +
> +	usb1v2_supply: regulator {
> +		compatible = "regulator-fixed";
> +		regulator-name = "usbhub_1v2";
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +		regulator-always-on;
> +	};
> +
> +	system3v3_supply: regulator {

Same node name for two regulators above?  Won't kernel complain?

> +		compatible = "regulator-fixed";
> +		regulator-name = "system_3v3";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-always-on;
> +	};
>  };
>  
>  /* XG1 - Upper SFP */
> @@ -231,6 +247,12 @@ at97sc: tpm@29 {
>  		compatible = "atmel,at97sc3204t";
>  		reg = <0x29>;
>  	};
> +
> +	usbhub: usb-hub@2d {
> +		compatible = "microchip,usb5744";
> +		reg = <0x2d>;
> +	};
> +
>  };
>  
>  &i2c2 {
> @@ -378,10 +400,33 @@ partition@9400000 {
>  	};
>  };
>  
> +/* LS1088A USB Port 0 - direct to bottom USB-A port */
>  &usb0 {
>  	status = "okay";
>  };
>  
> +/* LS1088A USB Port 1 - to Microchip USB5744 USB Hub */
>  &usb1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +

Nit: unnecessary newline

Shawn

>  	status = "okay";
> +
> +	hub_2_0: hub@1 {
> +		compatible = "usb424,2744";
> +		reg = <1>;
> +		peer-hub = <&hub_3_0>;
> +		i2c-bus = <&usbhub>;
> +		vdd-supply = <&system3v3_supply>;
> +		vdd2-supply = <&usb1v2_supply>;
> +	};
> +
> +	hub_3_0: hub@2 {
> +		compatible = "usb424,5744";
> +		reg = <2>;
> +		peer-hub = <&hub_2_0>;
> +		i2c-bus = <&usbhub>;
> +		vdd-supply = <&system3v3_supply>;
> +		vdd2-supply = <&usb1v2_supply>;
> +	};
>  };
> -- 
> 2.45.1
> 



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2] arm64: dts: freescale: ten64: add usb hub definition
  2025-01-29  4:53 [PATCH] arm64: dts: freescale: ten64: add usb hub definition Mathew McBride
  2025-02-23  4:03 ` Shawn Guo
@ 2025-03-05  0:19 ` Mathew McBride
  2025-03-11  1:25   ` Shawn Guo
  1 sibling, 1 reply; 4+ messages in thread
From: Mathew McBride @ 2025-03-05  0:19 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel, linux-kernel, Shawn Guo,
	Rob Herring, Krzysztof Kozlowski
  Cc: Mathew McBride

A device tree binding for the Microchip USB5744 hub controller
was added in commit 02be19e914b8 ("dt-bindings: usb: Add support
for Microchip usb5744 hub controller").

U-Boot will consume this binding in order to perform the
necessary actions to enable the USB hub ports over I2C.
(We previously used our own out-of-tree driver for
this task)

The Ten64 board does not have any switchable supplies
for the voltage rails utilized by the USB5744, so a
pair of dummy supplies have been added to facilitate
operation with U-Boot's hub driver.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
Changes in v2:
 - provide unique node names for the two regulators
 - remove unnecessary newline under &usb1
---
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  | 44 +++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index bc0d89427fbe5..3a11068f2212f 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -87,6 +87,22 @@ sfp_xg1: dpmac1-sfp {
 		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
 		maximum-power-milliwatt = <2000>;
 	};
+
+	usb1v2_supply: regulator-usbhub-1v2 {
+		compatible = "regulator-fixed";
+		regulator-name = "usbhub_1v2";
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+		regulator-always-on;
+	};
+
+	system3v3_supply: regulator-system-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "system_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
 };
 
 /* XG1 - Upper SFP */
@@ -231,6 +247,12 @@ at97sc: tpm@29 {
 		compatible = "atmel,at97sc3204t";
 		reg = <0x29>;
 	};
+
+	usbhub: usb-hub@2d {
+		compatible = "microchip,usb5744";
+		reg = <0x2d>;
+	};
+
 };
 
 &i2c2 {
@@ -378,10 +400,32 @@ partition@9400000 {
 	};
 };
 
+/* LS1088A USB Port 0 - direct to bottom USB-A port */
 &usb0 {
 	status = "okay";
 };
 
+/* LS1088A USB Port 1 - to Microchip USB5744 USB Hub */
 &usb1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
+
+	hub_2_0: hub@1 {
+		compatible = "usb424,2744";
+		reg = <1>;
+		peer-hub = <&hub_3_0>;
+		i2c-bus = <&usbhub>;
+		vdd-supply = <&system3v3_supply>;
+		vdd2-supply = <&usb1v2_supply>;
+	};
+
+	hub_3_0: hub@2 {
+		compatible = "usb424,5744";
+		reg = <2>;
+		peer-hub = <&hub_2_0>;
+		i2c-bus = <&usbhub>;
+		vdd-supply = <&system3v3_supply>;
+		vdd2-supply = <&usb1v2_supply>;
+	};
 };
-- 
2.45.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] arm64: dts: freescale: ten64: add usb hub definition
  2025-03-05  0:19 ` [PATCH v2] " Mathew McBride
@ 2025-03-11  1:25   ` Shawn Guo
  0 siblings, 0 replies; 4+ messages in thread
From: Shawn Guo @ 2025-03-11  1:25 UTC (permalink / raw)
  To: Mathew McBride
  Cc: devicetree, linux-arm-kernel, linux-kernel, Shawn Guo,
	Rob Herring, Krzysztof Kozlowski

On Wed, Mar 05, 2025 at 11:19:01AM +1100, Mathew McBride wrote:
> A device tree binding for the Microchip USB5744 hub controller
> was added in commit 02be19e914b8 ("dt-bindings: usb: Add support
> for Microchip usb5744 hub controller").
> 
> U-Boot will consume this binding in order to perform the
> necessary actions to enable the USB hub ports over I2C.
> (We previously used our own out-of-tree driver for
> this task)
> 
> The Ten64 board does not have any switchable supplies
> for the voltage rails utilized by the USB5744, so a
> pair of dummy supplies have been added to facilitate
> operation with U-Boot's hub driver.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>

Applied, thanks!



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-03-11  1:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-29  4:53 [PATCH] arm64: dts: freescale: ten64: add usb hub definition Mathew McBride
2025-02-23  4:03 ` Shawn Guo
2025-03-05  0:19 ` [PATCH v2] " Mathew McBride
2025-03-11  1:25   ` Shawn Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).