On Fri, May 8, 2015 at 3:46 PM, Maxime Ripard <maxime.rip...@free-electrons.com> wrote: > Hi, > > On Fri, May 08, 2015 at 12:43:56AM +0800, Chen-Yu Tsai wrote: >> The Cubieboard4 has 4 USB ports. 3 of them are connected to a GL850G >> USB hub chip on usb1. The fourth one, the lower port of 2 ports next >> to the power barrel, is directly connected to usb3. >> >> 2 power enable GPIOs are used between the 2 port groups, 1 for each. >> This raises the possibility of having no power for hub-connected port >> next to the power barrel, if usb3 is not enabled. >> >> Signed-off-by: Chen-Yu Tsai <w...@csie.org> >> --- >> arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 60 >> +++++++++++++++++++++++++++++ >> 1 file changed, 60 insertions(+) >> >> diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts >> b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts >> index 6484dcf69873..42ddc046213c 100644 >> --- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts >> +++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts >> @@ -62,6 +62,30 @@ >> stdout-path = "serial0:115200n8"; >> }; >> >> + reg_usb3_vbus: usb3-vbus { >> + compatible = "regulator-fixed"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&usb3_vbus_pin_cubieboard4>; >> + regulator-name = "usb3-vbus"; >> + regulator-min-microvolt = <5000000>; >> + regulator-max-microvolt = <5000000>; >> + enable-active-high; >> + gpio = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */ >> + }; >> +}; >> + >> +&ehci0 { >> + status = "okay"; >> +}; >> + >> +&ehci2 { >> + status = "okay"; >> +}; >> + >> +/* usb1 is connected to a GL850G USB hub chip, so no need to enable OHCI */ > > You're mentionning usb1, but I don't see it enabled anywhere, is that > a typo?
usb1 (or usbphy1) == ehci/ohci0. usb0 is otg. This numbering matches the fex files, and (mostly) matches the specs. >> + >> +&ohci2 { >> + status = "okay"; >> }; >> >> &pio { >> @@ -71,6 +95,20 @@ >> allwinner,drive = <SUN4I_PINCTRL_10_MA>; >> allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; >> }; >> + >> + usb1_vbus_pin_cubieboard4: usb1_vbus_pin@1 { >> + allwinner,pins = "PH14"; >> + allwinner,function = "gpio_out"; >> + allwinner,drive = <SUN4I_PINCTRL_10_MA>; >> + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; >> + }; >> + >> + usb3_vbus_pin_cubieboard4: usb3_vbus_pin@1 { >> + allwinner,pins = "PH15"; >> + allwinner,function = "gpio_out"; >> + allwinner,drive = <SUN4I_PINCTRL_10_MA>; >> + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; >> + }; >> }; >> >> &mmc0 { >> @@ -92,8 +130,30 @@ >> status = "okay"; >> }; >> >> +®_usb1_vbus { >> + pinctrl-0 = <&usb1_vbus_pin_cubieboard4>; >> + gpio = <&pio 7 14 GPIO_ACTIVE_HIGH>; /* PH14 */ >> + status = "okay"; >> +}; >> + >> &uart0 { >> pinctrl-names = "default"; >> pinctrl-0 = <&uart0_pins_a>; >> status = "okay"; >> }; >> + >> +&usbphy1 { >> + phy-supply = <®_usb1_vbus>; >> + status = "okay"; >> +}; >> + >> +/* >> + * Unfortunately reg_usb1_vbus also powers one of the ports from usb3's hub. >> + * One should always make sure both regulators are enabled and working for >> + * all USB ports to have power. >> + */ > > Can't we just provide the two regulators, and enable both of them so > that we know that we always have the needed regulators enabled, > disregarding which USB port is used? Would setting "always-on" for both regulators work for you? Or maybe just the one that's used by both USB hosts? ChenYu -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.