Commit b17e0979 authored by Panduranga Mallireddy's avatar Panduranga Mallireddy Committed by Tony Lindgren

omap: panda: add mmc5/wl1271 device support

Add MMC5 support on PANDA, 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.

Based on the patch for mmc3/wl1271 device support for zoom by Ohad
Ben-Cohen <ohad@wizery.com>
Signed-off-by: default avatarPanduranga Mallireddy <panduranga_mallireddy@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent edc84061
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include <linux/i2c/twl.h> #include <linux/i2c/twl.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/regulator/fixed.h> #include <linux/regulator/fixed.h>
#include <linux/wl12xx.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/omap4-common.h> #include <mach/omap4-common.h>
...@@ -47,6 +48,7 @@ ...@@ -47,6 +48,7 @@
#define GPIO_HUB_POWER 1 #define GPIO_HUB_POWER 1
#define GPIO_HUB_NRESET 62 #define GPIO_HUB_NRESET 62
#define GPIO_WIFI_PMENA 43 #define GPIO_WIFI_PMENA 43
#define GPIO_WIFI_IRQ 53
static struct gpio_led gpio_leds[] = { static struct gpio_led gpio_leds[] = {
{ {
...@@ -163,6 +165,15 @@ static struct omap2_hsmmc_info mmc[] = { ...@@ -163,6 +165,15 @@ static struct omap2_hsmmc_info mmc[] = {
.gpio_wp = -EINVAL, .gpio_wp = -EINVAL,
.gpio_cd = -EINVAL, .gpio_cd = -EINVAL,
}, },
{
.name = "wl1271",
.mmc = 5,
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
.gpio_wp = -EINVAL,
.gpio_cd = -EINVAL,
.ocr_mask = MMC_VDD_165_195,
.nonremovable = true,
},
{} /* Terminator */ {} /* Terminator */
}; };
...@@ -204,6 +215,12 @@ static struct platform_device omap_vwlan_device = { ...@@ -204,6 +215,12 @@ static struct platform_device omap_vwlan_device = {
}, },
}; };
struct wl12xx_platform_data omap_panda_wlan_data __initdata = {
.irq = OMAP_GPIO_IRQ(GPIO_WIFI_IRQ),
/* PANDA ref clock is 38.4 MHz */
.board_ref_clock = 2,
};
static int omap4_twl6030_hsmmc_late_init(struct device *dev) static int omap4_twl6030_hsmmc_late_init(struct device *dev)
{ {
int ret = 0; int ret = 0;
...@@ -447,6 +464,9 @@ static void __init omap4_panda_init(void) ...@@ -447,6 +464,9 @@ static void __init omap4_panda_init(void)
package = OMAP_PACKAGE_CBL; package = OMAP_PACKAGE_CBL;
omap4_mux_init(board_mux, package); omap4_mux_init(board_mux, package);
if (wl12xx_set_platform_data(&omap_panda_wlan_data))
pr_err("error setting wl12xx data\n");
omap4_panda_i2c_init(); omap4_panda_i2c_init();
platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices)); platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices));
platform_device_register(&omap_vwlan_device); platform_device_register(&omap_vwlan_device);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment