mmc: sdhci: remove the unnecessary arguments for sdhci_setup_cfg
authorJaehoon Chung <jh80.chung@samsung.com>
Tue, 26 Jul 2016 10:06:24 +0000 (19:06 +0900)
committerJaehoon Chung <jh80.chung@samsung.com>
Fri, 5 Aug 2016 02:31:07 +0000 (11:31 +0900)
Some arguments don't need to pass to sdhci_setup_cfg.
Generic variable can be used in sdhci_setup_cfg, and some arguments are
already included in sdhci_host struct.

It's enough that just pass the board specific things to sdhci_setup_cfg().
After removing the unnecessary arguments, it's more simpler than before.
It doesn't consider "Version" and "Capabilities" anymore in each SoC
driver.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/mmc/msm_sdhci.c
drivers/mmc/rockchip_sdhci.c
drivers/mmc/sdhci.c
drivers/mmc/zynq_sdhci.c
include/sdhci.h

index e90a044235df5caa805773183900f6b7f19471ae..a8cb9e249df91ef9f90f95893d148305a00497e4 100644 (file)
@@ -143,9 +143,7 @@ static int msm_sdc_probe(struct udevice *dev)
        /* Set host controller version */
        host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
 
-       caps = sdhci_readl(host, SDHCI_CAPABILITIES);
-       ret = sdhci_setup_cfg(&plat->cfg, dev->name, caps,
-                       0, 0, host->version, host->quirks, 0);
+       ret = sdhci_setup_cfg(&plat->cfg, host, 0, 0);
        host->mmc = &plat->mmc;
        if (ret)
                return ret;
index 023c29be0a7e8aa060deb99ea5011c630b44828c..624029bd20a3a94ff9ea7a958ad0f54680ef955b 100644 (file)
@@ -33,15 +33,11 @@ static int arasan_sdhci_probe(struct udevice *dev)
        struct rockchip_sdhc *prv = dev_get_priv(dev);
        struct sdhci_host *host = &prv->host;
        int ret;
-       u32 caps;
 
-       host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
        host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD;
 
-       caps = sdhci_readl(host, SDHCI_CAPABILITIES);
-       ret = sdhci_setup_cfg(&plat->cfg, dev->name, host->bus_width,
-                       caps, CONFIG_ROCKCHIP_SDHCI_MAX_FREQ, EMMC_MIN_FREQ,
-                       host->version, host->quirks, 0);
+       ret = sdhci_setup_cfg(&plat->cfg, host, CONFIG_ROCKCHIP_SDHCI_MAX_FREQ,
+                       EMMC_MIN_FREQ);
 
        host->mmc = &plat->mmc;
        if (ret)
index c275314f51bdabf9dde37e22fc9b12775fd6a98a..60108fde94618a7721d4282be0fc46b314bb6580 100644 (file)
@@ -511,18 +511,22 @@ static const struct mmc_ops sdhci_ops = {
 };
 #endif
 
-int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
-                   uint caps, u32 max_clk, u32 min_clk, uint version,
-                   uint quirks, uint host_caps)
+int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
+               u32 max_clk, u32 min_clk)
 {
-       cfg->name = name;
+       u32 caps;
+
+       caps = sdhci_readl(host, SDHCI_CAPABILITIES);
+       host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
+
+       cfg->name = host->name;
 #ifndef CONFIG_DM_MMC_OPS
        cfg->ops = &sdhci_ops;
 #endif
        if (max_clk)
                cfg->f_max = max_clk;
        else {
-               if (version >= SDHCI_SPEC_300)
+               if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300)
                        cfg->f_max = (caps & SDHCI_CLOCK_V3_BASE_MASK) >>
                                SDHCI_CLOCK_BASE_SHIFT;
                else
@@ -535,7 +539,7 @@ int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
        if (min_clk)
                cfg->f_min = min_clk;
        else {
-               if (version >= SDHCI_SPEC_300)
+               if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300)
                        cfg->f_min = cfg->f_max / SDHCI_MAX_DIV_SPEC_300;
                else
                        cfg->f_min = cfg->f_max / SDHCI_MAX_DIV_SPEC_200;
@@ -549,13 +553,13 @@ int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
                cfg->voltages |= MMC_VDD_165_195;
 
        cfg->host_caps = MMC_MODE_HS | MMC_MODE_HS_52MHz | MMC_MODE_4BIT;
-       if (version >= SDHCI_SPEC_300) {
+       if (SDHCI_GET_VERSION(host) >= SDHCI_SPEC_300) {
                if (caps & SDHCI_CAN_DO_8BIT)
                        cfg->host_caps |= MMC_MODE_8BIT;
        }
 
-       if (host_caps)
-               cfg->host_caps |= host_caps;
+       if (host->host_caps)
+               cfg->host_caps |= host->host_caps;
 
 
        cfg->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;
@@ -582,9 +586,7 @@ int add_sdhci(struct sdhci_host *host, u32 max_clk, u32 min_clk)
        }
 #endif
 
-       if (sdhci_setup_cfg(&host->cfg, host->name, caps,
-                           max_clk, min_clk, SDHCI_GET_VERSION(host),
-                           host->quirks, host->host_caps)) {
+       if (sdhci_setup_cfg(&host->cfg, host, max_clk, min_clk)) {
                printf("%s: Hardware doesn't specify base clock frequency\n",
                       __func__);
                return -EINVAL;
index 69d6151ae013e9aa4babb7b0967ca48346820c40..bf542192cec3eab574108003de2d5a94763ae766 100644 (file)
@@ -40,10 +40,8 @@ static int arasan_sdhci_probe(struct udevice *dev)
        host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
 
        caps = sdhci_readl(host, SDHCI_CAPABILITIES);
-       ret = sdhci_setup_cfg(&plat->cfg, dev->name,
-                             caps, CONFIG_ZYNQ_SDHCI_MAX_FREQ,
-                             CONFIG_ZYNQ_SDHCI_MIN_FREQ, host->version,
-                             host->quirks, 0);
+       ret = sdhci_setup_cfg(&plat->cfg, host, CONFIG_ZYNQ_SDHCI_MAX_FREQ,
+                             CONFIG_ZYNQ_SDHCI_MIN_FREQ);
        host->mmc = &plat->mmc;
        if (ret)
                return ret;
index 693ecc144ba029c6494109f984f50876dfaa406a..fcef4dc065a84cd54b65027cb95e445907f231ae 100644 (file)
@@ -367,18 +367,12 @@ static inline u8 sdhci_readb(struct sdhci_host *host, int reg)
  * See msm_sdhci.c for an example.
  *
  * @cfg:       Configuration structure to fill in (generally &plat->mmc)
- * @name:      Device name (normally dev->name)
- * @caps:      Host capabilities (MMC_MODE_...)
+ * @host:      SDHCI host structure
  * @max_clk:   Maximum supported clock speed in HZ (0 for default)
  * @min_clk:   Minimum supported clock speed in HZ (0 for default)
- * @version:   Host controller version (generally read from the
- *             SDHCI_HOST_VERSION register)
- * @quirks:    Quick flags (SDHCI_QUIRK_...)
- * @host_caps: Additional host capabilities (0 if none)
  */
-int sdhci_setup_cfg(struct mmc_config *cfg, const char *name,
-                   uint caps, u32 max_clk, u32 min_clk, uint version,
-                   uint quirks, uint host_caps);
+int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
+                   u32 max_clk, u32 min_clk);
 
 /**
  * sdhci_bind() - Set up a new MMC block device