Commit a181f33ad6034065778722aea900eec3d8d0cf45
1 parent
96be0490a9
Exists in
v3.2_SMARCT335xPSP_04.06.00.11
and in
2 other branches
Add patch (0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch) to enable …
…pullup on WLAN enable.
Showing 1 changed file with 22 additions and 0 deletions Side-by-side Diff
arch/arm/mach-omap2/board-am335xevm.c
... | ... | @@ -1686,13 +1686,35 @@ |
1686 | 1686 | gpio_direction_output(am335xevm_wlan_data.bt_enable_gpio, 0); |
1687 | 1687 | } |
1688 | 1688 | |
1689 | +#define AM33XX_CTRL_REGADDR(reg) \ | |
1690 | + AM33XX_L4_WK_IO_ADDRESS(AM33XX_SCM_BASE + (reg)) | |
1691 | + | |
1692 | +/* wlan enable pin */ | |
1693 | +#define AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET 0x087C | |
1689 | 1694 | static int wl12xx_set_power(struct device *dev, int slot, int on, int vdd) |
1690 | 1695 | { |
1696 | + int pad_mux_value; | |
1697 | + | |
1691 | 1698 | if (on) { |
1692 | 1699 | gpio_direction_output(am335xevm_wlan_data.wlan_enable_gpio, 1); |
1700 | + | |
1701 | + /* Enable pullup on the WLAN enable pin for keeping wlan active during suspend | |
1702 | + in wowlan mode */ | |
1703 | + if ( am335x_evm_get_id() == EVM_SK ) { | |
1704 | + pad_mux_value = readl(AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | |
1705 | + pad_mux_value &= (~AM33XX_PULL_DISA); | |
1706 | + writel(pad_mux_value, AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | |
1707 | + } | |
1708 | + | |
1693 | 1709 | mdelay(70); |
1694 | 1710 | } else { |
1695 | 1711 | gpio_direction_output(am335xevm_wlan_data.wlan_enable_gpio, 0); |
1712 | + /* Disable pullup on the WLAN enable when WLAN is off */ | |
1713 | + if ( am335x_evm_get_id() == EVM_SK ) { | |
1714 | + pad_mux_value = readl(AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | |
1715 | + pad_mux_value |= AM33XX_PULL_DISA; | |
1716 | + writel(pad_mux_value, AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET)); | |
1717 | + } | |
1696 | 1718 | } |
1697 | 1719 | |
1698 | 1720 | return 0; |