From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-fx0-f46.google.com ([209.85.161.46]:43673 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754879Ab0HKSWY (ORCPT ); Wed, 11 Aug 2010 14:22:24 -0400 From: Ohad Ben-Cohen To: , , Cc: Ido Yariv , Mark Brown , , Chikkature Rajashekar Madhusudhan , Luciano Coelho , , San Mehat , Roger Quadros , Tony Lindgren , Nicolas Pitre , Pandita Vikram , Kalle Valo , Ohad Ben-Cohen Subject: [PATCH v4 8/8] omap: zoom: add mmc3/wl1271 device support Date: Wed, 11 Aug 2010 21:21:53 +0300 Message-Id: <1281550913-17633-9-git-send-email-ohad@wizery.com> In-Reply-To: <1281550913-17633-1-git-send-email-ohad@wizery.com> References: <1281550913-17633-1-git-send-email-ohad@wizery.com> Sender: linux-wireless-owner@vger.kernel.org List-ID: 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 --- arch/arm/mach-omap2/board-zoom-peripherals.c | 34 ++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index de88635..625ae56 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include #include @@ -29,6 +31,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 +188,28 @@ static struct platform_device omap_vwlan_device = { }, }; +struct wl12xx_platform_data omap_zoom_wlan_data = { + /* ZOOM ref clock is 26 MHz */ + .board_ref_clock = 1, +}; + +static struct resource omap_zoom_wl1271_resources[] = { + { + .start = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO), + .end = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO), + .flags = IORESOURCE_IRQ, + } +}; +static struct platform_device omap_zoom_wl1271 = { + .name = "wl1271_plat.2", + .id = -1, + .resource = omap_zoom_wl1271_resources, + .num_resources = ARRAY_SIZE(omap_zoom_wl1271_resources), + .dev = { + .platform_data = &omap_zoom_wlan_data, + }, +}; + static struct omap2_hsmmc_info mmc[] __initdata = { { .name = "external", @@ -202,6 +227,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 +346,7 @@ static void enable_board_wakeup_source(void) void __init zoom_peripherals_init(void) { + platform_device_register(&omap_zoom_wl1271); omap_i2c_init(); platform_device_register(&omap_vwlan_device); usb_musb_init(&musb_board_data); -- 1.7.0.4