]> git.ipfire.org Git - thirdparty/kernel/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)
committerKrzysztof Kozlowski <krzk@kernel.org>
Mon, 26 Oct 2020 18:51:56 +0000 (19:51 +0100)
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>
arch/arm/boot/dts/exynos5410-pinctrl.dtsi
arch/arm/boot/dts/exynos5410.dtsi

index e5d0a2a4f64830f3291285e9b1a8339b9f9f9587..d0aa18443a69b4e8474ed4df18f7af161257e60d 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 60a87684b1af6b97dfb37cdc8194050aaee26ea6..584ce62361b1342e44b33310ff806b342c77d146 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 {