From 2f53f822030045d04c0890a1afc46e011019acb8 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Wed, 4 Jan 2012 17:30:57 +0000 Subject: [PATCH] ar71xx: use the TL-MR3x20 code for the TL-WR841N/ND v7 These models are based on the AP99 reference board, and uses the AR7241 SoC. SVN-Revision: 29658 --- target/linux/ar71xx/base-files/etc/diag.sh | 1 + .../base-files/etc/uci-defaults/network | 1 + target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 ++ .../files/arch/mips/ar71xx/mach-tl-mr3x20.c | 44 ++++++++++++++----- .../ar71xx/files/arch/mips/ar71xx/machtype.h | 1 + target/linux/ar71xx/image/Makefile | 3 +- 6 files changed, 40 insertions(+), 13 deletions(-) diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index d8bcb90ce70..3332a7f6e3e 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -103,6 +103,7 @@ get_status_led() { tl-wr741nd | \ tl-wr741nd-v4 | \ tl-wr841n-v1 | \ + tl-wr841n-v7 | \ tl-wr941nd) status_led="tp-link:green:system" ;; diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network index 2464042982c..d51660368c4 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network @@ -133,6 +133,7 @@ tl-mr3220 |\ tl-mr3420 |\ tl-wr741nd |\ tl-wr741nd-v4 |\ +tl-wr841n-v7 |\ whr-g301n |\ whr-hp-g300n |\ whr-hp-gn |\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index e6c47e816cc..218f934229d 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -268,6 +268,9 @@ ar71xx_board_detect() { *"TL-WR841N v1") name="tl-wr841n-v1" ;; + *"TL-WR841N/ND v7") + name="tl-wr841n-v7" + ;; *TL-WR941ND) name="tl-wr941nd" ;; diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-mr3x20.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-mr3x20.c index a6aa2af14c4..5ee25d346c7 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-mr3x20.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-mr3x20.c @@ -75,20 +75,13 @@ static struct gpio_keys_button tl_mr3x20_gpio_keys[] __initdata = { } }; -static void __init tl_mr3x20_setup(void) +static void __init tl_ap99_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); - /* enable power for the USB port */ - gpio_request(TL_MR3X20_GPIO_USB_POWER, "USB power"); - gpio_direction_output(TL_MR3X20_GPIO_USB_POWER, 1); - ar71xx_add_device_m25p80(&tl_mr3x20_flash_data); - ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_mr3x20_leds_gpio), - tl_mr3x20_leds_gpio); - ar71xx_register_gpio_keys_polled(-1, TL_MR3X20_KEYS_POLL_INTERVAL, ARRAY_SIZE(tl_mr3x20_gpio_keys), tl_mr3x20_gpio_keys); @@ -103,15 +96,26 @@ static void __init tl_mr3x20_setup(void) /* WAN port */ ar71xx_add_device_eth(0); - ar71xx_add_device_usb(); - ap91_pci_init(ee, mac); } +static void __init tl_mr3x20_usb_setup(void) +{ + /* enable power for the USB port */ + gpio_request(TL_MR3X20_GPIO_USB_POWER, "USB power"); + gpio_direction_output(TL_MR3X20_GPIO_USB_POWER, 1); + + ar71xx_add_device_usb(); +} + static void __init tl_mr3220_setup(void) { - tl_mr3x20_setup(); + tl_ap99_setup(); + + ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_mr3x20_leds_gpio), + tl_mr3x20_leds_gpio); ap91_pci_setup_wmac_led_pin(1); + tl_mr3x20_usb_setup(); } MIPS_MACHINE(AR71XX_MACH_TL_MR3220, "TL-MR3220", "TP-LINK TL-MR3220", @@ -119,9 +123,25 @@ MIPS_MACHINE(AR71XX_MACH_TL_MR3220, "TL-MR3220", "TP-LINK TL-MR3220", static void __init tl_mr3420_setup(void) { - tl_mr3x20_setup(); + tl_ap99_setup(); + + ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_mr3x20_leds_gpio), + tl_mr3x20_leds_gpio); ap91_pci_setup_wmac_led_pin(0); + tl_mr3x20_usb_setup(); } MIPS_MACHINE(AR71XX_MACH_TL_MR3420, "TL-MR3420", "TP-LINK TL-MR3420", tl_mr3420_setup); + +static void __init tl_wr841n_v7_setup(void) +{ + tl_ap99_setup(); + + ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_mr3x20_leds_gpio) - 1, + tl_mr3x20_leds_gpio); + ap91_pci_setup_wmac_led_pin(0); +} + +MIPS_MACHINE(AR71XX_MACH_TL_WR841N_V7, "TL-WR841N-v7", + "TP-LINK TL-WR841N/ND v7", tl_wr841n_v7_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h index 9d363a6acce..a2aa0359f74 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h @@ -59,6 +59,7 @@ enum ar71xx_mach_type { AR71XX_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */ AR71XX_MACH_TL_WR741ND_V4, /* TP-LINK TL-WR741ND v4*/ AR71XX_MACH_TL_WR841N_V1, /* TP-LINK TL-WR841N v1 */ + AR71XX_MACH_TL_WR841N_V7, /* TP-LINK TL-WR841N/ND v7 */ AR71XX_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */ AR71XX_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ AR71XX_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */ diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index 0a52b637556..78bf7e39c7a 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -820,11 +820,12 @@ endef tlwr841v15_cmdline=board=TL-WR841N-v1.5 console=ttyS0,115200 tlwr841v3_cmdline=board=TL-WR941ND console=ttyS0,115200 tlwr841v5_cmdline=board=TL-WR741ND console=ttyS0,115200 +tlwr841v7_cmdline=board=TL-WR841N-v7 console=ttyS0,115200 define Image/Build/Profile/TLWR841 $(call Image/Build/Template/$(fs_squash)/$(1),TPLINKOLD,tl-wr841n-v1.5,$(tlwr841v15_cmdline),0x08410002,2,4M) $(call Image/Build/Template/$(fs_64kraw)/$(1),TPLINK,tl-wr841nd-v3,$(tlwr841v3_cmdline),0x08410003,3,4M) $(call Image/Build/Template/$(fs_64kraw)/$(1),TPLINK,tl-wr841nd-v5,$(tlwr841v5_cmdline),0x08410005,1,4M) - $(call Image/Build/Template/$(fs_64kraw)/$(1),TPLINK,tl-wr841nd-v7,$(tlwr841v5_cmdline),0x08410007,1,4M) + $(call Image/Build/Template/$(fs_64kraw)/$(1),TPLINK,tl-wr841nd-v7,$(tlwr841v7_cmdline),0x08410007,1,4M) endef tlwr941v2_cmdline=board=TL-WR941ND console=ttyS0,115200 -- 2.30.2