Skip to contentSkip to conversation

ARM: sun9i: cubieboard4: Enable USB hosts and LEDs

PATCH New Chen-Yu Tsai 3 participants 10 messages May 7, 2015 – May 12, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover ARM: sun9i: cubieboard4: Enable USB hosts and LEDs

Hi Maxime,

This small series enables USB host and LED support on the Cubieboard4. We already support these on the Optimus, so it's just dts stuff.

Regards
ChenYu

Chen-Yu Tsai (2):
ARM: dts: sun9i: cubieboard4: Enable USB support
ARM: dts: sun9i: cubieboard4: Enable LEDs

 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 83 +++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

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.

---
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 60 +++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +60 -0
index 6484dcf69873..42ddc046213c 100644
@@ -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 */
+
+&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 at 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 at 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";
 };
 
+&reg_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 = <&reg_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.
+ */
+
+&usbphy3 {
+	phy-supply = <&reg_usb3_vbus>;
+	status = "okay";
+};
Signature · 1 line
2.1.4
#2 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

Hi,

Quoted 32 lines · Chen-Yu Tsai

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.

---
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 60 +++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +11 -0
index 6484dcf69873..42ddc046213c 100644
@@ -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 */
+	};
+};

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 85

Quoted 10 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +10 -0
+
+&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?

Quoted 43 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +24 -0
+
+&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 at 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 at 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";
 };
 
+&reg_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";
 };
+

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 154

Quoted 10 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +10 -0
+&usbphy1 {
+	phy-supply = <&reg_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?

Thanks,
Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150508/037b263e/attachment.sig>
#3 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

Quoted 40 lines · Maxime Ripard

Hi,

Quoted 37 lines · Chen-Yu Tsai

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.

---
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 60 +++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +16 -0
index 6484dcf69873..42ddc046213c 100644
@@ -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";
+};
+
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 85

Quoted 5 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +5 -0
+&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.

Quoted 49 lines
Quoted 49 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +30 -0
+
+&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 at 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 at 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";
 };
 
