ar71xx: use different machtype and setup for the TL-MR3040
authorGabor Juhos <juhosg@openwrt.org>
Mon, 24 Sep 2012 18:45:56 +0000 (18:45 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Mon, 24 Sep 2012 18:45:56 +0000 (18:45 +0000)
Should fix #12211. Compile tested only.

SVN-Revision: 33535

target/linux/ar71xx/base-files/etc/uci-defaults/leds
target/linux/ar71xx/base-files/etc/uci-defaults/network
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c
target/linux/ar71xx/image/Makefile
target/linux/ar71xx/patches-3.3/611-MIPS-ath79-TL-MR3040-support.patch [new file with mode: 0644]

index 5e2e9acfb76ce6941b9eff3778d524a0feacb3b8..07fd60f0b07673bcdccac9ce8d8d6c4cc3d4b4e8 100755 (executable)
@@ -93,7 +93,8 @@ tew-712br)
        ;;
 
 tl-mr11u | \
-tl-mr3020)
+tl-mr3020 |
+tl-mr3040)
        ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
        ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
        ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan"  "eth0"
index 3f8795031e231603f7420d218ae7b31957dd450f..8f00e1987df8ee8e0d8d4a942468fd5fa05e0387 100755 (executable)
@@ -141,6 +141,7 @@ ew-dorin |\
 rb-411 |\
 tl-mr11u |\
 tl-mr3020 |\
+tl-mr3040 |\
 tl-wa901nd |\
 tl-wa901nd-v2 |\
 tl-wr703n |\
index 032988e5e2d7710bd6c2973388e363e8602e4dca..3ba23b787cbd75a6c89b373da90aa66f90f98620 100755 (executable)
@@ -327,6 +327,9 @@ ar71xx_board_detect() {
        *TL-MR3020)
                name="tl-mr3020"
                ;;
+       *TL-MR3040)
+               name="tl-mr3040"
+               ;;
        *TL-MR3220)
                name="tl-mr3220"
                ;;
index 02e3916191c2f049ab624110100458aed7290479..9f4ce2cb833e772a4e092b3da5bda2471da29bcf 100755 (executable)
@@ -137,6 +137,7 @@ platform_check_image() {
                ;;
        tl-mr11u | \
        tl-mr3020 | \
+       tl-mr3040 | \
        tl-mr3220 | \
        tl-mr3420 | \
        tl-wa901nd | \
index 87facff7f71c36bd1aa430de9a0205071ee3e491..6b28207115efa08c7f0f37391ee7b7e7f8011ae6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  TP-LINK TL-MR11U board support
+ *  TP-LINK TL-MR11U/TL-MR3040 board support
  *
  *  Copyright (C) 2011 dongyuqi <729650915@qq.com>
  *  Copyright (C) 2011-2012 Gabor Juhos <juhosg@openwrt.org>
@@ -29,6 +29,7 @@
 #define TL_MR11U_GPIO_BTN_RESET                11
 
 #define TL_MR11U_GPIO_USB_POWER                8
+#define TL_MR3040_GPIO_USB_POWER       18
 
 #define TL_MR11U_KEYS_POLL_INTERVAL    20      /* msecs */
 #define TL_MR11U_KEYS_DEBOUNCE_INTERVAL        (3 * TL_MR11U_KEYS_POLL_INTERVAL)
@@ -62,24 +63,24 @@ static struct gpio_led tl_mr11u_leds_gpio[] __initdata = {
 
 static struct gpio_keys_button tl_mr11u_gpio_keys[] __initdata = {
        {
-               .desc           = "wps",
+               .desc           = "reset",
                .type           = EV_KEY,
-               .code           = KEY_WPS_BUTTON,
+               .code           = KEY_RESTART,
                .debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL,
-               .gpio           = TL_MR11U_GPIO_BTN_WPS,
+               .gpio           = TL_MR11U_GPIO_BTN_RESET,
                .active_low     = 0,
        },
        {
-               .desc           = "reset",
+               .desc           = "wps",
                .type           = EV_KEY,
-               .code           = KEY_RESTART,
+               .code           = KEY_WPS_BUTTON,
                .debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL,
-               .gpio           = TL_MR11U_GPIO_BTN_RESET,
+               .gpio           = TL_MR11U_GPIO_BTN_WPS,
                .active_low     = 0,
-       }
+       },
 };
 
-static void __init tl_mr11u_setup(void)
+static void __init common_setup(void)
 {
        u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
        u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
@@ -89,12 +90,7 @@ static void __init tl_mr11u_setup(void)
        ath79_register_m25p80(&tl_mr11u_flash_data);
        ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_mr11u_leds_gpio),
                                 tl_mr11u_leds_gpio);
