From: Doug Anderson <dianders@chromium.org> To: Ulf Hansson <ulf.hansson@linaro.org>, Heiko Stuebner <heiko@sntech.de>, Jaehoon Chung <jh80.chung@samsung.com>, Seungwon Jeon <tgih.jun@samsung.com> Cc: Mark Brown <broonie@kernel.org>, Alexandru Stan <amstan@chromium.org>, Alim Akhtar <alim.akhtar@samsung.com>, Sonny Rao <sonnyrao@chromium.org>, Andrew Bresticker <abrestic@chromium.org>, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Doug Anderson <dianders@chromium.org>, chris@printf.net, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/3] mmc: dw_mmc: Use mmc_regulator_set_vqmmc in start_signal_voltage_switch Date: Mon, 15 Dec 2014 15:25:28 -0800 [thread overview] Message-ID: <1418685929-13096-2-git-send-email-dianders@chromium.org> (raw) In-Reply-To: <1418685929-13096-1-git-send-email-dianders@chromium.org> We've introduced a new helper in the MMC core: mmc_regulator_set_vqmmc(). Let's use this in dw_mmc. Using this new helper has some advantages: 1. We get the mmc_regulator_set_vqmmc() behavior of trying to match VQMMC and VMMC when the signal voltage is 3.3V. This ensures max compatibility. 2. We get rid of a few more warnings when probing unsupported voltages. 3. We get rid of some non-dw_mmc specific code in dw_mmc. Signed-off-by: Doug Anderson <dianders@chromium.org> --- Changes in v2: None drivers/mmc/host/dw_mmc.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 67c0451..4ae800c 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -1160,8 +1160,6 @@ static int dw_mci_switch_voltage(struct mmc_host *mmc, struct mmc_ios *ios) struct dw_mci *host = slot->host; u32 uhs; u32 v18 = SDMMC_UHS_18V << slot->id; - int min_uv, max_uv; - int ret; /* * Program the voltage. Note that some instances of dw_mmc may use @@ -1170,24 +1168,11 @@ static int dw_mci_switch_voltage(struct mmc_host *mmc, struct mmc_ios *ios) */ uhs = mci_readl(host, UHS_REG); if (ios->signal_voltage == MMC_SIGNAL_VOLTAGE_330) { - min_uv = 2700000; - max_uv = 3600000; uhs &= ~v18; } else { - min_uv = 1700000; - max_uv = 1950000; uhs |= v18; } - if (!IS_ERR(mmc->supply.vqmmc)) { - ret = regulator_set_voltage(mmc->supply.vqmmc, min_uv, max_uv); - - if (ret) { - dev_dbg(&mmc->class_dev, - "Regulator set error %d: %d - %d\n", - ret, min_uv, max_uv); - return ret; - } - } + mmc_regulator_set_vqmmc(mmc, ios); mci_writel(host, UHS_REG, uhs); return 0; -- 2.2.0.rc0.207.ga3a616c
WARNING: multiple messages have this Message-ID (diff)
From: dianders@chromium.org (Doug Anderson) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 2/3] mmc: dw_mmc: Use mmc_regulator_set_vqmmc in start_signal_voltage_switch Date: Mon, 15 Dec 2014 15:25:28 -0800 [thread overview] Message-ID: <1418685929-13096-2-git-send-email-dianders@chromium.org> (raw) In-Reply-To: <1418685929-13096-1-git-send-email-dianders@chromium.org> We've introduced a new helper in the MMC core: mmc_regulator_set_vqmmc(). Let's use this in dw_mmc. Using this new helper has some advantages: 1. We get the mmc_regulator_set_vqmmc() behavior of trying to match VQMMC and VMMC when the signal voltage is 3.3V. This ensures max compatibility. 2. We get rid of a few more warnings when probing unsupported voltages. 3. We get rid of some non-dw_mmc specific code in dw_mmc. Signed-off-by: Doug Anderson <dianders@chromium.org> --- Changes in v2: None drivers/mmc/host/dw_mmc.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 67c0451..4ae800c 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -1160,8 +1160,6 @@ static int dw_mci_switch_voltage(struct mmc_host *mmc, struct mmc_ios *ios) struct dw_mci *host = slot->host; u32 uhs; u32 v18 = SDMMC_UHS_18V << slot->id; - int min_uv, max_uv; - int ret; /* * Program the voltage. Note that some instances of dw_mmc may use @@ -1170,24 +1168,11 @@ static int dw_mci_switch_voltage(struct mmc_host *mmc, struct mmc_ios *ios) */ uhs = mci_readl(host, UHS_REG); if (ios->signal_voltage == MMC_SIGNAL_VOLTAGE_330) { - min_uv = 2700000; - max_uv = 3600000; uhs &= ~v18; } else { - min_uv = 1700000; - max_uv = 1950000; uhs |= v18; } - if (!IS_ERR(mmc->supply.vqmmc)) { - ret = regulator_set_voltage(mmc->supply.vqmmc, min_uv, max_uv); - - if (ret) { - dev_dbg(&mmc->class_dev, - "Regulator set error %d: %d - %d\n", - ret, min_uv, max_uv); - return ret; - } - } + mmc_regulator_set_vqmmc(mmc, ios); mci_writel(host, UHS_REG, uhs); return 0; -- 2.2.0.rc0.207.ga3a616c
next prev parent reply other threads:[~2014-12-15 23:26 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-12-15 23:25 [PATCH v2 1/3] mmc: core: Add mmc_regulator_set_vqmmc() Doug Anderson 2014-12-15 23:25 ` Doug Anderson 2014-12-15 23:25 ` Doug Anderson [this message] 2014-12-15 23:25 ` [PATCH v2 2/3] mmc: dw_mmc: Use mmc_regulator_set_vqmmc in start_signal_voltage_switch Doug Anderson 2014-12-15 23:44 ` Andrew Bresticker 2014-12-15 23:44 ` Andrew Bresticker 2014-12-15 23:44 ` Andrew Bresticker 2014-12-16 0:09 ` Doug Anderson 2014-12-16 0:09 ` Doug Anderson 2014-12-16 0:09 ` Doug Anderson 2014-12-15 23:25 ` [PATCH v2 3/3] ARM: dts: Specify VMMC and VQMMC on rk3288-evb Doug Anderson 2014-12-15 23:25 ` Doug Anderson 2014-12-15 23:42 ` [PATCH v2 1/3] mmc: core: Add mmc_regulator_set_vqmmc() Andrew Bresticker 2014-12-15 23:42 ` Andrew Bresticker 2014-12-15 23:42 ` Andrew Bresticker
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1418685929-13096-2-git-send-email-dianders@chromium.org \ --to=dianders@chromium.org \ --cc=abrestic@chromium.org \ --cc=alim.akhtar@samsung.com \ --cc=amstan@chromium.org \ --cc=broonie@kernel.org \ --cc=chris@printf.net \ --cc=heiko@sntech.de \ --cc=jh80.chung@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=sonnyrao@chromium.org \ --cc=tgih.jun@samsung.com \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.