aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2019-12-06 12:36:28 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2019-12-06 12:36:28 +0100
commitb9b466edb19f0f6e40d24fc9b2e0c7067a9a39cb (patch)
treed6bb16485dfa50a05f1c2083c5139ff51d7939cb
parent5f4ef4e5c4ad8793ef91f61f35a6a0195001cef5 (diff)
mmc: renesas_sdhi_core: Convert to pinctrl_select_default_state()wip_renesas_sdhi_uhs_pinctrl
Let's drop the boilerplate code for managing the default pinctrl state and convert into using the new pinctrl_select_default_state(). Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r--drivers/mmc/host/renesas_sdhi.h2
-rw-r--r--drivers/mmc/host/renesas_sdhi_core.c25
2 files changed, 8 insertions, 19 deletions
diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h
index c0504aa90857..c1f3dc23c1d5 100644
--- a/drivers/mmc/host/renesas_sdhi.h
+++ b/drivers/mmc/host/renesas_sdhi.h
@@ -47,7 +47,7 @@ struct renesas_sdhi {
struct tmio_mmc_data mmc_data;
struct tmio_mmc_dma dma_priv;
struct pinctrl *pinctrl;
- struct pinctrl_state *pins_default, *pins_uhs;
+ struct pinctrl_state *pins_uhs;
void __iomem *scc_ctl;
u32 scc_tappos;
u32 scc_tappos_hs400;
diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c
index 4e7209e954db..fe98ea0f98cb 100644
--- a/drivers/mmc/host/renesas_sdhi_core.c
+++ b/drivers/mmc/host/renesas_sdhi_core.c
@@ -219,12 +219,11 @@ static int renesas_sdhi_start_signal_voltage_switch(struct mmc_host *mmc,
{
struct tmio_mmc_host *host = mmc_priv(mmc);
struct renesas_sdhi *priv = host_to_priv(host);
- struct pinctrl_state *pin_state;
+ struct pinctrl_state *pin_state = NULL;
int ret;
switch (ios->signal_voltage) {
case MMC_SIGNAL_VOLTAGE_330:
- pin_state = priv->pins_default;
break;
case MMC_SIGNAL_VOLTAGE_180:
pin_state = priv->pins_uhs;
@@ -233,19 +232,16 @@ static int renesas_sdhi_start_signal_voltage_switch(struct mmc_host *mmc,
return -EINVAL;
}
- /*
- * If anything is missing, assume signal voltage is fixed at
- * 3.3V and succeed/fail accordingly.
- */
- if (IS_ERR(priv->pinctrl) || IS_ERR(pin_state))
- return ios->signal_voltage ==
- MMC_SIGNAL_VOLTAGE_330 ? 0 : -EINVAL;
-
ret = mmc_regulator_set_vqmmc(host->mmc, ios);
if (ret)
return ret;
- return pinctrl_select_state(priv->pinctrl, pin_state);
+ if (pin_state)
+ ret = pinctrl_select_state(priv->pinctrl, priv->pins_uhs);
+ else
+ ret = pinctrl_select_default_state(mmc_dev(mmc));
+
+ return ret;
}
static int renesas_sdhi_sd_uhs_init(struct tmio_mmc_host *host,
@@ -268,13 +264,6 @@ static int renesas_sdhi_sd_uhs_init(struct tmio_mmc_host *host,
goto err;
}
- priv->pins_default = pinctrl_lookup_state(priv->pinctrl,
- PINCTRL_STATE_DEFAULT);
- if (IS_ERR(priv->pins_default)) {
- err = PTR_ERR(priv->pins_default);
- goto err;
- }
-
priv->pins_uhs = pinctrl_lookup_state(priv->pinctrl, "state_uhs");
if (IS_ERR(priv->pins_uhs)) {
err = PTR_ERR(priv->pins_uhs);