-       ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL,
-                                       ARRAY_SIZE(tl_mr11u_gpio_keys),
-                                       tl_mr11u_gpio_keys);
 
-       ath79_set_usb_power_gpio(TL_MR11U_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH,
-                               "USB power");
        ath79_register_usb();
 
        ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
@@ -106,5 +102,29 @@ static void __init tl_mr11u_setup(void)
        ath79_register_wmac(ee, mac);
 }
 
+static void __init tl_mr11u_setup(void)
+{
+       common_setup();
+
+       ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL,
+                                       ARRAY_SIZE(tl_mr11u_gpio_keys),
+                                       tl_mr11u_gpio_keys);
+       ath79_set_usb_power_gpio(TL_MR11U_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH,
+                               "USB power");
+}
+
 MIPS_MACHINE(ATH79_MACH_TL_MR11U, "TL-MR11U", "TP-LINK TL-MR11U",
             tl_mr11u_setup);
+
+static void __init tl_mr3040_setup(void)
+{
+       common_setup();
+
+       ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL,
+                                       1, tl_mr11u_gpio_keys);
+       ath79_set_usb_power_gpio(TL_MR3040_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH,
+                               "USB power");
+}
+
+MIPS_MACHINE(ATH79_MACH_TL_MR3040, "TL-MR3040", "TP-LINK TL-MR3040",
+            tl_mr3040_setup);
index 9e038b6671310aee39faea2960070a99f5336064..625c10ea25a10b2425d1bb85ac8f09dba611ed32 100644 (file)
@@ -807,7 +807,7 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR104
 
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11U,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma))
-$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR11U,ttyATH0,115200,0x30400001,1,4Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR740NV4,tl-wr740n-v4,TL-WR741ND-v4,ttyATH0,115200,0x07400004,1,4Mlzma))
 $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR741NV4,tl-wr741nd-v4,TL-WR741ND-v4,ttyATH0,115200,0x07410004,1,4Mlzma))
diff --git a/target/linux/ar71xx/patches-3.3/611-MIPS-ath79-TL-MR3040-support.patch b/target/linux/ar71xx/patches-3.3/611-MIPS-ath79-TL-MR3040-support.patch
new file mode 100644 (file)
index 0000000..4e6d491
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
+@@ -412,7 +412,7 @@ config ATH79_MACH_EAP7660D
+       select ATH79_DEV_M25P80
+ config ATH79_MACH_TL_MR11U
+-      bool "TP-LINK TL-MR11U support"
++      bool "TP-LINK TL-MR11U/TL-MR3040 support"
+       select SOC_AR933X
+       select ATH79_DEV_ETH
+       select ATH79_DEV_GPIO_BUTTONS
+--- a/arch/mips/ath79/machtypes.h
++++ b/arch/mips/ath79/machtypes.h
+@@ -69,6 +69,7 @@ enum ath79_mach_type {
+       ATH79_MACH_TEW_712BR,           /* TRENDnet TEW-712BR */
+       ATH79_MACH_TL_MR11U,            /* TP-LINK TL-MR11U */
+       ATH79_MACH_TL_MR3020,           /* TP-LINK TL-MR3020 */
++      ATH79_MACH_TL_MR3040,           /* TP-LINK TL-MR3040 */
+       ATH79_MACH_TL_MR3220,           /* TP-LINK TL-MR3220 */
+       ATH79_MACH_TL_MR3420,           /* TP-LINK TL-MR3420 */
+       ATH79_MACH_TL_WA901ND,          /* TP-LINK TL-WA901ND */