Skip to contentSkip to conversation

ARM: dts: sun7i: Enable USB DRC on Itead Ibox

PATCH Superseded codekipper at gmail.com 4 participants 5 messages Feb 9, 2016

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

PATCH v2 1/1 ARM: dts: sun7i: Enable USB DRC on Itead Ibox

From: Marcus Cooper <[email protected]>

Enable the otg/drc usb controller on the Itead Ibox device.

Note this board has the otg-vbus connected directly to the 5v-dcc of the board, so there is no vbus0 regulator, nor vbus0-det.

---
Changes since v1:
- Added comment concerning vbus0 regulator and detection to commit message

---
 arch/arm/boot/dts/sun7i-a20-itead-ibox.dts     | 14 ++++++++++++++
 arch/arm/boot/dts/sunxi-itead-core-common.dtsi |  9 +++++++++
 2 files changed, 23 insertions(+)
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts +14 -0
index 661c21d..a512581 100644
@@ -118,8 +118,22 @@
 		allwinner,drive = <SUN4I_PINCTRL_20_MA>;
 		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 	};
+
+	usb0_id_detect_pin: usb0_id_detect_pin at 0 {
+		allwinner,pins = "PH4";
+		allwinner,function = "gpio_in";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
 };
 
 &reg_ahci_5v {
 	status = "okay";
 };
+
+&usbphy {
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb0_id_detect_pin>;
+	usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+	status = "okay";
+};
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +9 -0
index 2565d51..d22eea3 100644
@@ -88,6 +88,10 @@
 	status = "okay";
 };
 
+&otg_sram {
+	status = "okay";
+};
+
 #include "axp209.dtsi"
 
 &reg_dcdc2 {
@@ -129,6 +133,11 @@
 	status = "okay";
 };
 
+&usb_otg {
+	dr_mode = "otg";
+	status = "okay";
+};
+
 &usbphy {
 	usb1_vbus-supply = <&reg_usb1_vbus>;
 	usb2_vbus-supply = <&reg_usb2_vbus>;
Signature · 1 line
2.7.1
#1 lore raw

PATCH v2 1/1 ARM: dts: sun7i: Enable USB DRC on Itead Ibox

Jo.

Quoted 11 lines · codekipper at gmail.com

From: Marcus Cooper <[email protected]>

Enable the otg/drc usb controller on the Itead Ibox device.

Note this board has the otg-vbus connected directly to the 5v-dcc of the board, so there is no vbus0 regulator, nor vbus0-det.

---
Changes since v1:
- Added comment concerning vbus0 regulator and detection to commit message

Thanks patch looks good to me:

Regards,

Hans

Quoted 61 lines
---
  arch/arm/boot/dts/sun7i-a20-itead-ibox.dts     | 14 ++++++++++++++
  arch/arm/boot/dts/sunxi-itead-core-common.dtsi |  9 +++++++++
  2 files changed, 23 insertions(+)
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts +14 -0
index 661c21d..a512581 100644
@@ -118,8 +118,22 @@
  		allwinner,drive = <SUN4I_PINCTRL_20_MA>;
  		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  	};
+
+	usb0_id_detect_pin: usb0_id_detect_pin at 0 {
+		allwinner,pins = "PH4";
+		allwinner,function = "gpio_in";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
  };
 
  &reg_ahci_5v {
  	status = "okay";
  };
+
+&usbphy {
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb0_id_detect_pin>;
+	usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+	status = "okay";
+};
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +9 -0
index 2565d51..d22eea3 100644
@@ -88,6 +88,10 @@
  	status = "okay";
  };
 
+&otg_sram {
+	status = "okay";
+};
+
  #include "axp209.dtsi"
 
  &reg_dcdc2 {
@@ -129,6 +133,11 @@
  	status = "okay";
  };
 
