drivers: mmc: omap_hsmmc: Fix conversion of address to a pointer
authorMugunthan V N <mugunthanvnm@ti.com>
Mon, 4 Apr 2016 09:52:49 +0000 (15:22 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 18 Apr 2016 16:29:15 +0000 (12:29 -0400)
omap_hsmmc driver directly typecasts fdt_addr_t to a pointer.
This is not strictly correct, as it gives a build warning when
fdt_addr_t is u64. So, use map_physmem for a proper typecasts.

This is inspired by commit 167efe01bc5a9 ("dm: ns16550: Use an address
instead of a pointer for the uart base")

drivers/mmc/omap_hsmmc.c: In function ‘omap_hsmmc_ofdata_to_platdata’:
drivers/mmc/omap_hsmmc.c:776:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  priv->base_addr = (struct hsmmc *)dev_get_addr(dev);
                      ^

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
drivers/mmc/omap_hsmmc.c

index afe0b0646d352ef348fe564908ff1c4f8b0e164c..1071314157779468eddebb12f7edb789b7d133c4 100644 (file)
@@ -773,7 +773,8 @@ static int omap_hsmmc_ofdata_to_platdata(struct udevice *dev)
        struct mmc_config *cfg;
        int val;
 
-       priv->base_addr = (struct hsmmc *)dev_get_addr(dev);
+       priv->base_addr = map_physmem(dev_get_addr(dev), sizeof(struct hsmmc *),
+                                     MAP_NOCACHE);
        cfg = &priv->cfg;
 
        cfg->host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS;