This patch adds support for the hardware slide switch on the TL-MR3040 v2. The patch also adds userspace support and fixes the image building code so that the kernel correctly distinguishes between hardware revisions.
Signed-off-by: Mads Hansen <[email protected]> Index: trunk/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds =================================================================== --- trunk/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds (revision 38121) +++ trunk/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds (working copy) @@ -128,7 +128,8 @@ tl-mr11u | \ tl-mr3020 | \ -tl-mr3040) +tl-mr3040 | \ +tl-mr3040-v2) 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: trunk/target/linux/ar71xx/base-files/etc/uci-defaults/02_network =================================================================== --- trunk/target/linux/ar71xx/base-files/etc/uci-defaults/02_network (revision 38121) +++ trunk/target/linux/ar71xx/base-files/etc/uci-defaults/02_network (working copy) @@ -225,6 +225,7 @@ tl-mr13u |\ tl-mr3020 |\ tl-mr3040 |\ +tl-mr3040-v2 |\ tl-wa901nd |\ tl-wa901nd-v2 |\ tl-wr703n |\ Index: trunk/target/linux/ar71xx/base-files/lib/ar71xx.sh =================================================================== --- trunk/target/linux/ar71xx/base-files/lib/ar71xx.sh (revision 38121) +++ trunk/target/linux/ar71xx/base-files/lib/ar71xx.sh (working copy) @@ -423,6 +423,9 @@ *TL-MR3040) name="tl-mr3040" ;; + *"TL-MR3040 v2") + name="tl-mr3040-v2" + ;; *TL-MR3220) name="tl-mr3220" ;; Index: trunk/target/linux/ar71xx/base-files/lib/upgrade/platform.sh =================================================================== --- trunk/target/linux/ar71xx/base-files/lib/upgrade/platform.sh (revision 38121) +++ trunk/target/linux/ar71xx/base-files/lib/upgrade/platform.sh (working copy) @@ -182,6 +182,7 @@ tl-mr13u | \ tl-mr3020 | \ tl-mr3040 | \ + tl-mr3040-v2 | \ tl-mr3220 | \ tl-mr3220-v2 | \ tl-mr3420 | \ Index: trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c =================================================================== --- trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c (revision 38121) +++ trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c (working copy) @@ -33,6 +33,9 @@ #define TL_MR11U_GPIO_USB_POWER 8 #define TL_MR3040_GPIO_USB_POWER 18 +#define TL_MR3040_V2_GPIO_BTN_SW1 19 +#define TL_MR3040_V2_GPIO_BTN_SW2 20 + #define TL_MR11U_KEYS_POLL_INTERVAL 20 /* msecs */ #define TL_MR11U_KEYS_DEBOUNCE_INTERVAL (3 * TL_MR11U_KEYS_POLL_INTERVAL) @@ -82,6 +85,33 @@ }, }; +static struct gpio_keys_button tl_mr3040_v2_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_MR11U_GPIO_BTN_RESET, + .active_low = 0, + }, + { + .desc = "sw1", + .type = EV_KEY, + .code = BTN_0, + .debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_MR3040_V2_GPIO_BTN_SW1, + .active_low = 0, + }, + { + .desc = "sw2", + .type = EV_KEY, + .code = BTN_1, + .debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_MR3040_V2_GPIO_BTN_SW2, + .active_low = 0, + } +}; + static void __init common_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); @@ -136,3 +166,18 @@ MIPS_MACHINE(ATH79_MACH_TL_MR3040, "TL-MR3040", "TP-LINK TL-MR3040", tl_mr3040_setup); + +static void __init tl_mr3040_v2_setup(void) +{ + common_setup(); + + ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_mr3040_v2_gpio_keys), + tl_mr3040_v2_gpio_keys); + gpio_request_one(TL_MR3040_GPIO_USB_POWER, + GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + "USB power"); +} + +MIPS_MACHINE(ATH79_MACH_TL_MR3040_V2, "TL-MR3040-v2", "TP-LINK TL-MR3040 v2", + tl_mr3040_v2_setup); Index: trunk/target/linux/ar71xx/image/Makefile =================================================================== --- trunk/target/linux/ar71xx/image/Makefile (revision 38121) +++ trunk/target/linux/ar71xx/image/Makefile (working copy) @@ -940,7 +940,7 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR13U,tl-mr13u-v1,TL-MR13U,ttyATH0,115200,0x00130101,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3040V1,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma)) -$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3040V2,tl-mr3040-v2,TL-MR3040,ttyATH0,115200,0x30400002,1,4Mlzma)) +$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3040V2,tl-mr3040-v2,TL-MR3040-v2,ttyATH0,115200,0x30400002,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3220V2,tl-mr3220-v2,TL-MR3220-v2,ttyATH0,115200,0x32200002,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3420V2,tl-mr3420-v2,TL-MR3420-v2,ttyS0,115200,0x34200002,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma)) _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
