aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-zoom-peripherals.c
diff options
context:
space:
mode:
authorOhad Ben-Cohen <ohad@wizery.com>2010-09-15 19:32:30 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-09-21 11:05:02 -0400
commit80b517f362605f2b6a6cfe086604534290aab2de (patch)
tree6516b7401b28065b187071fab8d60fed22829187 /arch/arm/mach-omap2/board-zoom-peripherals.c
parentb642fde7f137566c993991fd2e7bf6b8274bf625 (diff)
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>
Diffstat (limited to 'arch/arm/mach-omap2/board-zoom-peripherals.c')
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c19
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 f5df9a2b1465..6aa0728fa15d 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -17,6 +17,7 @@
17#include <linux/i2c/twl.h> 17#include <linux/i2c/twl.h>
18#include <linux/regulator/machine.h> 18#include <linux/regulator/machine.h>
19#include <linux/regulator/fixed.h> 19#include <linux/regulator/fixed.h>
20#include <linux/wl12xx.h>
20 21
21#include <asm/mach-types.h> 22#include <asm/mach-types.h>
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
@@ -29,6 +30,7 @@
29#include "hsmmc.h" 30#include "hsmmc.h"
30 31
31#define OMAP_ZOOM_WLAN_PMENA_GPIO (101) 32#define OMAP_ZOOM_WLAN_PMENA_GPIO (101)
33#define OMAP_ZOOM_WLAN_IRQ_GPIO (162)
32 34
33/* Zoom2 has Qwerty keyboard*/ 35/* Zoom2 has Qwerty keyboard*/
34static int board_keymap[] = { 36static int board_keymap[] = {
@@ -185,6 +187,12 @@ static struct platform_device omap_vwlan_device = {
185 }, 187 },
186}; 188};
187 189
190struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {
191 .irq = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO),
192 /* ZOOM ref clock is 26 MHz */
193 .board_ref_clock = 1,
194};
195
188static struct omap2_hsmmc_info mmc[] __initdata = { 196static struct omap2_hsmmc_info mmc[] __initdata = {
189 { 197 {
190 .name = "external", 198 .name = "external",
@@ -202,6 +210,14 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
202 .nonremovable = true, 210 .nonremovable = true,
203 .power_saving = true, 211 .power_saving = true,
204 }, 212 },
213 {
214 .name = "wl1271",
215 .mmc = 3,
216 .wires = 4,
217 .gpio_wp = -EINVAL,
218 .gpio_cd = -EINVAL,
219 .nonremovable = true,
220 },
205 {} /* Terminator */ 221 {} /* Terminator */
206}; 222};
207 223
@@ -313,6 +329,9 @@ static void enable_board_wakeup_source(void)
313 329
314void __init zoom_peripherals_init(void) 330void __init zoom_peripherals_init(void)
315{ 331{
332 if (wl12xx_set_platform_data(&omap_zoom_wlan_data))
333 pr_err("error setting wl12xx data\n");
334
316 omap_i2c_init(); 335 omap_i2c_init();
317 platform_device_register(&omap_vwlan_device); 336 platform_device_register(&omap_vwlan_device);
318 usb_musb_init(&musb_board_data); 337 usb_musb_init(&musb_board_data);