linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anand Moon <linux.amoon@gmail.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Kamil Debski <kamil@wypas.org>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Felipe Balbi <felipe.balbi@linux.intel.com>,
	Kukjin Kim <kgene@kernel.org>,
	Javier Martinez Canillas <javier@osg.samsung.com>,
	Linux USB Mailing List <linux-usb@vger.kernel.org>,
	"linux-samsung-soc@vger.kernel.org" 
	<linux-samsung-soc@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Felipe Balbi <balbi@kernel.org>,
	Richard Genoud <richard.genoud@gmail.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Markus Reichl <m.reichl@fivetechno.de>
Subject: Re: Exynos5422 EHCI (USB 2.0) - Odroid XU4 - port 1 resume error -110
Date: Mon, 30 Jan 2017 12:08:23 +0530	[thread overview]
Message-ID: <CANAwSgQBokKOg=Gv0JsBom1YMB43yGzQsV-cEx+qp7W_WZJqTQ@mail.gmail.com> (raw)
In-Reply-To: <CAJKOXPdFuixraNh_aZt9OMU5bEjtS81dz-mBLfWRBE6ejjeWaQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2212 bytes --]

Hi Krzysztof,

On 29 January 2017 at 19:05, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> Hi,
>
> On Odroid XU4 with an external usb2514 hub (evaluation board from SMSC
> or TI) connected to the USB2.0 port of EHCI controller, whenever I
> plug some USB device into the usb2514 hub I see errors like:
> [   73.969179] exynos-ehci 12110000.usb: port 1 resume error -110
> [   74.003259] usb 1-1: USB disconnect, device number 2
> [   74.017432] usb usb1-port1: cannot reset (err = -32)
> [   74.021141] usb usb1-port1: cannot reset (err = -32)
> [   74.026832] usb usb1-port1: cannot reset (err = -32)
> [   74.030974] usb usb1-port1: cannot reset (err = -32)
> [   74.036677] usb usb1-port1: cannot reset (err = -32)
> [   74.041919] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
> [   74.140923] usb usb1-port1: unable to enumerate USB device
>
> Flooding the console. USB device does not work.
>
> Tested:
> 1. next-20170125,
> 2. mainline v4.10-rc5-393-g53cd1ad1a68f,
> 3. Hardkernel vendor kernel 3.10
>
>
> It does not look like an issue of usb2514 but rather a combination of
> usb2514 + Exynos EHCI because:
> 1. Happens only when usb2514 hub is directly connected to the USB2.0
> port of EHCI controller.
> 2. If usb2514 is connected through other hub (like to other ports on
> the board) - everything works fine.
> 3. I tested two different usb2514 hubs - one from TI, second from
> SMSC. Both behave the same.
> 4. I had the same issue on DWC3 controller (USB 3.0 port) and in that
> case helped ENABLING bits DWC3_GUSB2PHYCFG_SUSPHY and
> DWC3_GUSB3PIPECTL_SUSPHY which is I think equal to disabling the
> snps,dis_u3_susphy_quirk quirks.
>
>
> It seems that issue is strictly related to Exynos5422 USB 2.0 driver
> (phy?) and this hub. The drivers involved:
>  - drivers/phy/phy-exynos5250-usb2.c
>  - drivers/phy/phy-samsung-usb2.c
>  - drivers/usb/host/ehci-exynos.c
>
> Any ideas?
>
> Best regards,
> Krzysztof

I feel vbus input configuration is missing in the OdroidXU4.
for both ehci 2.0 port and dwc3 controller.

id-gpio and vbus-gpio configuration is also missing.

I am just attaching small changes from my side but it's not working
correctly at my end.

-Best Regards
-Anand

[-- Attachment #2: usbvbus.patch --]
[-- Type: application/octet-stream, Size: 3126 bytes --]

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 05b9afdd..520df86 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -145,6 +145,34 @@
 			};
 		};
 	};
