]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
3430SDP regulator updates
authorDavid Brownell <dbrownell@users.sourceforge.net>
Tue, 20 Jan 2009 10:54:08 +0000 (02:54 -0800)
committerTony Lindgren <tony@atomide.com>
Wed, 4 Feb 2009 19:22:18 +0000 (11:22 -0800)
For OMAP3430 SDP, link regulators to the appropriate MMC host adapters.

Note that when MMC1 is used in 8 bit mode (e.g. for an MMCplus card
or CE-ATA device), DAT4..DAT7 I/O uses a separate supply (VSIM).
But MMC_BUS_WIDTH_8 support isn't merged into the MMC framework.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/board-3430sdp.c

index 035a7244fd1032cfb3ad69e9adea9be4554271da..8a0dba65a4875b778add2c3771dec4c7dcb201bf 100644 (file)
@@ -332,6 +332,18 @@ static struct twl4030_hsmmc_info mmc[] = {
        {}      /* Terminator */
 };
 
+static struct regulator_consumer_supply sdp3430_vmmc1_supply = {
+       .supply                 = "vmmc",
+};
+
+static struct regulator_consumer_supply sdp3430_vsim_supply = {
+       .supply                 = "vmmc_dat4..7",
+};
+
+static struct regulator_consumer_supply sdp3430_vmmc2_supply = {
+       .supply                 = "vmmc",
+};
+
 static int sdp3430_twl_gpio_setup(struct device *dev,
                unsigned gpio, unsigned ngpio)
 {
@@ -342,6 +354,13 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
        mmc[1].gpio_cd = gpio + 1;
        twl4030_mmc_init(mmc);
 
+       /* link regulators to MMC adapters ... we "know" the
+        * regulators will be set up only *after* we return.
+        */
+       sdp3430_vmmc1_supply.dev = mmc[0].dev;
+       sdp3430_vsim_supply.dev = mmc[0].dev;
+       sdp3430_vmmc2_supply.dev = mmc[1].dev;
+
        /* gpio + 7 is "sub_lcd_en_bkl" (output/PWM1) */
        gpio_request(gpio + 7, "sub_lcd_en_bkl");
        gpio_direction_output(gpio + 7, 0);
@@ -517,6 +536,8 @@ static struct regulator_init_data sdp3430_vmmc1 = {
                                | REGULATOR_CHANGE_MODE
                                | REGULATOR_CHANGE_STATUS,
        },
+       .num_consumer_supplies  = 1,
+       .consumer_supplies      = &sdp3430_vmmc1_supply,
 };
 
 /* VMMC2 for MMC2 card */
@@ -530,6 +551,8 @@ static struct regulator_init_data sdp3430_vmmc2 = {
                .valid_ops_mask         = REGULATOR_CHANGE_MODE
                                        | REGULATOR_CHANGE_STATUS,
        },
+       .num_consumer_supplies  = 1,
+       .consumer_supplies      = &sdp3430_vmmc2_supply,
 };
 
 /* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
@@ -541,6 +564,8 @@ static struct regulator_init_data sdp3430_vsim = {
                                | REGULATOR_CHANGE_MODE
                                | REGULATOR_CHANGE_STATUS,
        },
+       .num_consumer_supplies  = 1,
+       .consumer_supplies      = &sdp3430_vsim_supply,
 };
 
 /* VDAC for DSS driving S-Video */