| From ec33745bccc8f336957c751f4153421cc9ef5a54 Mon Sep 17 00:00:00 2001 |
| From: Marek Szyprowski <m.szyprowski@samsung.com> |
| Date: Thu, 24 Jan 2019 13:22:57 +0100 |
| Subject: ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3 |
| |
| From: Marek Szyprowski <m.szyprowski@samsung.com> |
| |
| commit ec33745bccc8f336957c751f4153421cc9ef5a54 upstream. |
| |
| Commit 225da7e65a03 ("ARM: dts: add eMMC reset line for |
| exynos4412-odroid-common") added MMC power sequence for eMMC card of |
| Odroid X2/U3. It reused generic sd1_cd pin control configuration node |
| and only disabled pull-up. However that time the pinctrl configuration |
| was not applied during MMC power sequence driver initialization. This |
| has been changed later by commit d97a1e5d7cd2 ("mmc: pwrseq: convert to |
| proper platform device"). |
| |
| It turned out then, that the provided pinctrl configuration is not |
| correct, because the eMMC_RTSN line is being re-configured as 'special |
| function/card detect function for mmc1 controller' not the simple |
| 'output', thus the power sequence driver doesn't really set the pin |
| value. This in effect broke the reboot of Odroid X2/U3 boards. Fix this |
| by providing separate node with eMMC_RTSN pin configuration. |
| |
| Cc: <stable@vger.kernel.org> |
| Reported-by: Markus Reichl <m.reichl@fivetechno.de> |
| Suggested-by: Ulf Hansson <ulf.hansson@linaro.org> |
| Fixes: 225da7e65a03 ("ARM: dts: add eMMC reset line for exynos4412-odroid-common") |
| Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
| Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 13 ++++++------- |
| 1 file changed, 6 insertions(+), 7 deletions(-) |
| |
| --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi |
| +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi |
| @@ -49,7 +49,7 @@ |
| }; |
| |
| emmc_pwrseq: pwrseq { |
| - pinctrl-0 = <&sd1_cd>; |
| + pinctrl-0 = <&emmc_rstn>; |
| pinctrl-names = "default"; |
| compatible = "mmc-pwrseq-emmc"; |
| reset-gpios = <&gpk1 2 GPIO_ACTIVE_LOW>; |
| @@ -161,12 +161,6 @@ |
| cpu0-supply = <&buck2_reg>; |
| }; |
| |
| -/* RSTN signal for eMMC */ |
| -&sd1_cd { |
| - samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| - samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; |
| -}; |
| - |
| &pinctrl_1 { |
| gpio_power_key: power_key { |
| samsung,pins = "gpx1-3"; |
| @@ -184,6 +178,11 @@ |
| samsung,pins = "gpx3-7"; |
| samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; |
| }; |
| + |
| + emmc_rstn: emmc-rstn { |
| + samsung,pins = "gpk1-2"; |
| + samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; |
| + }; |
| }; |
| |
| &ehci { |