diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2019-12-06 12:36:28 +0100 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2019-12-06 12:36:28 +0100 |
commit | b9b466edb19f0f6e40d24fc9b2e0c7067a9a39cb (patch) | |
tree | d6bb16485dfa50a05f1c2083c5139ff51d7939cb | |
parent | 5f4ef4e5c4ad8793ef91f61f35a6a0195001cef5 (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.h | 2 | ||||
-rw-r--r-- | drivers/mmc/host/renesas_sdhi_core.c | 25 |
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); |