|
@@ -22,14 +22,12 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
|
struct arasan_sdhci_plat {
|
|
|
struct mmc_config cfg;
|
|
|
struct mmc mmc;
|
|
|
- unsigned int f_max;
|
|
|
};
|
|
|
|
|
|
struct arasan_sdhci_priv {
|
|
|
struct sdhci_host *host;
|
|
|
u8 deviceid;
|
|
|
u8 bank;
|
|
|
- u8 no_1p8;
|
|
|
};
|
|
|
|
|
|
#if defined(CONFIG_ARCH_ZYNQMP)
|
|
@@ -238,8 +236,11 @@ static int arasan_sdhci_probe(struct udevice *dev)
|
|
|
host->quirks |= SDHCI_QUIRK_BROKEN_HISPD_MODE;
|
|
|
#endif
|
|
|
|
|
|
- if (priv->no_1p8)
|
|
|
- host->quirks |= SDHCI_QUIRK_NO_1_8_V;
|
|
|
+ plat->cfg.f_max = CONFIG_ZYNQ_SDHCI_MAX_FREQ;
|
|
|
+
|
|
|
+ ret = mmc_of_parse(dev, &plat->cfg);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
|
|
|
host->max_clk = clock;
|
|
|
|
|
@@ -247,7 +248,7 @@ static int arasan_sdhci_probe(struct udevice *dev)
|
|
|
host->mmc->dev = dev;
|
|
|
host->mmc->priv = host;
|
|
|
|
|
|
- ret = sdhci_setup_cfg(&plat->cfg, host, plat->f_max,
|
|
|
+ ret = sdhci_setup_cfg(&plat->cfg, host, plat->cfg.f_max,
|
|
|
CONFIG_ZYNQ_SDHCI_MIN_FREQ);
|
|
|
if (ret)
|
|
|
return ret;
|
|
@@ -258,7 +259,6 @@ static int arasan_sdhci_probe(struct udevice *dev)
|
|
|
|
|
|
static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
|
|
|
{
|
|
|
- struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
|
|
|
struct arasan_sdhci_priv *priv = dev_get_priv(dev);
|
|
|
|
|
|
priv->host = calloc(1, sizeof(struct sdhci_host));
|
|
@@ -277,10 +277,7 @@ static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
|
|
|
|
|
|
priv->deviceid = dev_read_u32_default(dev, "xlnx,device_id", -1);
|
|
|
priv->bank = dev_read_u32_default(dev, "xlnx,mio_bank", -1);
|
|
|
- priv->no_1p8 = dev_read_bool(dev, "no-1-8-v");
|
|
|
|
|
|
- plat->f_max = dev_read_u32_default(dev, "max-frequency",
|
|
|
- CONFIG_ZYNQ_SDHCI_MAX_FREQ);
|
|
|
return 0;
|
|
|
}
|
|
|
|