Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

arm64: dts: rockchip: Fix SD card support for RK3576 EVB1

When runtime suspend is enabled, the associated power domain is powered
off, which resets the registers, including the power control bit. As a result,
the card loses power during runtime suspend. The card should still be able
to process I/O with the help of mmc_blk_mq_rw_recovery(), which is suboptimal.
To address this issue, we must use vmmc-supply with a GPIO based method to
maintain power to the card. Also, add cd-gpios method to make hot-plug work
correctly during idle periods.

Fixes: f135a1a07352 ("arm64: dts: rockchip: Add rk3576 evb1 board")
Cc: stable@vger.kernel.org
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Link: https://patch.msgid.link/1768524932-163929-5-git-send-email-shawn.lin@rock-chips.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

authored by

Shawn Lin and committed by
Heiko Stuebner
7226664b d813ddc0

+22
+22
arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts
··· 223 223 vin-supply = <&vcc_3v3_s3>; 224 224 }; 225 225 226 + vcc3v3_sd: regulator-vcc-3v3-sd { 227 + compatible = "regulator-fixed"; 228 + enable-active-high; 229 + gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 230 + pinctrl-names = "default"; 231 + pinctrl-0 = <&sdmmc_pwren>; 232 + regulator-name = "vcc3v3_sd"; 233 + regulator-min-microvolt = <3300000>; 234 + regulator-max-microvolt = <3300000>; 235 + vin-supply = <&vcc_3v3_s0>; 236 + }; 237 + 226 238 vcc_ufs_s0: regulator-vcc-ufs-s0 { 227 239 compatible = "regulator-fixed"; 228 240 regulator-name = "vcc_ufs_s0"; ··· 916 904 }; 917 905 }; 918 906 907 + sdmmc { 908 + sdmmc_pwren: sdmmc-pwren { 909 + rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 910 + }; 911 + }; 912 + 919 913 usb { 920 914 usb_host_pwren: usb-host-pwren { 921 915 rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; ··· 976 958 bus-width = <4>; 977 959 cap-mmc-highspeed; 978 960 cap-sd-highspeed; 961 + cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 979 962 disable-wp; 980 963 max-frequency = <200000000>; 981 964 no-sdio; 982 965 no-mmc; 966 + pinctrl-names = "default"; 967 + pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>; 983 968 sd-uhs-sdr104; 969 + vmmc-supply = <&vcc3v3_sd>; 984 970 vqmmc-supply = <&vccio_sd_s0>; 985 971 status = "okay"; 986 972 };