Deine private structure arasan_sdhci_priv instead of sdhci_host
as private. This allows us in adding more private data  as required
for usage in driver.

Signed-off-by: Siva Durga Prasad Paladugu <siva...@xilinx.com>
---
Changes from v1:
- None
---
 drivers/mmc/zynq_sdhci.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
index 69efa38..f98089e 100644
--- a/drivers/mmc/zynq_sdhci.c
+++ b/drivers/mmc/zynq_sdhci.c
@@ -22,13 +22,20 @@ struct arasan_sdhci_plat {
        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;
 
@@ -52,10 +59,14 @@ static int arasan_sdhci_probe(struct udevice *dev)
 
 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;
 }
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to