diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-omap3evm.c')
| -rw-r--r-- | arch/arm/mach-omap2/board-omap3evm.c | 32 | 
1 files changed, 22 insertions, 10 deletions
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index 003fe34c934..a659e198892 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -317,6 +317,7 @@ static struct omap2_hsmmc_info mmc[] = {  		.caps		= MMC_CAP_4_BIT_DATA,  		.gpio_cd	= -EINVAL,  		.gpio_wp	= 63, +		.deferred	= true,  	},  #ifdef CONFIG_WL12XX_PLATFORM_DATA  	{ @@ -361,9 +362,8 @@ static int omap3evm_twl_gpio_setup(struct device *dev,  	int r, lcd_bl_en;  	/* gpio + 0 is "mmc0_cd" (input/IRQ) */ -	omap_mux_init_gpio(63, OMAP_PIN_INPUT);  	mmc[0].gpio_cd = gpio + 0; -	omap2_hsmmc_init(mmc); +	omap_hsmmc_late_init(mmc);  	/*  	 * Most GPIOs are for USB OTG.  Some are mostly sent to @@ -381,7 +381,7 @@ static int omap3evm_twl_gpio_setup(struct device *dev,  	gpio_request_one(gpio + 7, GPIOF_OUT_INIT_LOW, "EN_DVI");  	/* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ -	gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; +	gpio_leds[0].gpio = gpio + TWL4030_GPIO_MAX + 1;  	platform_device_register(&leds_gpio); @@ -617,6 +617,21 @@ static struct gpio omap3_evm_ehci_gpios[] __initdata = {  	{ OMAP3_EVM_EHCI_SELECT, GPIOF_OUT_INIT_LOW,   "select EHCI port" },  }; +static void __init omap3_evm_wl12xx_init(void) +{ +#ifdef CONFIG_WL12XX_PLATFORM_DATA +	int ret; + +	/* WL12xx WLAN Init */ +	ret = wl12xx_set_platform_data(&omap3evm_wlan_data); +	if (ret) +		pr_err("error setting wl12xx data: %d\n", ret); +	ret = platform_device_register(&omap3evm_wlan_regulator); +	if (ret) +		pr_err("error registering wl12xx device: %d\n", ret); +#endif +} +  static void __init omap3_evm_init(void)  {  	omap3_evm_get_revision(); @@ -629,6 +644,9 @@ static void __init omap3_evm_init(void)  	omap_board_config = omap3_evm_config;  	omap_board_config_size = ARRAY_SIZE(omap3_evm_config); +	omap_mux_init_gpio(63, OMAP_PIN_INPUT); +	omap_hsmmc_init(mmc); +  	omap3_evm_i2c_init();  	omap_display_init(&omap3_evm_dss_data); @@ -665,13 +683,7 @@ static void __init omap3_evm_init(void)  	omap_ads7846_init(1, OMAP3_EVM_TS_GPIO, 310, NULL);  	omap3evm_init_smsc911x();  	omap3_evm_display_init(); - -#ifdef CONFIG_WL12XX_PLATFORM_DATA -	/* WL12xx WLAN Init */ -	if (wl12xx_set_platform_data(&omap3evm_wlan_data)) -		pr_err("error setting wl12xx data\n"); -	platform_device_register(&omap3evm_wlan_regulator); -#endif +	omap3_evm_wl12xx_init();  }  MACHINE_START(OMAP3EVM, "OMAP3 EVM")  |