| From 8dbc4d5ddb59f49cb3e85bccf42a4720b27a6576 Mon Sep 17 00:00:00 2001 |
| From: David Summers <beagleboard@davidjohnsummers.uk> |
| Date: Sat, 9 Mar 2019 15:39:21 +0000 |
| Subject: ARM: dts: rockchip: Fix SD card detection on rk3288-tinker |
| |
| From: David Summers <beagleboard@davidjohnsummers.uk> |
| |
| commit 8dbc4d5ddb59f49cb3e85bccf42a4720b27a6576 upstream. |
| |
| The Problem: |
| |
| On ASUS Tinker Board S, when booting from the eMMC, and there is card |
| in the sd slot, there are constant errors. |
| |
| Also when warm reboot, uboot can not access the sd slot |
| |
| Cause: |
| |
| Identified by Robin Murphy @ ARM. The Card Detect on rk3288 |
| devices is pulled up by vccio-sd; so when the regulator powers this |
| off, card detect gives spurious errors. A second problem, is during |
| power down, vccio-sd apprears to be powered down. This causes a |
| problem when warm rebooting from the sd card. This was identified by |
| Jonas Karlman. |
| |
| History: |
| |
| A common fault on these rk3288 board, which impliment the reference |
| design. |
| |
| When this arose before: |
| |
| http://lists.infradead.org/pipermail/linux-arm-kernel/2014-August/281153.html |
| |
| And Ulf and Jaehoon clearly said this was a broken card detect design, |
| which should be solved via polling |
| |
| Solution: |
| |
| Hence broken-cd is set as a property. This cures the errors. The |
| powering down of vccio-sd during reboot is cured by adding |
| regulator-boot-on. |
| |
| This solutions has been fairly widely reviewed and tested. |
| |
| Fixes: e58c5e739d6f ("ARM: dts: rockchip: move shared tinker-board nodes to a common dtsi") |
| Cc: stable@vger.kernel.org |
| [Heiko: slightly inaccurate fixes but tinker is a sbc (aka like a Pi) where |
| we can hopefully expect people not to rely on overly old stable kernels] |
| Signed-off-by: David Summers <beagleboard@davidjohnsummers.uk> |
| Reviewed-by: Jonas Karlman <jonas@kwiboo.se> |
| Tested-by: Jonas Karlman <jonas@kwiboo.se> |
| Reviewed-by: Robin Murphy <robin.murphy@arm.com> |
| Signed-off-by: Heiko Stuebner <heiko@sntech.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm/boot/dts/rk3288-tinker.dtsi | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/arch/arm/boot/dts/rk3288-tinker.dtsi |
| +++ b/arch/arm/boot/dts/rk3288-tinker.dtsi |
| @@ -254,6 +254,7 @@ |
| }; |
| |
| vccio_sd: LDO_REG5 { |
| + regulator-boot-on; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-name = "vccio_sd"; |
| @@ -430,7 +431,7 @@ |
| bus-width = <4>; |
| cap-mmc-highspeed; |
| cap-sd-highspeed; |
| - card-detect-delay = <200>; |
| + broken-cd; |
| disable-wp; /* wp not hooked up */ |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; |