diff mbox

ARM: dts: sun9i: Enable USB support on Cubieboard4

Message ID 20171216205809.5485-1-kettenis@openbsd.org (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Kettenis Dec. 16, 2017, 8:58 p.m. UTC
On the Cubieboard4 HCI0 is directly connected to a USB connector,
and HCI2 is connected to a USB hub on the board.  HCI1 is available
with HSIC throug 2 pins on the GPIO expansion header, but left
disabled just like on the Optimus board.

This patch also adds the VBUS regulators.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
---
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 36 +++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

Comments

Chen-Yu Tsai Jan. 20, 2018, 6:12 a.m. UTC | #1
Maxime,

On Sun, Dec 17, 2017 at 4:58 AM, Mark Kettenis <kettenis@openbsd.org> wrote:
> On the Cubieboard4 HCI0 is directly connected to a USB connector,
> and HCI2 is connected to a USB hub on the board.  HCI1 is available
> with HSIC throug 2 pins on the GPIO expansion header, but left
> disabled just like on the Optimus board.
>
> This patch also adds the VBUS regulators.
>
> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>

Any thoughts on this patch?

It's similar to what I sent a few years back:

    https://patchwork.kernel.org/patch/6359461/

ChenYu

> ---
>  arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 36 +++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>
> diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
> index 4024639aa005..e38623265695 100644
> --- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
> +++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
> @@ -74,6 +74,24 @@
>                 };
>         };
>
> +       reg_usb1_vbus: usb1-vbus {
> +               compatible = "regulator-fixed";
> +               regulator-name = "usb2-drvbus";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +               enable-active-high;
> +               gpio = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
> +       };
> +
> +       reg_usb3_vbus: usb3-vbus {
> +               compatible = "regulator-fixed";
> +               regulator-name = "usb1-drvbus";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +               enable-active-high;
> +               gpio = <&pio 7 14 GPIO_ACTIVE_HIGH>; /* PH14 */
> +       };
> +
>         wifi_pwrseq: wifi-pwrseq {
>                 compatible = "mmc-pwrseq-simple";
>                 clocks = <&ac100_rtc 1>;
> @@ -83,6 +101,14 @@
>         };
>  };
>
> +&ehci0 {
> +       status = "okay";
> +};
> +
> +&ehci2 {
> +       status = "okay";
> +};
> +
>  &mmc0 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&mmc0_pins>;
> @@ -408,3 +434,13 @@
>         pinctrl-0 = <&uart0_ph_pins>;
>         status = "okay";
>  };
> +
> +&usbphy1 {
> +       phy-supply = <&reg_usb1_vbus>;
> +       status = "okay";
> +};
> +
> +&usbphy3 {
> +       phy-supply = <&reg_usb3_vbus>;
> +       status = "okay";
> +};
> --
> 2.15.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Maxime Ripard Jan. 22, 2018, 8:38 a.m. UTC | #2
On Sat, Jan 20, 2018 at 02:12:04PM +0800, Chen-Yu Tsai wrote:
> Maxime,
> 
> On Sun, Dec 17, 2017 at 4:58 AM, Mark Kettenis <kettenis@openbsd.org> wrote:
> > On the Cubieboard4 HCI0 is directly connected to a USB connector,
> > and HCI2 is connected to a USB hub on the board.  HCI1 is available
> > with HSIC throug 2 pins on the GPIO expansion header, but left
> > disabled just like on the Optimus board.
> >
> > This patch also adds the VBUS regulators.
> >
> > Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
> 
> Any thoughts on this patch?
> 
> It's similar to what I sent a few years back:
> 
>     https://patchwork.kernel.org/patch/6359461/

Given the previous discussion, I guess we should have much more
comments on how it is designed.

There was some effort to have power sequence for USB devices described
in the DT here:
https://patchwork.kernel.org/patch/9800887/

I guess pinging Peter to know the current state would be a good way
forward.

> >  arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 36 +++++++++++++++++++++++++++++
> >  1 file changed, 36 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
> > index 4024639aa005..e38623265695 100644
> > --- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
> > +++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
> > @@ -74,6 +74,24 @@
> >                 };
> >         };
> >
> > +       reg_usb1_vbus: usb1-vbus {
> > +               compatible = "regulator-fixed";
> > +               regulator-name = "usb2-drvbus";
> > +               regulator-min-microvolt = <5000000>;
> > +               regulator-max-microvolt = <5000000>;
> > +               enable-active-high;
> > +               gpio = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
> > +       };
> > +
> > +       reg_usb3_vbus: usb3-vbus {
> > +               compatible = "regulator-fixed";
> > +               regulator-name = "usb1-drvbus";
> > +               regulator-min-microvolt = <5000000>;
> > +               regulator-max-microvolt = <5000000>;
> > +               enable-active-high;
> > +               gpio = <&pio 7 14 GPIO_ACTIVE_HIGH>; /* PH14 */
> > +       };

You should also have a proper parenthood relationship here, and not
just leave these two regulators hanging around.

Maxime
diff mbox

Patch

diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 4024639aa005..e38623265695 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -74,6 +74,24 @@ 
 		};
 	};
 
+	reg_usb1_vbus: usb1-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb2-drvbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		enable-active-high;
+		gpio = <&pio 7 15 GPIO_ACTIVE_HIGH>; /* PH15 */
+	};
+
+	reg_usb3_vbus: usb3-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb1-drvbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		enable-active-high;
+		gpio = <&pio 7 14 GPIO_ACTIVE_HIGH>; /* PH14 */
+	};
+
 	wifi_pwrseq: wifi-pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		clocks = <&ac100_rtc 1>;
@@ -83,6 +101,14 @@ 
 	};
 };
 
+&ehci0 {
+	status = "okay";
+};
+
+&ehci2 {
+	status = "okay";
+};
+
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins>;
@@ -408,3 +434,13 @@ 
 	pinctrl-0 = <&uart0_ph_pins>;
 	status = "okay";
 };
+
+&usbphy1 {
+	phy-supply = <&reg_usb1_vbus>;
+	status = "okay";
+};
+
+&usbphy3 {
+	phy-supply = <&reg_usb3_vbus>;
+	status = "okay";
+};