diff options
Diffstat (limited to 'recipes-kernel/linux/linux-am335x-3.2.0-psp04.06.00.08/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch')
-rw-r--r-- | recipes-kernel/linux/linux-am335x-3.2.0-psp04.06.00.08/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-am335x-3.2.0-psp04.06.00.08/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch b/recipes-kernel/linux/linux-am335x-3.2.0-psp04.06.00.08/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch new file mode 100644 index 00000000..863fe378 --- /dev/null +++ b/recipes-kernel/linux/linux-am335x-3.2.0-psp04.06.00.08/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch | |||
@@ -0,0 +1,57 @@ | |||
1 | From f69ffbef6793b7238a8518481735fd53326e0cdf Mon Sep 17 00:00:00 2001 | ||
2 | From: Vita Preskovsky <vitap@ti.com> | ||
3 | Date: Tue, 24 Jul 2012 20:02:28 +0300 | ||
4 | Subject: [PATCH] am335x: enable pullup on the WLAN enable pin for keeping wlan | ||
5 | |||
6 | * Enable pullup on the WLAN enable pin for keeping wlan active | ||
7 | during suspend in wowlan mode. The fix is relevant only in the case | ||
8 | of am335x-SK board. | ||
9 | |||
10 | |||
11 | Signed-off-by: Vita Preskovsky <vitap@ti.com> | ||
12 | --- | ||
13 | arch/arm/mach-omap2/board-am335xevm.c | 22 ++++++++++++++++++++++ | ||
14 | 1 files changed, 22 insertions(+), 0 deletions(-) | ||
15 | |||
16 | diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c | ||
17 | index f68710c..f263f84 100644 | ||
18 | --- a/arch/arm/mach-omap2/board-am335xevm.c | ||
19 | +++ b/arch/arm/mach-omap2/board-am335xevm.c | ||
20 | @@ -1673,13 +1673,35 @@ static void wl12xx_bluetooth_enable(void) | ||
21 | gpio_direction_output(am335xevm_wlan_data.bt_enable_gpio, 0); | ||
22 | } | ||
23 | |||
24 | +#define AM33XX_CTRL_REGADDR(reg) \ | ||
25 | + AM33XX_L4_WK_IO_ADDRESS(AM33XX_SCM_BASE + (reg)) | ||
26 | + | ||
27 | +/* wlan enable pin */ | ||
28 | +#define AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET 0x087C | ||
29 | static int wl12xx_set_power(struct device *dev, int slot, int on, int vdd) | ||
30 | { | ||
31 | + int pad_mux_value; | ||
32 | + | ||
33 | if (on) { | ||
34 | gpio_direction_output(am335xevm_wlan_data.wlan_enable_gpio, 1); | ||
35 | + | ||
36 | + /* Enable pullup on the WLAN enable pin for keeping wlan active during suspend | ||
37 | + in wowlan mode */ | ||
38 | + if ( am335x_evm_get_id() == EVM_SK ) { | ||
39 | + pad_mux_value = readl(AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | ||
40 | + pad_mux_value &= (~AM33XX_PULL_DISA); | ||
41 | + writel(pad_mux_value, AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | ||
42 | + } | ||
43 | + | ||
44 | mdelay(70); | ||
45 | } else { | ||
46 | gpio_direction_output(am335xevm_wlan_data.wlan_enable_gpio, 0); | ||
47 | + /* Disable pullup on the WLAN enable when WLAN is off */ | ||
48 | + if ( am335x_evm_get_id() == EVM_SK ) { | ||
49 | + pad_mux_value = readl(AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | ||
50 | + pad_mux_value |= AM33XX_PULL_DISA; | ||
51 | + writel(pad_mux_value, AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | ||
52 | + } | ||
53 | } | ||
54 | |||
55 | return 0; | ||
56 | -- | ||
57 | 1.7.0.4 | ||