Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
From 2cde6c8a7c41c13137298c19b4e104e4f5d6851c Mon Sep 17 00:00:00 2001
|
||||
From: Andre Przywara <andre.przywara@arm.com>
|
||||
Date: Wed, 13 Jul 2022 17:21:43 +0100
|
||||
Subject: [PATCH 16/90] sunxi: mmc: ignore card detect in SPL
|
||||
|
||||
The sunxi MMC code does not use the DM in the SPL, as we don't have a
|
||||
device tree available that early, also no space for it.
|
||||
This also means we cannot access the card-detect GPIO information from
|
||||
there, so we have Kconfig symbols called CONFIG_MMCx_CD_PIN, which each
|
||||
board has to define. This is a burden, also requires extra GPIO code in
|
||||
the SPL.
|
||||
As the SPL is the natural successor of the BootROM (from which we are
|
||||
loaded), we can actually ignore the CD pin completely, as this is what
|
||||
the BootROM does as well: CD GPIOs are board specific, but the BootROM
|
||||
is not, so accesses the MMC devices anyway.
|
||||
|
||||
Remove the card detect code from the non-DM implementation of the sunxi
|
||||
MMC driver, to get rid of this unneeded code.
|
||||
|
||||
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
|
||||
---
|
||||
drivers/mmc/sunxi_mmc.c | 37 ++-----------------------------------
|
||||
1 file changed, 2 insertions(+), 35 deletions(-)
|
||||
|
||||
--- a/drivers/mmc/sunxi_mmc.c
|
||||
+++ b/drivers/mmc/sunxi_mmc.c
|
||||
@@ -44,22 +44,10 @@ struct sunxi_mmc_priv {
|
||||
/* support 4 mmc hosts */
|
||||
struct sunxi_mmc_priv mmc_host[4];
|
||||
|
||||
-static int sunxi_mmc_getcd_gpio(int sdc_no)
|
||||
-{
|
||||
- switch (sdc_no) {
|
||||
- case 0: return sunxi_name_to_gpio(CONFIG_MMC0_CD_PIN);
|
||||
- case 1: return sunxi_name_to_gpio(CONFIG_MMC1_CD_PIN);
|
||||
- case 2: return sunxi_name_to_gpio(CONFIG_MMC2_CD_PIN);
|
||||
- case 3: return sunxi_name_to_gpio(CONFIG_MMC3_CD_PIN);
|
||||
- }
|
||||
- return -EINVAL;
|
||||
-}
|
||||
-
|
||||
static int mmc_resource_init(int sdc_no)
|
||||
{
|
||||
struct sunxi_mmc_priv *priv = &mmc_host[sdc_no];
|
||||
struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
||||
- int cd_pin, ret = 0;
|
||||
|
||||
debug("init mmc %d resource\n", sdc_no);
|
||||
|
||||
@@ -90,16 +78,7 @@ static int mmc_resource_init(int sdc_no)
|
||||
}
|
||||
priv->mmc_no = sdc_no;
|
||||
|
||||
- cd_pin = sunxi_mmc_getcd_gpio(sdc_no);
|
||||
- if (cd_pin >= 0) {
|
||||
- ret = gpio_request(cd_pin, "mmc_cd");
|
||||
- if (!ret) {
|
||||
- sunxi_gpio_set_pull(cd_pin, SUNXI_GPIO_PULL_UP);
|
||||
- ret = gpio_direction_input(cd_pin);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return ret;
|
||||
+ return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -523,23 +502,11 @@ static int sunxi_mmc_send_cmd_legacy(str
|
||||
return sunxi_mmc_send_cmd_common(priv, mmc, cmd, data);
|
||||
}
|
||||
|
||||
-static int sunxi_mmc_getcd_legacy(struct mmc *mmc)
|
||||
-{
|
||||
- struct sunxi_mmc_priv *priv = mmc->priv;
|
||||
- int cd_pin;
|
||||
-
|
||||
- cd_pin = sunxi_mmc_getcd_gpio(priv->mmc_no);
|
||||
- if (cd_pin < 0)
|
||||
- return 1;
|
||||
-
|
||||
- return !gpio_get_value(cd_pin);
|
||||
-}
|
||||
-
|
||||
+/* .get_cd is not needed by the SPL */
|
||||
static const struct mmc_ops sunxi_mmc_ops = {
|
||||
.send_cmd = sunxi_mmc_send_cmd_legacy,
|
||||
.set_ios = sunxi_mmc_set_ios_legacy,
|
||||
.init = sunxi_mmc_core_init,
|
||||
- .getcd = sunxi_mmc_getcd_legacy,
|
||||
};
|
||||
|
||||
struct mmc *sunxi_mmc_init(int sdc_no)
|
||||
Reference in New Issue
Block a user