]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: freescale: ten64: add usb hub definition
authorMathew McBride <matt@traverse.com.au>
Wed, 5 Mar 2025 00:19:01 +0000 (11:19 +1100)
committerShawn Guo <shawnguo@kernel.org>
Tue, 11 Mar 2025 01:23:58 +0000 (09:23 +0800)
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>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts

index bc0d89427fbe5ae0e69544d64cdc0aeefe87c59a..3a11068f2212f7302778c645d5dd506cde611cfa 100644 (file)
                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 */
                compatible = "atmel,at97sc3204t";
                reg = <0x29>;
        };
+
+       usbhub: usb-hub@2d {
+               compatible = "microchip,usb5744";
+               reg = <0x2d>;
+       };
+
 };
 
 &i2c2 {
        };
 };
 
+/* 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>;
+       };
 };