Message ID | 20150311155343.GA5539@localhost.localdomain |
---|---|
State | Changes Requested |
Headers | show |
Hi, Sorry, we require a full name including last name and please add a line such as -> Signed-off-by: Markus $lastname <mar@kola.li> to the patches description John On 11/03/2015 16:53, markus wrote: > I tested this and it works with my wnr2200 > > Apply fixed gpio from Ticket https://dev.openwrt.org/ticket/15267 > > I checkout the latest thruk > > > > .../ar71xx/files/arch/mips/ath79/mach-wnr2200.c | 94 > ++++++++++------------ 1 file changed, 44 insertions(+), 50 > deletions(-) > > diff --git > a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c > b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c index > bf7f9ee..ae8172d 100644 --- > a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c +++ > b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c @@ -1,4 > +1,4 @@ -/* +/* * NETGEAR WNR2200 board support * * Copyright (C) > 2013 Aidan Kissane <aidankissane at googlemail.com> @@ -14,7 +14,9 > @@ #include <linux/mtd/partitions.h> > > #include <asm/mach-ath79/ath79.h> +#include > <asm/mach-ath79/ar71xx_regs.h> > > +#include "common.h" #include "dev-ap9x-pci.h" #include > "dev-eth.h" #include "dev-gpio-buttons.h" @@ -23,35 +25,45 @@ > #include "dev-usb.h" #include "machtypes.h" > > -#define WNR2200_GPIO_LED_LAN2_AMBER 0 -#define > WNR2200_GPIO_LED_LAN4_AMBER 1 -#define WNR2200_GPIO_LED_WPS > 5 -#define WNR2200_GPIO_LED_WAN_GREEN 7 -#define > WNR2200_GPIO_LED_USB 8 -#define > WNR2200_GPIO_LED_LAN3_AMBER 11 -#define > WNR2200_GPIO_LED_WAN_AMBER 12 -#define > WNR2200_GPIO_LED_LAN1_GREEN 13 -#define > WNR2200_GPIO_LED_LAN2_GREEN 14 -#define > WNR2200_GPIO_LED_LAN3_GREEN 15 -#define > WNR2200_GPIO_LED_LAN4_GREEN 16 -#define > WNR2200_GPIO_LED_PWR_AMBER 21 -#define > WNR2200_GPIO_LED_PWR_GREEN 22 - -#define WNR2200_GPIO_USB_POWER > 24 - -#define WNR2200_KEYS_POLL_INTERVAL 20 /* msecs */ > -#define WNR2200_KEYS_DEBOUNCE_INTERVAL (3 * > WNR2200_KEYS_POLL_INTERVAL) - -#define WNR2200_MAC0_OFFSET > 0 -#define WNR2200_MAC1_OFFSET 6 -#define > WNR2200_PCIE_CALDATA_OFFSET 0x1000 +// AR9287 GPIO LED +#define > WNR2200_GPIO_LED_WLAN 0 +#define > WNR2200_GPIO_LED_PWR_AMBER 1 +#define > WNR2200_GPIO_LED_PWR_GREEN 2 +#define WNR2200_GPIO_USB_5V > 4 + +// AR9287 GPIO BUTTON +#define WNR2200_GPIO_BUTTON_WIFI > 3 +#define WNR2200_GPIO_BUTTON_WPS 5 +#define > WNR2200_GPIO_BUTTON_RESET 6 + +// AR7241 +#define > WNR2200_GPIO_LED_WPS 7 +#define WNR2200_GPIO_LED_USB > 8 + +#define WNR2200_GPIO_LED_LAN1_AMBER 6 +#define > WNR2200_GPIO_LED_LAN2_AMBER 0 +#define > WNR2200_GPIO_LED_LAN3_AMBER 11 +#define > WNR2200_GPIO_LED_LAN4_AMBER 1 +#define > WNR2200_GPIO_LED_WAN_AMBER 12 + +#define WNR2200_MAC0_OFFSET > 0 +#define WNR2200_MAC1_OFFSET 6 +#define > WNR2200_PCIE_CALDATA_OFFSET 0x1000 > > static struct gpio_led wnr2200_leds_gpio[] __initdata = { { + > .name = "netgear:amber:lan1", + .gpio > = WNR2200_GPIO_LED_LAN1_AMBER, + .active_low = > 1, + }, { .name = "netgear:amber:lan2", .gpio > = WNR2200_GPIO_LED_LAN2_AMBER, .active_low = 1, }, { + > .name = "netgear:amber:lan3", + .gpio > = WNR2200_GPIO_LED_LAN3_AMBER, + .active_low = > 1, + }, { .name = "netgear:amber:lan4", .gpio > = WNR2200_GPIO_LED_LAN4_AMBER, .active_low = 1, @@ -60,38 > +72,14 @@ static struct gpio_led wnr2200_leds_gpio[] __initdata = > { .gpio = WNR2200_GPIO_LED_WPS, .active_low = 1, }, > { - .name = "netgear:green:wan", - > .gpio = WNR2200_GPIO_LED_WAN_GREEN, - > .active_low = 1, - }, { .name = > "netgear:green:usb", .gpio = WNR2200_GPIO_LED_USB, > .active_low = 1, }, { - .name = > "netgear:amber:lan3", - .gpio = > WNR2200_GPIO_LED_LAN3_AMBER, - .active_low = 1, - > }, { .name = "netgear:amber:wan", .gpio = > WNR2200_GPIO_LED_WAN_AMBER, .active_low = 1, }, { - > .name = "netgear:green:lan1", - .gpio > = WNR2200_GPIO_LED_LAN1_GREEN, - .active_low = > 1, - }, { - .name = > "netgear:green:lan2", - .gpio = > WNR2200_GPIO_LED_LAN2_GREEN, - .active_low = 1, - > }, { - .name = "netgear:green:lan3", - > .gpio = WNR2200_GPIO_LED_LAN3_GREEN, - > .active_low = 1, - }, { - .name = > "netgear:green:lan4", - .gpio = > WNR2200_GPIO_LED_LAN4_GREEN, - .active_low = 1, - > }, { .name = "netgear:amber:power", .gpio = > WNR2200_GPIO_LED_PWR_AMBER, .active_low = 1, @@ -106,6 +94,9 @@ > static void __init wnr2200_setup(void) { u8 *art = (u8 *) > KSEG1ADDR(0x1fff0000); > > + // Disable JTAG to use all AR7241 gpio leds. + > ath79_gpio_function_setup(AR724X_GPIO_FUNC_JTAG_DISABLE, 0); + > ath79_register_mdio(0, 0x0); > > ath79_init_mac(ath79_eth0_data.mac_addr, art+WNR2200_MAC0_OFFSET, > 0); @@ -123,13 +114,16 @@ static void __init wnr2200_setup(void) > ath79_register_m25p80(NULL); ap91_pci_init(art + > WNR2200_PCIE_CALDATA_OFFSET, NULL); > > + ap9x_pci_setup_wmac_led_pin(0, WNR2200_GPIO_LED_WLAN); + > ath79_register_leds_gpio(-1, ARRAY_SIZE(wnr2200_leds_gpio), > wnr2200_leds_gpio); > > /* enable power for the USB port */ - > gpio_request_one(WNR2200_GPIO_USB_POWER, - > GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, - > "USB power"); + ap9x_pci_setup_wmac_gpio(0, + > BIT(WNR2200_GPIO_USB_5V) | + > BIT(WNR2200_GPIO_LED_PWR_AMBER) | BIT(WNR2200_GPIO_LED_PWR_GREEN), > + BIT(WNR2200_GPIO_USB_5V) | > BIT(WNR2200_GPIO_LED_PWR_AMBER)); > > ath79_register_usb(); } >
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c index bf7f9ee..ae8172d 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wnr2200.c @@ -1,4 +1,4 @@ -/* +/* * NETGEAR WNR2200 board support * * Copyright (C) 2013 Aidan Kissane <aidankissane at googlemail.com> @@ -14,7 +14,9 @@ #include <linux/mtd/partitions.h> #include <asm/mach-ath79/ath79.h> +#include <asm/mach-ath79/ar71xx_regs.h> +#include "common.h" #include "dev-ap9x-pci.h" #include "dev-eth.h" #include "dev-gpio-buttons.h" @@ -23,35 +25,45 @@ #include "dev-usb.h" #include "machtypes.h" -#define WNR2200_GPIO_LED_LAN2_AMBER 0 -#define WNR2200_GPIO_LED_LAN4_AMBER 1 -#define WNR2200_GPIO_LED_WPS 5 -#define WNR2200_GPIO_LED_WAN_GREEN 7 -#define WNR2200_GPIO_LED_USB 8 -#define WNR2200_GPIO_LED_LAN3_AMBER 11 -#define WNR2200_GPIO_LED_WAN_AMBER 12 -#define WNR2200_GPIO_LED_LAN1_GREEN 13 -#define WNR2200_GPIO_LED_LAN2_GREEN 14 -#define WNR2200_GPIO_LED_LAN3_GREEN 15 -#define WNR2200_GPIO_LED_LAN4_GREEN 16 -#define WNR2200_GPIO_LED_PWR_AMBER 21 -#define WNR2200_GPIO_LED_PWR_GREEN 22 - -#define WNR2200_GPIO_USB_POWER 24 - -#define WNR2200_KEYS_POLL_INTERVAL 20 /* msecs */ -#define WNR2200_KEYS_DEBOUNCE_INTERVAL (3 * WNR2200_KEYS_POLL_INTERVAL) - -#define WNR2200_MAC0_OFFSET 0 -#define WNR2200_MAC1_OFFSET 6 -#define WNR2200_PCIE_CALDATA_OFFSET 0x1000 +// AR9287 GPIO LED +#define WNR2200_GPIO_LED_WLAN 0 +#define WNR2200_GPIO_LED_PWR_AMBER 1 +#define WNR2200_GPIO_LED_PWR_GREEN 2 +#define WNR2200_GPIO_USB_5V 4 + +// AR9287 GPIO BUTTON +#define WNR2200_GPIO_BUTTON_WIFI 3 +#define WNR2200_GPIO_BUTTON_WPS 5 +#define WNR2200_GPIO_BUTTON_RESET 6 + +// AR7241 +#define WNR2200_GPIO_LED_WPS 7 +#define WNR2200_GPIO_LED_USB 8 + +#define WNR2200_GPIO_LED_LAN1_AMBER 6 +#define WNR2200_GPIO_LED_LAN2_AMBER 0 +#define WNR2200_GPIO_LED_LAN3_AMBER 11 +#define WNR2200_GPIO_LED_LAN4_AMBER 1 +#define WNR2200_GPIO_LED_WAN_AMBER 12 + +#define WNR2200_MAC0_OFFSET 0 +#define WNR2200_MAC1_OFFSET 6 +#define WNR2200_PCIE_CALDATA_OFFSET 0x1000 static struct gpio_led wnr2200_leds_gpio[] __initdata = { { + .name = "netgear:amber:lan1", + .gpio = WNR2200_GPIO_LED_LAN1_AMBER, + .active_low = 1, + }, { .name = "netgear:amber:lan2", .gpio = WNR2200_GPIO_LED_LAN2_AMBER, .active_low = 1, }, { + .name = "netgear:amber:lan3", + .gpio = WNR2200_GPIO_LED_LAN3_AMBER, + .active_low = 1, + }, { .name = "netgear:amber:lan4", .gpio = WNR2200_GPIO_LED_LAN4_AMBER, .active_low = 1, @@ -60,38 +72,14 @@ static struct gpio_led wnr2200_leds_gpio[] __initdata = { .gpio = WNR2200_GPIO_LED_WPS, .active_low = 1, }, { - .name = "netgear:green:wan", - .gpio = WNR2200_GPIO_LED_WAN_GREEN, - .active_low = 1, - }, { .name = "netgear:green:usb", .gpio = WNR2200_GPIO_LED_USB, .active_low = 1, }, { - .name = "netgear:amber:lan3", - .gpio = WNR2200_GPIO_LED_LAN3_AMBER, - .active_low = 1, - }, { .name = "netgear:amber:wan", .gpio = WNR2200_GPIO_LED_WAN_AMBER, .active_low = 1, }, { - .name = "netgear:green:lan1", - .gpio = WNR2200_GPIO_LED_LAN1_GREEN, - .active_low = 1, - }, { - .name = "netgear:green:lan2", - .gpio = WNR2200_GPIO_LED_LAN2_GREEN, - .active_low = 1, - }, { - .name = "netgear:green:lan3", - .gpio = WNR2200_GPIO_LED_LAN3_GREEN, - .active_low = 1, - }, { - .name = "netgear:green:lan4", - .gpio = WNR2200_GPIO_LED_LAN4_GREEN, - .active_low = 1, - }, { .name = "netgear:amber:power", .gpio = WNR2200_GPIO_LED_PWR_AMBER, .active_low = 1, @@ -106,6 +94,9 @@ static void __init wnr2200_setup(void) { u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); + // Disable JTAG to use all AR7241 gpio leds. + ath79_gpio_function_setup(AR724X_GPIO_FUNC_JTAG_DISABLE, 0); + ath79_register_mdio(0, 0x0); ath79_init_mac(ath79_eth0_data.mac_addr, art+WNR2200_MAC0_OFFSET, 0); @@ -123,13 +114,16 @@ static void __init wnr2200_setup(void) ath79_register_m25p80(NULL); ap91_pci_init(art + WNR2200_PCIE_CALDATA_OFFSET, NULL); + ap9x_pci_setup_wmac_led_pin(0, WNR2200_GPIO_LED_WLAN); + ath79_register_leds_gpio(-1, ARRAY_SIZE(wnr2200_leds_gpio), wnr2200_leds_gpio); /* enable power for the USB port */ - gpio_request_one(WNR2200_GPIO_USB_POWER, - GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, - "USB power"); + ap9x_pci_setup_wmac_gpio(0, + BIT(WNR2200_GPIO_USB_5V) | + BIT(WNR2200_GPIO_LED_PWR_AMBER) | BIT(WNR2200_GPIO_LED_PWR_GREEN), + BIT(WNR2200_GPIO_USB_5V) | BIT(WNR2200_GPIO_LED_PWR_AMBER)); ath79_register_usb(); }