SD/MMC driver requires an optional vmmc regulator. Enable this regulator
for Origen board.

Signed-off-by: Tushar Behera <[email protected]>
---
 arch/arm/mach-exynos/mach-origen.c |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-exynos/mach-origen.c 
b/arch/arm/mach-exynos/mach-origen.c
index 5e34b9c..4d290e8 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -20,6 +20,7 @@
 #include <linux/gpio_keys.h>
 #include <linux/i2c.h>
 #include <linux/regulator/machine.h>
+#include <linux/regulator/fixed.h>
 #include <linux/mfd/max8997.h>
 #include <linux/lcd.h>
 #include <linux/rfkill-gpio.h>
@@ -65,6 +66,10 @@
                                 S5PV210_UFCON_TXTRIG4 |        \
                                 S5PV210_UFCON_RXTRIG4)
 
+enum fixed_regulator_id {
+       FIXED_REG_ID_MMC = 0,
+};
+
 static struct s3c2410_uartcfg origen_uartcfgs[] __initdata = {
        [0] = {
                .hwport         = 0,
@@ -475,6 +480,36 @@ static struct i2c_board_info i2c0_devs[] __initdata = {
        },
 };
 
+static struct regulator_consumer_supply mmc_supplies[] = {
+       REGULATOR_SUPPLY("vmmc", "exynos4-sdhci.0"),
+       REGULATOR_SUPPLY("vmmc", "exynos4-sdhci.2"),
+};
+
+static struct regulator_init_data mmc_fixed_voltage_init_data = {
+       .constraints            = {
+               .name           = "VMEM_VDD_2.8V",
+               .valid_ops_mask = REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(mmc_supplies),
+       .consumer_supplies      = mmc_supplies,
+};
+
+static struct fixed_voltage_config mmc_fixed_voltage_config = {
+       .supply_name            = "MMC_POWER_EN",
+       .microvolts             = 2800000,
+       .gpio                   = EXYNOS4_GPX1(1),
+       .enable_high            = true,
+       .init_data              = &mmc_fixed_voltage_init_data,
+};
+
+static struct platform_device mmc_fixed_voltage = {
+       .name                   = "reg-fixed-voltage",
+       .id                     = FIXED_REG_ID_MMC,
+       .dev                    = {
+               .platform_data  = &mmc_fixed_voltage_config,
+       },
+};
+
 static struct s3c_sdhci_platdata origen_hsmmc0_pdata __initdata = {
        .cd_type                = S3C_SDHCI_CD_INTERNAL,
 };
@@ -690,6 +725,7 @@ static struct platform_device origen_device_bluetooth = {
 };
 
 static struct platform_device *origen_devices[] __initdata = {
+       &mmc_fixed_voltage,
        &s3c_device_hsmmc2,
        &s3c_device_hsmmc0,
        &s3c_device_i2c0,
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to