]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.9.163/arm-dts-exynos-fix-pinctrl-definition-for-emmc-rtsn-line-on-odroid-x2-u3.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.9.163 / arm-dts-exynos-fix-pinctrl-definition-for-emmc-rtsn-line-on-odroid-x2-u3.patch
CommitLineData
da9d5d87
GKH
1From ec33745bccc8f336957c751f4153421cc9ef5a54 Mon Sep 17 00:00:00 2001
2From: Marek Szyprowski <m.szyprowski@samsung.com>
3Date: Thu, 24 Jan 2019 13:22:57 +0100
4Subject: ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
5
6From: Marek Szyprowski <m.szyprowski@samsung.com>
7
8commit ec33745bccc8f336957c751f4153421cc9ef5a54 upstream.
9
10Commit 225da7e65a03 ("ARM: dts: add eMMC reset line for
11exynos4412-odroid-common") added MMC power sequence for eMMC card of
12Odroid X2/U3. It reused generic sd1_cd pin control configuration node
13and only disabled pull-up. However that time the pinctrl configuration
14was not applied during MMC power sequence driver initialization. This
15has been changed later by commit d97a1e5d7cd2 ("mmc: pwrseq: convert to
16proper platform device").
17
18It turned out then, that the provided pinctrl configuration is not
19correct, because the eMMC_RTSN line is being re-configured as 'special
20function/card detect function for mmc1 controller' not the simple
21'output', thus the power sequence driver doesn't really set the pin
22value. This in effect broke the reboot of Odroid X2/U3 boards. Fix this
23by providing separate node with eMMC_RTSN pin configuration.
24
25Cc: <stable@vger.kernel.org>
26Reported-by: Markus Reichl <m.reichl@fivetechno.de>
27Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
28Fixes: 225da7e65a03 ("ARM: dts: add eMMC reset line for exynos4412-odroid-common")
29Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
30Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
31Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
32
33---
34 arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 13 ++++++-------
35 1 file changed, 6 insertions(+), 7 deletions(-)
36
37--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
38+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
39@@ -70,7 +70,7 @@
40 };
41
42 emmc_pwrseq: pwrseq {
43- pinctrl-0 = <&sd1_cd>;
44+ pinctrl-0 = <&emmc_rstn>;
45 pinctrl-names = "default";
46 compatible = "mmc-pwrseq-emmc";
47 reset-gpios = <&gpk1 2 GPIO_ACTIVE_LOW>;
48@@ -161,12 +161,6 @@
49 cpu0-supply = <&buck2_reg>;
50 };
51
52-/* RSTN signal for eMMC */
53-&sd1_cd {
54- samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
55- samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
56-};
57-
58 &pinctrl_1 {
59 gpio_power_key: power_key {
60 samsung,pins = "gpx1-3";
61@@ -184,6 +178,11 @@
62 samsung,pins = "gpx3-7";
63 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
64 };
65+
66+ emmc_rstn: emmc-rstn {
67+ samsung,pins = "gpk1-2";
68+ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
69+ };
70 };
71
72 &ehci {