From 0d8657dd3056063fb115946b10157477b5c70451 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 20 Nov 2023 09:09:45 +0000
Subject: [PATCH] enable lvds 1280x800
---
kernel/drivers/mmc/host/dw_mmc.c | 29 +++++++++++++++++++++++++++--
1 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/kernel/drivers/mmc/host/dw_mmc.c b/kernel/drivers/mmc/host/dw_mmc.c
index 51dee0a..954e932 100644
--- a/kernel/drivers/mmc/host/dw_mmc.c
+++ b/kernel/drivers/mmc/host/dw_mmc.c
@@ -246,7 +246,7 @@
* ...also allow sending for SDMMC_CMD_VOLT_SWITCH where busy is
* expected.
*/
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
if (host->slot->mmc->restrict_caps & RESTRICT_CARD_TYPE_EMMC)
delay = 0;
#endif
@@ -1508,6 +1508,9 @@
switch (ios->power_mode) {
case MMC_POWER_UP:
+ if (!IS_ERR_OR_NULL(slot->host->pinctrl))
+ pinctrl_select_state(slot->host->pinctrl, slot->host->idle_state);
+
if (!IS_ERR(mmc->supply.vmmc)) {
ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc,
ios->vdd);
@@ -1524,6 +1527,9 @@
mci_writel(slot->host, PWREN, regs);
break;
case MMC_POWER_ON:
+ if (!IS_ERR_OR_NULL(slot->host->pinctrl))
+ pinctrl_select_state(slot->host->pinctrl, slot->host->normal_state);
+
if (!slot->host->vqmmc_enabled) {
if (!IS_ERR(mmc->supply.vqmmc)) {
ret = regulator_enable(mmc->supply.vqmmc);
@@ -1548,6 +1554,9 @@
break;
case MMC_POWER_OFF:
+ if (!IS_ERR_OR_NULL(slot->host->pinctrl))
+ pinctrl_select_state(slot->host->pinctrl, slot->host->idle_state);
+
/* Turn clock off before power goes down */
dw_mci_setup_bus(slot, false);
@@ -3272,6 +3281,22 @@
return ERR_PTR(ret);
}
+ host->pinctrl = devm_pinctrl_get(host->dev);
+ if (!IS_ERR(host->pinctrl)) {
+ host->normal_state = pinctrl_lookup_state(host->pinctrl, "normal");
+ if (IS_ERR(host->normal_state))
+ dev_warn(dev, "No normal pinctrl state\n");
+
+ host->idle_state = pinctrl_lookup_state(host->pinctrl, "idle");
+ if (IS_ERR(host->idle_state))
+ dev_warn(dev, "No idle pinctrl state\n");
+
+ if (!IS_ERR(host->normal_state) && !IS_ERR(host->idle_state))
+ pinctrl_select_state(host->pinctrl, host->idle_state);
+ else
+ host->pinctrl = NULL;
+ }
+
return pdata;
}
@@ -3329,7 +3354,7 @@
return ret;
}
}
-#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
+#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC
if (device_property_read_bool(host->dev, "supports-emmc")) {
if (readl_poll_timeout(host->regs + SDMMC_STATUS,
fifo_size,
--
Gitblit v1.6.2