diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2021-06-07 12:44:06 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-06-10 15:16:13 +0200 |
commit | 21e5f283cb72070e3132a93f711c0f75763707ba (patch) | |
tree | da63a9387aabe220fab11a78abb9e2c1510367a3 /drivers | |
parent | a035d2404e9bb4ba95806dd2a45e37c2a73dee12 (diff) | |
download | barebox-21e5f283cb72070e3132a93f711c0f75763707ba.tar.gz barebox-21e5f283cb72070e3132a93f711c0f75763707ba.tar.xz |
mci: sdhci: arasan: Use sdhci_setup_host()
Use common code instead of duplicating it in the driver.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.barebox.org/20210607104411.23071-8-s.hauer@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mci/arasan-sdhci.c | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/drivers/mci/arasan-sdhci.c b/drivers/mci/arasan-sdhci.c index 23762fa979..a50b2bd91b 100644 --- a/drivers/mci/arasan-sdhci.c +++ b/drivers/mci/arasan-sdhci.c @@ -313,32 +313,6 @@ error: return ret; } - -static void arasan_sdhci_set_mci_caps(struct arasan_sdhci_host *host) -{ - u32 caps = sdhci_read32(&host->sdhci, SDHCI_CAPABILITIES); - - if ((caps & SDHCI_CAN_VDD_180) && - !(host->quirks & SDHCI_ARASAN_QUIRK_NO_1_8_V)) - host->mci.voltages |= MMC_VDD_165_195; - if (caps & SDHCI_CAN_VDD_300) - host->mci.voltages |= MMC_VDD_29_30 | MMC_VDD_30_31; - if (caps & SDHCI_CAN_VDD_330) - host->mci.voltages |= MMC_VDD_32_33 | MMC_VDD_33_34; - - if (caps & SDHCI_CAN_DO_HISPD) - host->mci.host_caps |= (MMC_CAP_MMC_HIGHSPEED_52MHZ | - MMC_CAP_MMC_HIGHSPEED | - MMC_CAP_SD_HIGHSPEED); - - /* parse board supported bus width capabilities */ - mci_of_parse(&host->mci); - - /* limit bus widths to controller capabilities */ - if (!(caps & SDHCI_CAN_DO_8BIT)) - host->mci.host_caps &= ~MMC_CAP_8_BIT_DATA; -} - static int arasan_sdhci_probe(struct device_d *dev) { struct device_node *np = dev->device_node; @@ -393,6 +367,7 @@ static int arasan_sdhci_probe(struct device_d *dev) arasan_sdhci->sdhci.write32 = arasan_sdhci_writel; arasan_sdhci->sdhci.write16 = arasan_sdhci_writew; arasan_sdhci->sdhci.write8 = arasan_sdhci_writeb; + arasan_sdhci->sdhci.mci = mci; mci->send_cmd = arasan_sdhci_send_cmd; mci->set_ios = arasan_sdhci_set_ios; mci->init = arasan_sdhci_init; @@ -403,7 +378,10 @@ static int arasan_sdhci_probe(struct device_d *dev) mci->f_max = clk_get_rate(clk_xin); mci->f_min = 50000000 / 256; - arasan_sdhci_set_mci_caps(arasan_sdhci); + /* parse board supported bus width capabilities */ + mci_of_parse(&arasan_sdhci->mci); + + sdhci_setup_host(&arasan_sdhci->sdhci); dev->priv = arasan_sdhci; |