mmc: core: add DT bindings for eMMC HS400 1.8/1.2V
[linux-2.6-microblaze.git] / drivers / mmc / core / host.c
index 49bc403..95cceae 100644 (file)
@@ -337,7 +337,7 @@ int mmc_of_parse(struct mmc_host *host)
                break;
        default:
                dev_err(host->parent,
-                       "Invalid \"bus-width\" value %ud!\n", bus_width);
+                       "Invalid \"bus-width\" value %u!\n", bus_width);
                return -EINVAL;
        }
 
@@ -419,6 +419,16 @@ int mmc_of_parse(struct mmc_host *host)
                host->caps |= MMC_CAP_SD_HIGHSPEED;
        if (of_find_property(np, "cap-mmc-highspeed", &len))
                host->caps |= MMC_CAP_MMC_HIGHSPEED;
+       if (of_find_property(np, "sd-uhs-sdr12", &len))
+               host->caps |= MMC_CAP_UHS_SDR12;
+       if (of_find_property(np, "sd-uhs-sdr25", &len))
+               host->caps |= MMC_CAP_UHS_SDR25;
+       if (of_find_property(np, "sd-uhs-sdr50", &len))
+               host->caps |= MMC_CAP_UHS_SDR50;
+       if (of_find_property(np, "sd-uhs-sdr104", &len))
+               host->caps |= MMC_CAP_UHS_SDR104;
+       if (of_find_property(np, "sd-uhs-ddr50", &len))
+               host->caps |= MMC_CAP_UHS_DDR50;
        if (of_find_property(np, "cap-power-off-card", &len))
                host->caps |= MMC_CAP_POWER_OFF_CARD;
        if (of_find_property(np, "cap-sdio-irq", &len))
@@ -429,6 +439,18 @@ int mmc_of_parse(struct mmc_host *host)
                host->pm_caps |= MMC_PM_KEEP_POWER;
        if (of_find_property(np, "enable-sdio-wakeup", &len))
                host->pm_caps |= MMC_PM_WAKE_SDIO_IRQ;
+       if (of_find_property(np, "mmc-ddr-1_8v", &len))
+               host->caps |= MMC_CAP_1_8V_DDR;
+       if (of_find_property(np, "mmc-ddr-1_2v", &len))
+               host->caps |= MMC_CAP_1_2V_DDR;
+       if (of_find_property(np, "mmc-hs200-1_8v", &len))
+               host->caps2 |= MMC_CAP2_HS200_1_8V_SDR;
+       if (of_find_property(np, "mmc-hs200-1_2v", &len))
+               host->caps2 |= MMC_CAP2_HS200_1_2V_SDR;
+       if (of_find_property(np, "mmc-hs400-1_8v", &len))
+               host->caps2 |= MMC_CAP2_HS400_1_8V | MMC_CAP2_HS200_1_8V_SDR;
+       if (of_find_property(np, "mmc-hs400-1_2v", &len))
+               host->caps2 |= MMC_CAP2_HS400_1_2V | MMC_CAP2_HS200_1_2V_SDR;
 
        return 0;