diff options
| author | Ohad Ben-Cohen <ohad@wizery.com> | 2010-09-16 01:32:30 +0200 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2010-09-21 11:05:02 -0400 | 
| commit | 80b517f362605f2b6a6cfe086604534290aab2de (patch) | |
| tree | 6516b7401b28065b187071fab8d60fed22829187 | |
| parent | b642fde7f137566c993991fd2e7bf6b8274bf625 (diff) | |
| download | olio-linux-3.10-80b517f362605f2b6a6cfe086604534290aab2de.tar.xz olio-linux-3.10-80b517f362605f2b6a6cfe086604534290aab2de.zip  | |
omap: zoom: add mmc3/wl1271 device support
Add MMC3 support on ZOOM, which has the wl1271 device hardwired to.
The wl1271 is a 4-wire, 1.8V, embedded SDIO WLAN device with an
external IRQ line, and power-controlled by a GPIO-based fixed regulator.
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
| -rw-r--r-- | arch/arm/mach-omap2/board-zoom-peripherals.c | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index f5df9a2b146..6aa0728fa15 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c @@ -17,6 +17,7 @@  #include <linux/i2c/twl.h>  #include <linux/regulator/machine.h>  #include <linux/regulator/fixed.h> +#include <linux/wl12xx.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -29,6 +30,7 @@  #include "hsmmc.h"  #define OMAP_ZOOM_WLAN_PMENA_GPIO	(101) +#define OMAP_ZOOM_WLAN_IRQ_GPIO		(162)  /* Zoom2 has Qwerty keyboard*/  static int board_keymap[] = { @@ -185,6 +187,12 @@ static struct platform_device omap_vwlan_device = {  	},  }; +struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { +	.irq = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO), +	/* ZOOM ref clock is 26 MHz */ +	.board_ref_clock = 1, +}; +  static struct omap2_hsmmc_info mmc[] __initdata = {  	{  		.name		= "external", @@ -202,6 +210,14 @@ static struct omap2_hsmmc_info mmc[] __initdata = {  		.nonremovable	= true,  		.power_saving	= true,  	}, +	{ +		.name		= "wl1271", +		.mmc		= 3, +		.wires		= 4, +		.gpio_wp	= -EINVAL, +		.gpio_cd	= -EINVAL, +		.nonremovable	= true, +	},  	{}      /* Terminator */  }; @@ -313,6 +329,9 @@ static void enable_board_wakeup_source(void)  void __init zoom_peripherals_init(void)  { +	if (wl12xx_set_platform_data(&omap_zoom_wlan_data)) +		pr_err("error setting wl12xx data\n"); +  	omap_i2c_init();  	platform_device_register(&omap_vwlan_device);  	usb_musb_init(&musb_board_data);  |