]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: renesas: rzt2h-n2h-evk: Enable USB2.0 support
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Thu, 4 Sep 2025 10:04:35 +0000 (11:04 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 12 Sep 2025 09:15:00 +0000 (11:15 +0200)
Enable USB2.0 support on RZ/T2H and RZ/N2H EVKs.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250904100435.4033858-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dts
arch/arm64/boot/dts/renesas/r9a09g087m44-rzn2h-evk.dts
arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi

index 264f7ddb8cc5dc6b908fa9d41abbe15585ae7bfc..2bf867273ad0bcaf1abd243cd4b00fbfbb2b04b5 100644 (file)
  */
 #define SD1_MICRO_SD   1
 
+/*
+ * USB Pin Configuration:
+ *
+ * This board is equipped with three USB connectors: Type-A (CN80), Mini-B
+ * (CN79), and Micro-AB (CN33). The RZ/T2H SoC has a single USB channel, so
+ * either the USB host interface or the USB function interface can be used,
+ * but not both simultaneously when using the CN79 and CN80 connectors.
+ *
+ * By default, the Type-A (CN80) and Mini-B (CN79) connectors are enabled.
+ * Configure the switches as follows:
+ *   - P00_0 - P00_2 (control signals for USB power supply): SW1[5] = ON
+ *   - USB_VBUSIN (used for USB function): SW7[7] = OFF; SW7[8] = ON
+ *   - USB_VBUSEN (used for USB_HF_VBUSEN): SW7[9] = OFF; SW7[10] = ON
+ *
+ * To enable the Micro-AB (CN33) USB OTG connector, set the following macro
+ * to 1 and configure the switches as follows:
+ *   - P00_0 - P00_2 (control signals for USB power supply): SW1[5] = ON
+ *   - USB_VBUSIN (used for USB OTG): SW7[7] = ON; SW7[8] = OFF
+ *   - USB_VBUSEN (used for USB_OTG_VBUSEN): SW7[9] = ON; SW7[10] = OFF
+ */
+#define USB_OTG                0
+
 #include "rzt2h-n2h-evk-common.dtsi"
 
 / {
                pinmux = <RZT2H_PORT_PINMUX(5, 0, 0x17)>, /* SDA */
                         <RZT2H_PORT_PINMUX(4, 7, 0x17)>; /* SCL */
        };
+
+#if USB_OTG
+       usb-exicen-hog {
+               gpio-hog;
+               gpios = <RZT2H_GPIO(0, 2) GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "usb_exicen_a";
+       };
+#endif
+
+       usb_pins: usb-pins {
+               pinmux = <RZT2H_PORT_PINMUX(0, 0, 0x13)>, /* VBUSEN */
+                        <RZT2H_PORT_PINMUX(0, 1, 0x13)>; /* OVRCUR */
+       };
 };
index 80f358fb2d742590db40a97f3e04339844c77d54..084b3a0c8052473ead253e79d510aee1f2026009 100644 (file)
  */
 #define SD1_MICRO_SD   1
 
+/*
+ * USB Pin Configuration:
+ *
+ * This board is equipped with three USB connectors: Type-A (CN7), Mini-B
+ * (CN8), and Micro-AB (CN9). The RZ/N2H SoC has a single USB channel, so
+ * either the USB host interface or the USB function interface can be used,
+ * but not both simultaneously when using the CN7 and CN8 connectors.
+ *
+ * By default, the Type-A (CN7) and Mini-B (CN8) connectors are enabled.
+ * Configure the switches as follows:
+ *   - P02_2 - P02_3 (control signals for USB power supply): DSW2[6] = OFF;
+ *     - P02_2 (used for VBUSEN): DSW14[5] = OFF; DSW14[6] = ON
+ *     - P02_3 (used for USB_OVRCUR): DSW14[1] = OFF; DSW14[2] = ON
+ *   - USB_VBUSIN (used for VBUS of CN8): DSW16[1] = OFF; DSW16[2] = ON
+ *   - USB_VBUSEN (used for USB_HF_VBUSEN): DSW16[3] = OFF; DSW16[4] = ON
+ *
+ * To enable the Micro-AB (CN9) USB OTG connector, set the following macro
+ * to 1 and configure the switches as follows:
+ *   - P02_2 - P02_3 (control signals for USB power supply): DSW2[6] = OFF;
+ *     - P02_2 (used for VBUSEN): DSW14[5] = OFF; DSW14[6] = ON
+ *     - P02_3 (used for USB_OVRCUR): DSW14[1] = OFF; DSW14[2] = ON
+ *   - USB_VBUSIN (used for VBUS for OTG): DSW16[1] = ON; DSW16[2] = OFF
+ *   - USB_VBUSEN (used for USB_OTG_VBUSEN): DSW16[3] = ON; DSW16[4] = OFF
+ *   - USB_EXICEN (used for USB OTG EXICEN): DSW14[3] = OFF; DSW14[4] = ON
+ */
+#define USB_OTG                0
+
 #include "rzt2h-n2h-evk-common.dtsi"
 
 /*
                pinmux = <RZT2H_PORT_PINMUX(3, 3, 0x17)>,
                         <RZT2H_PORT_PINMUX(3, 4, 0x17)>;
        };
+
+#if USB_OTG
+       usb-exicen-hog {
+               gpio-hog;
+               gpios = <RZT2H_GPIO(2, 4) GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "usb_exicen_a";
+       };
+#endif
+
+       usb_pins: usb-pins {
+               pinmux = <RZT2H_PORT_PINMUX(2, 2, 0x13)>, /* VBUSEN */
+                        <RZT2H_PORT_PINMUX(2, 3, 0x13)>; /* OVRCUR */
+       };
 };
index 91068042bec053d291bc182121064f3d63d21e81..5c91002c99c4837facc93ec073283aa4fa96fc93 100644 (file)
 #endif
 };
 
+&ehci {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &extal_clk {
        clock-frequency = <25000000>;
 };
 
+&hsusb {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &i2c0 {
        eeprom: eeprom@50 {
                compatible = "renesas,r1ex24016", "atmel,24c16";
        };
 };
 
+&ohci {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &pinctrl {
        /*
         * SCI0 Pin Configuration:
 };
 #endif
 
+&usb2_phy {
+       pinctrl-0 = <&usb_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
 &wdt2 {
        status = "okay";
        timeout-sec = <60>;