Message ID | 20241031070232.1793078-8-masterr3c0rd@epochal.quest (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | sunxi: A100/A133 second stage support | expand |
On Thu, Oct 31, 2024 at 3:03 PM Cody Eksal <masterr3c0rd@epochal.quest> wrote: > > From: Yangtao Li <frank@allwinnertech.com> > > Add USB support on A100 perf1 board, which include two USB2.0 port. > > Signed-off-by: Yangtao Li <frank@allwinnertech.com> > Signed-off-by: Cody Eksal <masterr3c0rd@epochal.quest> > --- > Changes in V2: > - Add dr_mode here, instead of in the .dtsi > > .../allwinner/sun50i-a100-allwinner-perf1.dts | 39 +++++++++++++++++++ > 1 file changed, 39 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts > index f5c5c1464482..2f8c7ee60283 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts > @@ -7,6 +7,8 @@ > > #include "sun50i-a100.dtsi" > > +#include <dt-bindings/gpio/gpio.h> > + > /{ > model = "Allwinner A100 Perf1"; > compatible = "allwinner,a100-perf1", "allwinner,sun50i-a100"; > @@ -18,6 +20,36 @@ aliases { > chosen { > stdout-path = "serial0:115200n8"; > }; > + > + reg_usb1_vbus: usb1-vbus { > + compatible = "regulator-fixed"; > + regulator-name = "usb1-vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ > + enable-active-high; > + }; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&ohci1 { > + status = "okay"; > +}; > + > +&usb_otg { > + dr_mode = "otg"; > + status = "okay"; Since you noted in the previous patch that OTG doesn't work if OHCI0/EHCI0 are enabled and probed before musb, maybe we should keep them disabled for the time being? You could leave a TODO item above the &usb_otg node. ChenYu > }; > > &pio { > @@ -178,3 +210,10 @@ &uart0 { > pinctrl-0 = <&uart0_pb_pins>; > status = "okay"; > }; > + > +&usbphy { > + usb0_id_det-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ > + usb0_vbus-supply = <®_drivevbus>; > + usb1_vbus-supply = <®_usb1_vbus>; > + status = "okay"; > +}; > -- > 2.47.0 >
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts index f5c5c1464482..2f8c7ee60283 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dts @@ -7,6 +7,8 @@ #include "sun50i-a100.dtsi" +#include <dt-bindings/gpio/gpio.h> + /{ model = "Allwinner A100 Perf1"; compatible = "allwinner,a100-perf1", "allwinner,sun50i-a100"; @@ -18,6 +20,36 @@ aliases { chosen { stdout-path = "serial0:115200n8"; }; + + reg_usb1_vbus: usb1-vbus { + compatible = "regulator-fixed"; + regulator-name = "usb1-vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ + enable-active-high; + }; +}; + +&ehci0 { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; + +&ohci0 { + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&usb_otg { + dr_mode = "otg"; + status = "okay"; }; &pio { @@ -178,3 +210,10 @@ &uart0 { pinctrl-0 = <&uart0_pb_pins>; status = "okay"; }; + +&usbphy { + usb0_id_det-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ + usb0_vbus-supply = <®_drivevbus>; + usb1_vbus-supply = <®_usb1_vbus>; + status = "okay"; +};