struct mmc mmc;
};
+struct arasan_sdhci_priv {
+ struct sdhci_host *host;
+};
+
static int arasan_sdhci_probe(struct udevice *dev)
{
struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
- struct sdhci_host *host = dev_get_priv(dev);
+ struct arasan_sdhci_priv *priv = dev_get_priv(dev);
+ struct sdhci_host *host;
int ret;
+ host = priv->host;
+
host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD |
SDHCI_QUIRK_BROKEN_R1B;
static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
{
- struct sdhci_host *host = dev_get_priv(dev);
+ struct arasan_sdhci_priv *priv = dev_get_priv(dev);
+
+ priv->host = calloc(1, sizeof(struct sdhci_host));
+ if (priv->host == NULL)
+ return -1;
- host->name = dev->name;
- host->ioaddr = (void *)dev_get_addr(dev);
+ priv->host->name = dev->name;
+ priv->host->ioaddr = (void *)dev_get_addr(dev);
return 0;
}