Commit a181f33ad6034065778722aea900eec3d8d0cf45

Authored by Eric Lee
1 parent 96be0490a9

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;