diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-2430sdp.c')
| -rw-r--r-- | arch/arm/mach-omap2/board-2430sdp.c | 34 | 
1 files changed, 28 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index e0661777f59..1fa6bb896f4 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c @@ -22,6 +22,7 @@  #include <linux/mmc/host.h>  #include <linux/delay.h>  #include <linux/i2c/twl.h> +#include <linux/regulator/machine.h>  #include <linux/err.h>  #include <linux/clk.h>  #include <linux/io.h> @@ -139,15 +140,31 @@ static struct omap_board_config_kernel sdp2430_config[] __initdata = {  	{OMAP_TAG_LCD, &sdp2430_lcd_config},  }; -static void __init omap_2430sdp_init_irq(void) +static void __init omap_2430sdp_init_early(void)  { -	omap_board_config = sdp2430_config; -	omap_board_config_size = ARRAY_SIZE(sdp2430_config);  	omap2_init_common_infrastructure();  	omap2_init_common_devices(NULL, NULL); -	omap_init_irq();  } +static struct regulator_consumer_supply sdp2430_vmmc1_supplies[] = { +	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), +}; + +/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ +static struct regulator_init_data sdp2430_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	= ARRAY_SIZE(sdp2430_vmmc1_supplies), +	.consumer_supplies	= &sdp2430_vmmc1_supplies[0], +}; +  static struct twl4030_gpio_platform_data sdp2430_gpio_data = {  	.gpio_base	= OMAP_MAX_GPIO_LINES,  	.irq_base	= TWL4030_GPIO_IRQ_BASE, @@ -160,6 +177,7 @@ static struct twl4030_platform_data sdp2430_twldata = {  	/* platform_data for children goes here */  	.gpio		= &sdp2430_gpio_data, +	.vmmc1		= &sdp2430_vmmc1,  };  static struct i2c_board_info __initdata sdp2430_i2c_boardinfo[] = { @@ -226,6 +244,9 @@ static void __init omap_2430sdp_init(void)  	omap2430_mux_init(board_mux, OMAP_PACKAGE_ZAC); +	omap_board_config = sdp2430_config; +	omap_board_config_size = ARRAY_SIZE(sdp2430_config); +  	omap2430_i2c_init();  	platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices)); @@ -253,9 +274,10 @@ static void __init omap_2430sdp_map_io(void)  MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")  	/* Maintainer: Syed Khasim - Texas Instruments Inc */  	.boot_params	= 0x80000100, -	.map_io		= omap_2430sdp_map_io,  	.reserve	= omap_reserve, -	.init_irq	= omap_2430sdp_init_irq, +	.map_io		= omap_2430sdp_map_io, +	.init_early	= omap_2430sdp_init_early, +	.init_irq	= omap_init_irq,  	.init_machine	= omap_2430sdp_init,  	.timer		= &omap_timer,  MACHINE_END  |