summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-am335x-3.2.0-psp04.06.00.08/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch
diff options
context:
space:
mode:
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.patch57
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 @@
1From f69ffbef6793b7238a8518481735fd53326e0cdf Mon Sep 17 00:00:00 2001
2From: Vita Preskovsky <vitap@ti.com>
3Date: Tue, 24 Jul 2012 20:02:28 +0300
4Subject: [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
11Signed-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
16diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
17index 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--
571.7.0.4