Defining card-detect and write-protect GPIO pins in Odroid XU SD Card does not change anything from functional point of view - dw-mmc driver was reading the state from registers. Adding cd-gpios and wp-gpios properties changes only internal driver behavior to access the pins directly. Add them to DTS only to comprehensively describe the hardware. Minor benefit is that write-protect pin configuration makes sure that it will be properly pulled up to indicate write access. This also removes debug messages: dwmmc_exynos 12220000.mmc: No GPIO consumer cd found dwmmc_exynos 12220000.mmc: No GPIO consumer wp found Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> --- arch/arm/boot/dts/exynos5410-odroidxu.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts index a2046f5f998c..dae360f29a47 100644 --- a/arch/arm/boot/dts/exynos5410-odroidxu.dts +++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts @@ -525,12 +525,14 @@ &mmc_2 { status = "okay"; + wp-gpios = <&gpm5 0 GPIO_ACTIVE_LOW>; + cd-gpios = <&gpc2 2 GPIO_ACTIVE_LOW>; card-detect-delay = <200>; samsung,dw-mshc-ciu-div = <3>; samsung,dw-mshc-sdr-timing = <0 4>; samsung,dw-mshc-ddr-timing = <0 2>; pinctrl-names = "default"; - pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4 &sd2_wp>; bus-width = <4>; cap-sd-highspeed; vmmc-supply = <&ldo21_reg>; @@ -573,6 +575,14 @@ samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; }; + + sd2_wp: sd2-wp { + samsung,pins = "gpm5-0"; + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; + /* Pin is floating so pull it up to disable write-protect */ + samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; + samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>; + }; }; &pwm { -- 2.17.1