From a748b9a246e31c2442777efb2b457b48bfd8dce1 Mon Sep 17 00:00:00 2001 From: David Brownell Date: Fri, 13 Mar 2009 18:04:13 +0000 Subject: [PATCH] Hook up twl4030 regulators to the relevant RX51 MMC slots. Signed-off-by: David Brownell Acked-by: Lauri Leukkunen Signed-off-by: Tony Lindgren --- arch/arm/mach-omap2/board-rx51-flash.c | 23 ---------- arch/arm/mach-omap2/board-rx51-peripherals.c | 48 +++++++++++++++++++- 2 files changed, 46 insertions(+), 25 deletions(-) diff --git a/arch/arm/mach-omap2/board-rx51-flash.c b/arch/arm/mach-omap2/board-rx51-flash.c index 39b0659b943..fe9329d2c09 100644 --- a/arch/arm/mach-omap2/board-rx51-flash.c +++ b/arch/arm/mach-omap2/board-rx51-flash.c @@ -10,34 +10,11 @@ #include #include -#include - -#include "mmc-twl4030.h" extern void __init n800_flash_init(void); -static struct twl4030_hsmmc_info mmc[] __initdata = { - { - .name = "external", - .mmc = 1, - .wires = 4, - .cover_only = true, - .gpio_cd = 160, - .gpio_wp = -EINVAL, - }, - { - .name = "internal", - .mmc = 2, - .wires = 8, - .gpio_cd = -EINVAL, - .gpio_wp = -EINVAL, - }, - {} /* Terminator */ -}; - void __init rx51_flash_init(void) { n800_flash_init(); - twl4030_mmc_init(mmc); } diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index 88f9f43c507..b86e94d5060 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c @@ -28,7 +28,10 @@ #include #include -#define SMC91X_CS 1 +#include "mmc-twl4030.h" + + +#define SMC91X_CS 1 #define SMC91X_GPIO_IRQ 54 #define SMC91X_GPIO_RESET 164 #define SMC91X_GPIO_PWRDWN 86 @@ -247,6 +250,37 @@ static struct twl4030_madc_platform_data rx51_madc_data = { .irq_line = 1, }; +static struct twl4030_hsmmc_info mmc[] = { + { + .name = "external", + .mmc = 1, + .wires = 4, + .cover_only = true, + .gpio_cd = 160, + .gpio_wp = -EINVAL, + }, + { + .name = "internal", + .mmc = 2, + .wires = 8, + .gpio_cd = -EINVAL, + .gpio_wp = -EINVAL, + }, + {} /* Terminator */ +}; + +static struct regulator_consumer_supply rx51_vmmc1_supply = { + .supply = "vmmc", +}; + +static struct regulator_consumer_supply rx51_vmmc2_supply = { + .supply = "vmmc", +}; + +static struct regulator_consumer_supply rx51_vsim_supply = { + .supply = "vmmc_aux", +}; + static struct regulator_init_data rx51_vaux1 = { .constraints = { .name = "V28", @@ -308,6 +342,8 @@ static struct regulator_init_data rx51_vmmc1 = { | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, + .num_consumer_supplies = 1, + .consumer_supplies = &rx51_vmmc1_supply, }; static struct regulator_init_data rx51_vmmc2 = { @@ -322,6 +358,8 @@ static struct regulator_init_data rx51_vmmc2 = { | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, + .num_consumer_supplies = 1, + .consumer_supplies = &rx51_vmmc2_supply, }; static struct regulator_init_data rx51_vsim = { @@ -335,6 +373,8 @@ static struct regulator_init_data rx51_vsim = { .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, + .num_consumer_supplies = 1, + .consumer_supplies = &rx51_vsim_supply, }; static struct regulator_init_data rx51_vdac = { @@ -357,7 +397,11 @@ static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n) gpio_request(gpio + 7, "speaker_en"); gpio_direction_output(gpio + 7, 1); - /* FIXME connect power supplies to devices; register MMC */ + /* set up MMC adapters, linking their regulators to them */ + twl4030_mmc_init(mmc); + rx51_vmmc1_supply.dev = mmc[0].dev; + rx51_vmmc2_supply.dev = mmc[1].dev; + rx51_vsim_supply.dev = mmc[1].dev; return 0; } -- 2.41.1