mmc: wmt-sdmmc: Simplify wmt_set_sd_power implementation
Simplify the code to set/clear BM_SD_OFF bit: | power_inverted: 0 | power_inverted: 1 ------------------------------------------------- enable: 0 | SET BM_SD_OFF | CLEAR BM_SD_OFF ------------------------------------------------- enable: 1 | CLEAR BM_SD_OFF | SET BM_SD_OFF Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Tony Prisk <linux@prisktech.co.nz> Signed-off-by: Chris Ball <cjb@laptop.org>hifive-unleashed-5.1
parent
8776a165d1
commit
7b2399034a
|
@ -212,28 +212,14 @@ struct wmt_mci_priv {
|
||||||
|
|
||||||
static void wmt_set_sd_power(struct wmt_mci_priv *priv, int enable)
|
static void wmt_set_sd_power(struct wmt_mci_priv *priv, int enable)
|
||||||
{
|
{
|
||||||
u32 reg_tmp;
|
u32 reg_tmp = readb(priv->sdmmc_base + SDMMC_BUSMODE);
|
||||||
if (enable) {
|
|
||||||
if (priv->power_inverted) {
|
if (enable ^ priv->power_inverted)
|
||||||
reg_tmp = readb(priv->sdmmc_base + SDMMC_BUSMODE);
|
reg_tmp &= ~BM_SD_OFF;
|
||||||
writeb(reg_tmp | BM_SD_OFF,
|
else
|
||||||
priv->sdmmc_base + SDMMC_BUSMODE);
|
reg_tmp |= BM_SD_OFF;
|
||||||
} else {
|
|
||||||
reg_tmp = readb(priv->sdmmc_base + SDMMC_BUSMODE);
|
writeb(reg_tmp, priv->sdmmc_base + SDMMC_BUSMODE);
|
||||||
writeb(reg_tmp & (~BM_SD_OFF),
|
|
||||||
priv->sdmmc_base + SDMMC_BUSMODE);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (priv->power_inverted) {
|
|
||||||
reg_tmp = readb(priv->sdmmc_base + SDMMC_BUSMODE);
|
|
||||||
writeb(reg_tmp & (~BM_SD_OFF),
|
|
||||||
priv->sdmmc_base + SDMMC_BUSMODE);
|
|
||||||
} else {
|
|
||||||
reg_tmp = readb(priv->sdmmc_base + SDMMC_BUSMODE);
|
|
||||||
writeb(reg_tmp | BM_SD_OFF,
|
|
||||||
priv->sdmmc_base + SDMMC_BUSMODE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wmt_mci_read_response(struct mmc_host *mmc)
|
static void wmt_mci_read_response(struct mmc_host *mmc)
|
||||||
|
|
Loading…
Reference in New Issue