arm64: dts: rockchip: 'Fix' nanopi4 uSD card detect
authorRobin Murphy <robin.murphy@arm.com>
Mon, 14 Jan 2019 12:05:34 +0000 (12:05 +0000)
committerHeiko Stuebner <heiko@sntech.de>
Thu, 17 Jan 2019 13:59:33 +0000 (14:59 +0100)
For whatever reason, the sdmmc_dectn function isn't working properly
as-is, and microSD insertion and removal goes unnoticed. Using the pin
as a GPIO interrupt instead is rather noisy without any debouncing, but
is good enough to make it useful until someone feels inclined to figure
out how the vendor kernel/firmware gets the dedicated function to work
with no obvious difference in the pinmux/GRF configuration. Let's also
take the opportunity to tweak the node name so that all related pins
end up grouped together in the compiled DTB.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi

index 9c72303..2d304d2 100644 (file)
                };
        };
 
-       sd {
-               sdmmc0_pwr_h: sdmmc0-pwr-h {
-                       rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-       };
-
        sdio-pwrseq {
                wifi_reg_on_h: wifi-reg_on-h {
                        rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       sdmmc {
+               sdmmc0_det_l: sdmmc0-det-l {
+                       rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               sdmmc0_pwr_h: sdmmc0-pwr-h {
+                       rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &pmu_io_domains {
        bus-width = <4>;
        cap-sd-highspeed;
        cap-mmc-highspeed;
+       cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
        disable-wp;
        pinctrl-names = "default";
-       pinctrl-0 = <&sdmmc_bus4 &sdmmc_cd &sdmmc_clk &sdmmc_cmd>;
+       pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc0_det_l>;
        sd-uhs-sdr104;
        vmmc-supply = <&vcc3v0_sd>;
        vqmmc-supply = <&vcc_sdio>;