ARM: OMAP3: pandora: setup regulator framework for MMC
Setup regulators for MMC1 and MMC2 to get those SD slots working again. Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> CC: David Brownell <david-b@pacbell.net> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
Родитель
bb3b9d8eb9
Коммит
64f535a87c
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl4030.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -70,6 +71,14 @@ static struct omap_uart_config omap3pandora_uart_config __initdata = {
|
|||
.enabled_uarts = (1 << 2), /* UART3 */
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply pandora_vmmc1_supply = {
|
||||
.supply = "vmmc",
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply pandora_vmmc2_supply = {
|
||||
.supply = "vmmc",
|
||||
};
|
||||
|
||||
static int omap3pandora_twl_gpio_setup(struct device *dev,
|
||||
unsigned gpio, unsigned ngpio)
|
||||
{
|
||||
|
@ -78,6 +87,10 @@ static int omap3pandora_twl_gpio_setup(struct device *dev,
|
|||
omap3pandora_mmc[1].gpio_cd = gpio + 1;
|
||||
twl4030_mmc_init(omap3pandora_mmc);
|
||||
|
||||
/* link regulators to MMC adapters */
|
||||
pandora_vmmc1_supply.dev = omap3pandora_mmc[0].dev;
|
||||
pandora_vmmc2_supply.dev = omap3pandora_mmc[1].dev;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -88,6 +101,36 @@ static struct twl4030_gpio_platform_data omap3pandora_gpio_data = {
|
|||
.setup = omap3pandora_twl_gpio_setup,
|
||||
};
|
||||
|
||||
/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
|
||||
static struct regulator_init_data pandora_vmmc1 = {
|
||||
.constraints = {
|
||||
.min_uV = 1850000,
|
||||
.max_uV = 3150000,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &pandora_vmmc1_supply,
|
||||
};
|
||||
|
||||
/* VMMC2 for MMC2 pins CMD, CLK, DAT0..DAT3 (max 100 mA) */
|
||||
static struct regulator_init_data pandora_vmmc2 = {
|
||||
.constraints = {
|
||||
.min_uV = 1850000,
|
||||
.max_uV = 3150000,
|
||||
.valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
| REGULATOR_MODE_STANDBY,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
| REGULATOR_CHANGE_MODE
|
||||
| REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = 1,
|
||||
.consumer_supplies = &pandora_vmmc2_supply,
|
||||
};
|
||||
|
||||
static struct twl4030_usb_data omap3pandora_usb_data = {
|
||||
.usb_mode = T2_USB_MODE_ULPI,
|
||||
};
|
||||
|
@ -97,6 +140,8 @@ static struct twl4030_platform_data omap3pandora_twldata = {
|
|||
.irq_end = TWL4030_IRQ_END,
|
||||
.gpio = &omap3pandora_gpio_data,
|
||||
.usb = &omap3pandora_usb_data,
|
||||
.vmmc1 = &pandora_vmmc1,
|
||||
.vmmc2 = &pandora_vmmc2,
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata omap3pandora_i2c_boardinfo[] = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче