]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on Exynos5410
authorKrzysztof Kozlowski <krzk@kernel.org>
Thu, 15 Oct 2020 18:20:42 +0000 (20:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:25:47 +0000 (11:25 +0100)
commit 3d992fd8f4e0f09c980726308d2f2725587b32d6 upstream.

The VBUS control (PWREN) and over-current pins of USB 3.0 DWC3
controllers are on Exynos5410 regular GPIOs.  This is different than for
example on Exynos5422 where these are special ETC pins with proper reset
values (pulls, functions).

Therefore these pins should be configured to enable proper USB 3.0
peripheral and host modes.  This also fixes over-current warning:

    [    6.024658] usb usb4-port1: over-current condition
    [    6.028271] usb usb3-port1: over-current condition

Fixes: cb0896562228 ("ARM: dts: exynos: Add USB to Exynos5410")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201015182044.480562-2-krzk@kernel.org
Tested-by: Gabriel Ribba Esteva <gabriel.ribbae@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/boot/dts/exynos5410-pinctrl.dtsi
arch/arm/boot/dts/exynos5410.dtsi

index 369a8a7f2105073544d52c686e423a44eff4e5fd..481ee99aa9c97fcdb7e77ae782c9428f2b0d1fec 100644 (file)
                interrupt-controller;
                #interrupt-cells = <2>;
        };
+
+       usb3_1_oc: usb3-1-oc {
+               samsung,pins = "gpk2-4", "gpk2-5";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+
+       usb3_1_vbusctrl: usb3-1-vbusctrl {
+               samsung,pins = "gpk2-6", "gpk2-7";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+
+       usb3_0_oc: usb3-0-oc {
+               samsung,pins = "gpk3-0", "gpk3-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
+
+       usb3_0_vbusctrl: usb3-0-vbusctrl {
+               samsung,pins = "gpk3-2", "gpk3-3";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+       };
 };
 
 &pinctrl_2 {
index 57fc9c949e54a807d3d6742c1970d1bbfe0258cd..95b794b1ea62e183ecd4f7628ff97a6284529ca0 100644 (file)
 &usbdrd3_0 {
        clocks = <&clock CLK_USBD300>;
        clock-names = "usbdrd30";
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>;
 };
 
 &usbdrd_phy0 {
 &usbdrd3_1 {
        clocks = <&clock CLK_USBD301>;
        clock-names = "usbdrd30";
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>;
 };
 
 &usbdrd_dwc3_1 {