From 01e8a38985a90043abddc5c5bcd049c74bb29a53 Mon Sep 17 00:00:00 2001 From: Peter Geis Date: Sun, 19 Dec 2021 18:52:18 -0500 Subject: [PATCH 05/11] rockchip: rk356x: HACK: fix sdmmc support HACK: lock mmc0 to initial frequency and disable dw-mmc control of power line. The sdmmc on quartz64-a is powered by the sdmmc0 power line, which is active low. Even though it is set as a gpio, it still seems to be triggered by the dw-mmc driver toggling the power line. Downstream fixes this by setting this to "0" instead of "1" using kconfigs. Also, for some reason the controller will only operate at initial frequencies. Signed-off-by: Peter Geis --- arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi | 4 +++- drivers/mmc/dw_mmc.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) --- a/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi +++ b/arch/arm/dts/rk3566-quartz64-a-u-boot.dtsi @@ -13,8 +13,10 @@ }; &sdmmc0 { + max-frequency = <400000>; + bus-width = <4>; u-boot,dm-spl; - status = "okay"; + u-boot,spl-fifo-mode; }; &uart2 { --- a/drivers/mmc/dw_mmc.c +++ b/drivers/mmc/dw_mmc.c @@ -529,7 +529,8 @@ static int dwmci_init(struct mmc *mmc) if (host->board_init) host->board_init(host); - dwmci_writel(host, DWMCI_PWREN, 1); +// dwmci_writel(host, DWMCI_PWREN, 1); + dwmci_writel(host, DWMCI_PWREN, 0); if (!dwmci_wait_reset(host, DWMCI_RESET_ALL)) { debug("%s[%d] Fail-reset!!\n", __func__, __LINE__);