+
+	usb300_vbus_reg: regulator-usb300 {
+		compatible = "regulator-fixed";
+		regulator-name = "VUSB_BOOST_5V0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpy6 2 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-1 = <&usb300_vbus_en>;
+		enable-active-high;
+	};
+
+	usb301_vbus_reg: regulator-usb301 {
+		compatible = "regulator-fixed";
+		regulator-name = "VUSB_BOOST_5V1";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpg1 4 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-1 = <&usb301_vbus_en>;
+		enable-active-high;
+	};
+
+	usb-switch {
+		samsung,id-gpio = <&gpx3 1 0xf>;
+		pinctrl-names = "default";
+		pinctrl-1 = <&id2_irq>;
+	};
 };
 
 &adc {
@@ -570,6 +598,12 @@
 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
 	};
+
+	id2_irq: id2-irq {
+		samsung,pins = "gpx3-1";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
+                samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
 };
 
 &pinctrl_1 {
@@ -579,6 +613,20 @@
 		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
 		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
 	};
+
+	usb300_vbus_en: usb300-vbus-en {
+		samsung,pins = "gpy6-2";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
+
+	usb301_vbus_en: usb301-vbus-en {
+		samsung,pins = "gpg1-4";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+	};
 };
 
 &tmu_cpu0 {
@@ -607,6 +655,10 @@
 	clock-names = "rtc", "rtc_src";
 };
 
+&usbhost2 {
+	samsung,vbus-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+};
+
 &usbdrd_dwc3_0 {
 	dr_mode = "host";
 };
@@ -614,11 +666,13 @@
 /* usbdrd_dwc3_1 mode customized in each board */
 
 &usbdrd3_0 {
+	vbus-supply = <&usb300_vbus_reg>;
 	vdd33-supply = <&ldo9_reg>;
 	vdd10-supply = <&ldo11_reg>;
 };
 
 &usbdrd3_1 {
+	vbus-supply = <&usb301_vbus_reg>;
 	vdd33-supply = <&ldo9_reg>;
 	vdd10-supply = <&ldo11_reg>;
 };
diff --git a/arch/arm/boot/dts/exynos54xx.dtsi b/arch/arm/boot/dts/exynos54xx.dtsi
index 0389e8a..0ca0977 100644
--- a/arch/arm/boot/dts/exynos54xx.dtsi
+++ b/arch/arm/boot/dts/exynos54xx.dtsi
@@ -134,6 +134,9 @@
 				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
 				phy-names = "usb2-phy", "usb3-phy";
+				snps,usb3_lpm_capable;
+				snps,dis_u3_susphy_quirk;
+				snps,dis_u2_susphy_quirk;
 			};
 		};
 
@@ -154,6 +157,9 @@
 				reg = <0x12400000 0x10000>;
 				phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>;
 				phy-names = "usb2-phy", "usb3-phy";
+				snps,usb3_lpm_capable;
+				snps,dis_u3_susphy_quirk;
+				snps,dis_u2_susphy_quirk;
 			};
 		};
 

      reply	other threads:[~2017-01-30  6:38 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-29 13:35 Exynos5422 EHCI (USB 2.0) - Odroid XU4 - port 1 resume error -110 Krzysztof Kozlowski
2017-01-30  6:38 ` Anand Moon [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANAwSgQBokKOg=Gv0JsBom1YMB43yGzQsV-cEx+qp7W_WZJqTQ@mail.gmail.com' \
    --to=linux.amoon@gmail.com \
    --cc=balbi@kernel.org \
    --cc=felipe.balbi@linux.intel.com \
    --cc=javier@osg.samsung.com \
    --cc=kamil@wypas.org \
    --cc=kgene@kernel.org \
    --cc=kishon@ti.com \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.reichl@fivetechno.de \
    --cc=m.szyprowski@samsung.com \
    --cc=richard.genoud@gmail.com \
    --cc=s.nawrocki@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).