#include <linux/platform_device.h>
#include <linux/ar8216_platform.h>
+#include <linux/gpio.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/platform/ar934x_nfc.h>
#define NBG6716_GPIO_LED_INTERNET 18
#define NBG6716_GPIO_LED_POWER 15
-#define NBG6716_GPIO_LED_USB0 4
-#define NBG6716_GPIO_LED_USB1 13
+#define NBG6716_GPIO_LED_USB1 4
+#define NBG6716_GPIO_LED_USB2 13
#define NBG6716_GPIO_LED_WIFI2G 19
#define NBG6716_GPIO_LED_WIFI5G 17
#define NBG6716_GPIO_LED_WPS 21
#define NBG6716_GPIO_BTN_RESET 23
#define NBG6716_GPIO_BTN_RFKILL 1
-#define NBG6716_GPIO_BTN_USB0 14
#define NBG6716_GPIO_BTN_USB1 0
+#define NBG6716_GPIO_BTN_USB2 14
#define NBG6716_GPIO_BTN_WPS 22
+#define NBG6716_GPIO_USB_POWER 16
+
#define NBG6716_KEYS_POLL_INTERVAL 20 /* msecs */
#define NBG6716_KEYS_DEBOUNCE_INTERVAL (3 * NBG6716_KEYS_POLL_INTERVAL)
.active_low = 1,
},
{
- .name = "zyxel:white:usb0",
- .gpio = NBG6716_GPIO_LED_USB0,
+ .name = "zyxel:white:usb1",
+ .gpio = NBG6716_GPIO_LED_USB1,
.active_low = 1,
},
{
- .name = "zyxel:white:usb1",
- .gpio = NBG6716_GPIO_LED_USB1,
+ .name = "zyxel:white:usb2",
+ .gpio = NBG6716_GPIO_LED_USB2,
.active_low = 1,
},
{
},
{
.desc = "RFKILL button",
- .type = EV_KEY,
+ .type = EV_SW,
.code = KEY_RFKILL,
.debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL,
.gpio = NBG6716_GPIO_BTN_RFKILL,
- .active_low = 1,
+ .active_low = 0,
},
{
- .desc = "USB0 eject button",
+ .desc = "USB1 eject button",
.type = EV_KEY,
- .code = BTN_0,
+ .code = BTN_1,
.debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL,
- .gpio = NBG6716_GPIO_BTN_USB0,
+ .gpio = NBG6716_GPIO_BTN_USB1,
.active_low = 1,
},
{
- .desc = "USB1 eject button",
+ .desc = "USB2 eject button",
.type = EV_KEY,
- .code = BTN_1,
+ .code = BTN_2,
.debounce_interval = NBG6716_KEYS_DEBOUNCE_INTERVAL,
- .gpio = NBG6716_GPIO_BTN_USB1,
+ .gpio = NBG6716_GPIO_BTN_USB2,
.active_low = 1,
},
{
ath79_nfc_set_ecc_mode(AR934X_NFC_ECC_HW);
ath79_register_nfc();
+ gpio_request_one(NBG6716_GPIO_USB_POWER,
+ GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
+ "USB power");
+
ath79_register_usb();
nbg6716_get_mac("ethaddr=", tmpmac);
nbg6716_ar8327_pad0_cfg.rxclk_delay_en = true;
nbg6716_ar8327_pad0_cfg.txclk_delay_sel = AR8327_CLK_DELAY_SEL1;
nbg6716_ar8327_pad0_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL2;
+ nbg6716_ar8327_pad0_cfg.mac06_exchange_en = true;
/* GMAC6 of the AR8337 switch is connected to GMAC1 via SGMII */
nbg6716_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_SGMII;