+&usb_otg {
+	dr_mode = "otg";
+	status = "okay";
+};
+
  &usbphy {
  	usb1_vbus-supply = <&reg_usb1_vbus>;
  	usb2_vbus-supply = <&reg_usb2_vbus>;
#2 lore raw

PATCH v2 1/1 ARM: dts: sun7i: Enable USB DRC on Itead Ibox

In reply to codekipper at gmail.com

Hi,

Quoted 60 lines · codekipper at gmail.com

From: Marcus Cooper <[email protected]>

Enable the otg/drc usb controller on the Itead Ibox device.

Note this board has the otg-vbus connected directly to the 5v-dcc of the board, so there is no vbus0 regulator, nor vbus0-det.

---
Changes since v1:
- Added comment concerning vbus0 regulator and detection to commit message

---
 arch/arm/boot/dts/sun7i-a20-itead-ibox.dts     | 14 ++++++++++++++
 arch/arm/boot/dts/sunxi-itead-core-common.dtsi |  9 +++++++++
 2 files changed, 23 insertions(+)
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts +14 -0
index 661c21d..a512581 100644
@@ -118,8 +118,22 @@
 		allwinner,drive = <SUN4I_PINCTRL_20_MA>;
 		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
 	};
+
+	usb0_id_detect_pin: usb0_id_detect_pin at 0 {
+		allwinner,pins = "PH4";
+		allwinner,function = "gpio_in";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
 };
 
 &reg_ahci_5v {
 	status = "okay";
 };
+
+&usbphy {
+	pinctrl-names = "default";
+	pinctrl-0 = <&usb0_id_detect_pin>;
+	usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+	status = "okay";
+};
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +4 -0
index 2565d51..d22eea3 100644
@@ -88,6 +88,10 @@
 	status = "okay";
 };
 
+&otg_sram {
+	status = "okay";
+};
+
 #include "axp209.dtsi"
 
 &reg_dcdc2 {

arch/arm/boot/dts/sunxi-itead-core-common.dtsi line 137

Quoted 5 lines
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +2 -0
@@ -129,6 +133,11 @@
 	status = "okay";
 };
 
+&usb_otg {
+	dr_mode = "otg";

If VBUS is tied to 5V, without anyway to disable it, then it cannot do OTG.

The mode it can do is host.

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/20160209/0f3e8167/attachment.sig>
#3 lore raw
Quoted 14 lines · Maxime Ripard

Hi,

Quoted 11 lines · On Tue, Feb 09, 2016 at 10:29:16AM +0100…

From: Marcus Cooper <[email protected]>

Enable the otg/drc usb controller on the Itead Ibox device.

Note this board has the otg-vbus connected directly to the 5v-dcc of the board, so there is no vbus0 regulator, nor vbus0-det.

---
Changes since v1:
- Added comment concerning vbus0 regulator and detection to commit

message

Quoted 7 lines

Review

Quoted 7 lines
---
 arch/arm/boot/dts/sun7i-a20-itead-ibox.dts     | 14 ++++++++++++++
 arch/arm/boot/dts/sunxi-itead-core-common.dtsi |  9 +++++++++
 2 files changed, 23 insertions(+)
(quoted diff) +0 -0

b/arch/arm/boot/dts/sun7i-a20-itead-ibox.dts

Quoted 16 lines
Quoted 16 lines

index 661c21d..a512581 100644

arch/arm/boot/dts/sun7i-a20-itead-ibox.dts +7 -0
@@ -118,8 +118,22 @@
              allwinner,drive = <SUN4I_PINCTRL_20_MA>;
              allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
      };
+
+     usb0_id_detect_pin: usb0_id_detect_pin@0 {
+             allwinner,pins = "PH4";
+             allwinner,function = "gpio_in";
+             allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+             allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+     };
 };
 
Quoted 11 lines

Review

Quoted 11 lines
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts +7 -0
 &reg_ahci_5v {
      status = "okay";
 };
+
+&usbphy {
+     pinctrl-names = "default";
+     pinctrl-0 = <&usb0_id_detect_pin>;
+     usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+     status = "okay";
+};
(quoted diff) +0 -0

b/arch/arm/boot/dts/sunxi-itead-core-common.dtsi

Quoted 18 lines
Quoted 18 lines

index 2565d51..d22eea3 100644

