123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- From db5f028309ede13767e2ba356c1975ac37a4fd6c Mon Sep 17 00:00:00 2001
- From: Andre Przywara <[email protected]>
- Date: Mon, 31 Oct 2022 11:13:57 +0000
- Subject: [PATCH] arm64: dts: allwinner: h616: OrangePi Zero 2: Add USB nodes
- The OrangePi Zero 2 has one USB-A host port, VBUS is provided by
- a GPIO controlled regulator.
- The USB-C port is meant to power the board, but is also connected to
- the USB 0 port, which we configure as an MUSB peripheral.
- Signed-off-by: Andre Przywara <[email protected]>
- Reviewed-by: Jernej Skrabec <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- Signed-off-by: Jernej Skrabec <[email protected]>
- ---
- .../allwinner/sun50i-h616-orangepi-zero2.dts | 41 +++++++++++++++++++
- 1 file changed, 41 insertions(+)
- --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
- +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
- @@ -49,8 +49,24 @@
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- };
- +
- + reg_usb1_vbus: regulator-usb1-vbus {
- + compatible = "regulator-fixed";
- + regulator-name = "usb1-vbus";
- + regulator-min-microvolt = <5000000>;
- + regulator-max-microvolt = <5000000>;
- + vin-supply = <®_vcc5v>;
- + enable-active-high;
- + gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
- + };
- +};
- +
- +&ehci1 {
- + status = "okay";
- };
-
- +/* USB 2 & 3 are on headers only. */
- +
- &emac0 {
- pinctrl-names = "default";
- pinctrl-0 = <&ext_rgmii_pins>;
- @@ -76,6 +92,10 @@
- status = "okay";
- };
-
- +&ohci1 {
- + status = "okay";
- +};
- +
- &r_rsb {
- status = "okay";
-
- @@ -211,3 +231,24 @@
- pinctrl-0 = <&uart0_ph_pins>;
- status = "okay";
- };
- +
- +&usbotg {
- + /*
- + * PHY0 pins are connected to a USB-C socket, but a role switch
- + * is not implemented: both CC pins are pulled to GND.
- + * The VBUS pins power the device, so a fixed peripheral mode
- + * is the best choice.
- + * The board can be powered via GPIOs, in this case port0 *can*
- + * act as a host (with a cable/adapter ignoring CC), as VBUS is
- + * then provided by the GPIOs. Any user of this setup would
- + * need to adjust the DT accordingly: dr_mode set to "host",
- + * enabling OHCI0 and EHCI0.
- + */
- + dr_mode = "peripheral";
- + status = "okay";
- +};
- +
- +&usbphy {
- + usb1_vbus-supply = <®_usb1_vbus>;
- + status = "okay";
- +};
|