+&reg_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 = <&reg_usb1_vbus>;
+     status = "okay";
+};
+
+/*
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 154

Quoted 4 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +4 -0
+ * 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

#4 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

Quoted 13 lines · Chen-Yu Tsai
Quoted 4 lines
Quoted 4 lines

+&ehci0 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +3 -0
+     status = "okay";
+};
+
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 85

Quoted 5 lines

+&ehci2 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +4 -0
+     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?

Quoted 4 lines

usb1 (or usbphy1) == ehci/ohci0. usb0 is otg.

This numbering matches the fex files, and (mostly) matches the specs.

Ok, having this comment between ehci2 and ohci2 is confusing then :)

It's not the first board that has a hub, we usually don't really care as it's kind of obvious. Maybe we can just remove it?

Quoted 32 lines
Quoted 23 lines
Quoted 23 lines

&mmc0 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +13 -0
@@ -92,8 +130,30 @@
      status = "okay";
 };
 
+&reg_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 = <&reg_usb1_vbus>;
+     status = "okay";
+};
+
+/*
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 154

Quoted 4 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +4 -0
+ * 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?

Quoted 2 lines

Would setting "always-on" for both regulators work for you? Or maybe just the one that's used by both USB hosts?

I was more thinking of giving to the phy an additional regulator, so that it would enable both the regulators needed to power up all ports.

Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150508/3a2d6a1c/attachment.sig>
#5 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

Quoted 16 lines · Maxime Ripard
Quoted 15 lines · Chen-Yu Tsai
Quoted 4 lines
Quoted 4 lines

+&ehci0 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +3 -0
+     status = "okay";
+};
+
Quoted 8 lines

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 85

Quoted 5 lines

+&ehci2 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +4 -0
+     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.

Quoted 7 lines
Quoted 2 lines

This numbering matches the fex files, and (mostly) matches the specs.

Ok, having this comment between ehci2 and ohci2 is confusing then :)

It's not the first board that has a hub, we usually don't really care as it's kind of obvious. Maybe we can just remove it?

Why not. :)

Quoted 32 lines
Quoted 32 lines
Quoted 31 lines
Quoted 17 lines

&mmc0 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +7 -0
@@ -92,8 +130,30 @@
      status = "okay";
 };
 
+&reg_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";
 };
+

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts line 154

Quoted 10 lines
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +10 -0
+&usbphy1 {
+     phy-supply = <&reg_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?

Quoted 5 lines
Quoted 2 lines

Would setting "always-on" for both regulators work for you? Or maybe just the one that's used by both USB hosts?

I was more thinking of giving to the phy an additional regulator, so that it would enable both the regulators needed to power up all ports.

That would require adding back all the regulator-related code I removed from the phy driver before it was merged. (sigh) It's not like the regulator bindings takes a list.

I see this as more of a hardware design flaw, and we should label it as such. And it might still work for self-powered devices even if VBUS is off. The USB hub chip is always on.

ChenYu

#6 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

Quoted 18 lines · Chen-Yu Tsai
Quoted 18 lines
Quoted 17 lines
Quoted 6 lines
Quoted 6 lines

+&usbphy1 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +5 -0
+     phy-supply = <&reg_usb1_vbus>;
+     status = "okay";
+};
+
+/*
Quoted 8 lines
Quoted 4 lines

+ * 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?

Quoted 6 lines
Quoted 2 lines

I was more thinking of giving to the phy an additional regulator, so that it would enable both the regulators needed to power up all ports.

That would require adding back all the regulator-related code I removed from the phy driver before it was merged. (sigh) It's not like the regulator bindings takes a list.

Yeah, but maybe we can just add an optional device-supply property or something like that to power up the devices connected on the bus.

Quoted 2 lines

I see this as more of a hardware design flaw, and we should label it as such.

This can be seen as one, and we can debate it for some time I guess, but if the hardware guys were not making crazy stuff like that, we would run out of work pretty quickly :)

What we really need to do is find a proper and reliable way to handle this case. Whether we declare it as a flaw or not is a separate debate.

Quoted 2 lines

And it might still work for self-powered devices even if VBUS is off. The USB hub chip is always on.

That still leaves a significant amount of devices out and non functional, especially very standard devices like USB keys, keyboards or headsets that you would expect to just work.

Maxime

Signature · 10 lines
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150512/b950273a/attachment.sig>
#7 lore raw

PATCH 1/2 ARM: dts: sun9i: cubieboard4: Enable USB support

Quoted 22 lines · Maxime Ripard
Quoted 21 lines · Chen-Yu Tsai
Quoted 20 lines
Quoted 15 lines
Quoted 6 lines
Quoted 6 lines

+&usbphy1 {

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +5 -0
+     phy-supply = <&reg_usb1_vbus>;
+     status = "okay";
+};
+
+/*
Quoted 8 lines
Quoted 4 lines

+ * 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?

Quoted 2 lines

Would setting "always-on" for both regulators work for you? Or maybe just the one that's used by both USB hosts?

I was more thinking of giving to the phy an additional regulator, so that it would enable both the regulators needed to power up all ports.

Quoted 6 lines
Quoted 3 lines

That would require adding back all the regulator-related code I removed from the phy driver before it was merged. (sigh) It's not like the regulator bindings takes a list.

Yeah, but maybe we can just add an optional device-supply property or something like that to power up the devices connected on the bus.

(CC-ed Kishon)
Do we think this generic enough to go into the generic phy core?

Quoted 6 lines
Quoted 2 lines

I see this as more of a hardware design flaw, and we should label it as such.

This can be seen as one, and we can debate it for some time I guess, but if the hardware guys were not making crazy stuff like that, we would run out of work pretty quickly :)

Ah yes, but the users would be happier. :)

Quoted 10 lines

What we really need to do is find a proper and reliable way to handle this case. Whether we declare it as a flaw or not is a separate debate.

Quoted 2 lines

And it might still work for self-powered devices even if VBUS is off. The USB hub chip is always on.

That still leaves a significant amount of devices out and non functional, especially very standard devices like USB keys, keyboards or headsets that you would expect to just work.

I agree. So the question is where should this go in.

ChenYu

#8 lore raw

PATCH 2/2 ARM: dts: sun9i: cubieboard4: Enable LEDs

In reply to Chen-Yu Tsai

The Cubieboard4 has 2 controllable LEDs, 1 red and 1 green.

---
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +23 -0
index 42ddc046213c..d63ea4284adf 100644
@@ -62,6 +62,22 @@
 		stdout-path = "serial0:115200n8";
 	};
 
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_cubieboard4>;
+
+		green {
+			label = "cubieboard4:green:usr";
+			gpios = <&pio 7 17 GPIO_ACTIVE_HIGH>; /* PH17 */
+		};
+
+		red {
+			label = "cubieboard4:red:usr";
+			gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
+		};
+	};
+
 	reg_usb3_vbus: usb3-vbus {
 		compatible = "regulator-fixed";
 		pinctrl-names = "default";
@@ -89,6 +105,13 @@
 };
 
 &pio {
+	led_pins_cubieboard4: led-pins at 0 {
+		allwinner,pins = "PH6", "PH17";
+		allwinner,function = "gpio_out";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
+
 	mmc0_cd_pin_cubieboard4: mmc0_cd_pin at 0 {
 		allwinner,pins = "PH18";
 		allwinner,function = "gpio_in";
Signature · 1 line
2.1.4
#9 lore raw

cover ARM: sun9i: cubieboard4: Enable USB hosts and LEDs

In reply to Chen-Yu Tsai

Hi ChenYu,

Quoted 6 lines · Chen-Yu Tsai

Hi Maxime,

This small series enables USB host and LED support on the Cubieboard4. We already support these on the Optimus, so it's just dts stuff.

Quoted 7 lines

Regards
ChenYu

Chen-Yu Tsai (2):
ARM: dts: sun9i: cubieboard4: Enable USB support
ARM: dts: sun9i: cubieboard4: Enable LEDs

Thanks for posting these patches. I gave this series a spin on my cubieboard4 atop next-20150507 both with sunxi_defconfig and multi_v7_defconfig. Tested all four USB ports with various USB devices, and for good measure toggled the LED's :) Everything worked as expected, so feel free to add my

Quoted 7 lines
 arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 83 +++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

--
2.1.4

Cheers,

Tyler