ar71xx: wndr4300: enable 5V power for the USB port
authorGabor Juhos <juhosg@openwrt.org>
Sat, 12 Apr 2014 19:58:20 +0000 (19:58 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sat, 12 Apr 2014 19:58:20 +0000 (19:58 +0000)
The 5V power of the USB is controlled by a GPIO pin of
the external WiFi chip. Setup the GPIO bitmasks in the
platform data of the WiFi chip to ensure that the 5V
power gets enabled by the ath9k driver.

Based on the the WNDR3700v4 support patch from Ralph Perlich:
  http://patchwork.openwrt.org/patch/4763/

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 40478

target/linux/ar71xx/files/arch/mips/ath79/mach-wndr4300.c

index f546b7171ed377009fe1801d9d26a6b3073d7856..dcdc68ba4f6198e9d0d7c77962120caa9de18aab 100644 (file)
@@ -31,6 +31,7 @@
 #include "dev-wmac.h"
 #include "machtypes.h"
 
+/* AR9344 GPIOs */
 #define WNDR4300_GPIO_LED_POWER_GREEN  0
 #define WNDR4300_GPIO_LED_POWER_AMBER  2
 #define WNDR4300_GPIO_LED_USB          13
@@ -45,6 +46,9 @@
 #define WNDR4300_GPIO_BTN_WIRELESS     15
 #define WNDR4300_GPIO_BTN_WPS          12
 
+/* AR9580 GPIOs */
+#define WNDR4300_GPIO_USB_5V           0
+
 #define WNDR4300_KEYS_POLL_INTERVAL    20      /* msecs */
 #define WNDR4300_KEYS_DEBOUNCE_INTERVAL        (3 * WNDR4300_KEYS_POLL_INTERVAL)
 
@@ -192,6 +196,11 @@ static void __init wndr4300_setup(void)
        ath79_register_usb();
 
        ath79_register_wmac_simple();
+
+       /* enable power for the USB port */
+       ap9x_pci_setup_wmac_gpio(0, BIT(WNDR4300_GPIO_USB_5V),
+                                BIT(WNDR4300_GPIO_USB_5V));
+
        ap91_pci_init_simple();
 }