arch/arm/boot/dts/sunxi-itead-core-common.dtsi +4 -0
@@ -88,6 +88,10 @@
      status = "okay";
 };
 
+&otg_sram {
+     status = "okay";
+};
+
 #include "axp209.dtsi"
 
 &reg_dcdc2 {
@@ -129,6 +133,11 @@
      status = "okay";
 };
 
Quoted 7 lines

arch/arm/boot/dts/sunxi-itead-core-common.dtsi line 137

Quoted 2 lines
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +2 -0
+&usb_otg {
+     dr_mode = "otg";

If VBUS is tied to 5V, without anyway to disable it, then it cannot do OTG.

The mode it can do is host.

This is the same patch as what was applied to cubieboard2
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts?id=b8962f7ee700580a148e05eceb2302bcfc59ffbc
which it looks like this hardware copies. I can power the Ibox using this USB socket and when I plug in a usb2ethernet device then it is detected. BR,
CK

Quoted 7 lines

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Signature · 3 lines
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
For more options, visit https://groups.google.com/d/optout.
#4 lore raw

PATCH v2 1/1 ARM: dts: sun7i: Enable USB DRC on Itead Ibox

Hi,

Quoted 69 lines · Code Kipper
Quoted 66 lines · On 9 February 2016 at 19:34, Maxime Ripard <maxime.ripard at…

Hi,

Quoted 63 lines · codekipper at gmail.com

From: Marcus Cooper <codekipper at gmail.com <mailto:[email protected]>>

Enable the otg/drc usb controller on the Itead Ibox device.

Note this board has the otg-vbus connected directly to the 5v-dcc of the board, so there is no vbus0 regulator, nor vbus0-det.

Signed-off-by Marcus Cooper <codekipper at gmail.com <mailto:[email protected]>>

---
Changes since v1:
- Added comment concerning vbus0 regulator and detection to commit message

---
 arch/arm/boot/dts/sun7i-a20-itead-ibox.dts     | 14 ++++++++++++++
 arch/arm/boot/dts/sunxi-itead-core-common.dtsi |  9 +++++++++
 2 files changed, 23 insertions(+)
arch/arm/boot/dts/sun7i-a20-itead-ibox.dts +14 -0
index 661c21d..a512581 100644
@@ -118,8 +118,22 @@
              allwinner,drive = <SUN4I_PINCTRL_20_MA>;
              allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
      };
+
+     usb0_id_detect_pin: usb0_id_detect_pin at 0 {
+             allwinner,pins = "PH4";
+             allwinner,function = "gpio_in";
+             allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+             allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+     };
 };
 
 &reg_ahci_5v {
      status = "okay";
 };
+
+&usbphy {
+     pinctrl-names = "default";
+     pinctrl-0 = <&usb0_id_detect_pin>;
+     usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
+     status = "okay";
+};
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +4 -0
index 2565d51..d22eea3 100644
@@ -88,6 +88,10 @@
      status = "okay";
 };
 
+&otg_sram {
+     status = "okay";
+};
+
 #include "axp209.dtsi"
 
 &reg_dcdc2 {
@@ -129,6 +133,11 @@
      status = "okay";
 };
 
Quoted 8 lines
Quoted 7 lines

arch/arm/boot/dts/sunxi-itead-core-common.dtsi line 137

Quoted 2 lines
arch/arm/boot/dts/sunxi-itead-core-common.dtsi +2 -0
+&usb_otg {
+     dr_mode = "otg";

If VBUS is tied to 5V, without anyway to disable it, then it cannot do OTG.

The mode it can do is host.

This is the same patch as what was applied to cubieboard2 https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts?id=b8962f7ee700580a148e05eceb2302bcfc59ffbc which it looks like this hardware copies. I can power the Ibox using this USB socket and when I plug in a usb2ethernet device then it is detected.

Right, the otg port on the cubieboard can work in otg mode just fine, as long as either the otg is the only power supply, or the 5v supplied to the power barrel comes from the same source as the otg 5v. Note that only allowing host mode does not take away this limitation as the 2 5v pins are hardwired together, so we might just as well offer otg support.

Regards,

Hans