mmc: omap_hsmmc: add support for CONFIG_BLK
authorJean-Jacques Hiblot <jjhiblot@ti.com>
Wed, 22 Mar 2017 15:00:34 +0000 (16:00 +0100)
committerJaehoon Chung <jh80.chung@samsung.com>
Thu, 30 Mar 2017 05:19:58 +0000 (14:19 +0900)
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
drivers/mmc/omap_hsmmc.c

index 104129f4cddf94e2f03beb44fdfb8d0668365366..83dda09c1feb8611341aebbe60f0f7e997742b0d 100644 (file)
@@ -58,6 +58,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 struct omap_hsmmc_plat {
        struct mmc_config cfg;
+       struct mmc mmc;
 };
 
 struct omap_hsmmc_data {
@@ -814,6 +815,15 @@ static int omap_hsmmc_ofdata_to_platdata(struct udevice *dev)
        return 0;
 }
 
+#ifdef CONFIG_BLK
+
+static int omap_hsmmc_bind(struct udevice *dev)
+{
+       struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
+
+       return mmc_bind(dev, &plat->mmc, &plat->cfg);
+}
+#endif
 static int omap_hsmmc_probe(struct udevice *dev)
 {
        struct omap_hsmmc_plat *plat = dev_get_platdata(dev);
@@ -825,9 +835,13 @@ static int omap_hsmmc_probe(struct udevice *dev)
        cfg->name = "OMAP SD/MMC";
        cfg->ops = &omap_hsmmc_ops;
 
+#ifdef CONFIG_BLK
+       mmc = &plat->mmc;
+#else
        mmc = mmc_create(cfg, priv);
        if (mmc == NULL)
                return -1;
+#endif
 
 #ifdef OMAP_HSMMC_USE_GPIO
        gpio_request_by_name(dev, "cd-gpios", 0, &priv->cd_gpio, GPIOD_IS_IN);
@@ -852,6 +866,9 @@ U_BOOT_DRIVER(omap_hsmmc) = {
        .id     = UCLASS_MMC,
        .of_match = omap_hsmmc_ids,
        .ofdata_to_platdata = omap_hsmmc_ofdata_to_platdata,
+#ifdef CONFIG_BLK
+       .bind = omap_hsmmc_bind,
+#endif
        .probe  = omap_hsmmc_probe,
        .priv_auto_alloc_size = sizeof(struct omap_hsmmc_data),
        .platdata_auto_alloc_size = sizeof(struct omap_hsmmc_plat),