ar71xx: add support for the TP-LINK TL-MR3220 v1 board

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24439 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2010-12-10 17:57:48 +00:00
parent ec84d57d10
commit 11f383a3dc
13 changed files with 91 additions and 44 deletions

View File

@ -0,0 +1,24 @@
config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
config interface lan
option ifname eth0
option type bridge
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
config interface wan
option ifname eth1
option proto dhcp
config switch eth0
option enable_vlan 1
config switch_vlan
option device eth0
option vlan 1
option ports "0 1 2 3 4"

View File

@ -81,8 +81,8 @@ get_status_led() {
tew-632brp) tew-632brp)
status_led="tew-632brp:green:status" status_led="tew-632brp:green:status"
;; ;;
tl-mr3420) tl-mr3220 | tl-mr3420)
status_led="tl-mr3420:green:system" status_led="tl-mr3x20:green:system"
;; ;;
tl-wa901nd) tl-wa901nd)
status_led="tl-wa901nd:green:system" status_led="tl-wa901nd:green:system"

View File

@ -100,6 +100,9 @@ ar71xx_board_name() {
*"DIR-615 rev. C1") *"DIR-615 rev. C1")
name="dir-615-c1" name="dir-615-c1"
;; ;;
*TL-MR3220)
name="tl-mr3220"
;;
*TL-MR3420) *TL-MR3420)
name="tl-mr3420" name="tl-mr3420"
;; ;;

View File

@ -75,7 +75,7 @@ platform_check_image() {
} }
return 0 return 0
;; ;;
tl-mr3420 | tl-wa901nd | tl-wr741nd | tl-wr841n-v1 | tl-wr941nd | tl-wr1043nd) tl-mr3220 | tl-mr3420 | tl-wa901nd | tl-wr741nd | tl-wr841n-v1 | tl-wr941nd | tl-wr1043nd)
[ "$magic" != "0100" ] && { [ "$magic" != "0100" ] && {
echo "Invalid image type." echo "Invalid image type."
return 1 return 1

View File

@ -34,7 +34,7 @@ CONFIG_AR71XX_MACH_PB92=y
CONFIG_AR71XX_MACH_RB4XX=y CONFIG_AR71XX_MACH_RB4XX=y
CONFIG_AR71XX_MACH_RB750=y CONFIG_AR71XX_MACH_RB750=y
CONFIG_AR71XX_MACH_TEW_632BRP=y CONFIG_AR71XX_MACH_TEW_632BRP=y
CONFIG_AR71XX_MACH_TL_MR3420=y CONFIG_AR71XX_MACH_TL_MR3X20=y
CONFIG_AR71XX_MACH_TL_WA901ND=y CONFIG_AR71XX_MACH_TL_WA901ND=y
CONFIG_AR71XX_MACH_TL_WR1043ND=y CONFIG_AR71XX_MACH_TL_WR1043ND=y
CONFIG_AR71XX_MACH_TL_WR741ND=y CONFIG_AR71XX_MACH_TL_WR741ND=y

View File

@ -30,7 +30,7 @@ CONFIG_AR71XX_MACH_PB92=y
CONFIG_AR71XX_MACH_RB4XX=y CONFIG_AR71XX_MACH_RB4XX=y
CONFIG_AR71XX_MACH_RB750=y CONFIG_AR71XX_MACH_RB750=y
CONFIG_AR71XX_MACH_TEW_632BRP=y CONFIG_AR71XX_MACH_TEW_632BRP=y
CONFIG_AR71XX_MACH_TL_MR3420=y CONFIG_AR71XX_MACH_TL_MR3X20=y
CONFIG_AR71XX_MACH_TL_WA901ND=y CONFIG_AR71XX_MACH_TL_WA901ND=y
CONFIG_AR71XX_MACH_TL_WR1043ND=y CONFIG_AR71XX_MACH_TL_WR1043ND=y
CONFIG_AR71XX_MACH_TL_WR741ND=y CONFIG_AR71XX_MACH_TL_WR741ND=y

View File

@ -30,7 +30,7 @@ CONFIG_AR71XX_MACH_PB92=y
CONFIG_AR71XX_MACH_RB4XX=y CONFIG_AR71XX_MACH_RB4XX=y
CONFIG_AR71XX_MACH_RB750=y CONFIG_AR71XX_MACH_RB750=y
CONFIG_AR71XX_MACH_TEW_632BRP=y CONFIG_AR71XX_MACH_TEW_632BRP=y
CONFIG_AR71XX_MACH_TL_MR3420=y CONFIG_AR71XX_MACH_TL_MR3X20=y
CONFIG_AR71XX_MACH_TL_WA901ND=y CONFIG_AR71XX_MACH_TL_WA901ND=y
CONFIG_AR71XX_MACH_TL_WR1043ND=y CONFIG_AR71XX_MACH_TL_WR1043ND=y
CONFIG_AR71XX_MACH_TL_WR741ND=y CONFIG_AR71XX_MACH_TL_WR741ND=y

View File

@ -183,8 +183,8 @@ config AR71XX_MACH_NBG460N
select AR71XX_DEV_LEDS_GPIO select AR71XX_DEV_LEDS_GPIO
default n default n
config AR71XX_MACH_TL_MR3420 config AR71XX_MACH_TL_MR3X20
bool "TP-LINK TL-MR3420 support" bool "TP-LINK TL-MR3220/3420 support"
select AR71XX_DEV_M25P80 select AR71XX_DEV_M25P80
select AR71XX_DEV_AP91_PCI if PCI select AR71XX_DEV_AP91_PCI if PCI
select AR71XX_DEV_GPIO_BUTTONS select AR71XX_DEV_GPIO_BUTTONS

View File

@ -45,7 +45,7 @@ obj-$(CONFIG_AR71XX_MACH_PB92) += mach-pb92.o
obj-$(CONFIG_AR71XX_MACH_RB4XX) += mach-rb4xx.o obj-$(CONFIG_AR71XX_MACH_RB4XX) += mach-rb4xx.o
obj-$(CONFIG_AR71XX_MACH_RB750) += mach-rb750.o obj-$(CONFIG_AR71XX_MACH_RB750) += mach-rb750.o
obj-$(CONFIG_AR71XX_MACH_TEW_632BRP) += mach-tew-632brp.o obj-$(CONFIG_AR71XX_MACH_TEW_632BRP) += mach-tew-632brp.o
obj-$(CONFIG_AR71XX_MACH_TL_MR3420) += mach-tl-mr3420.o obj-$(CONFIG_AR71XX_MACH_TL_MR3X20) += mach-tl-mr3x20.o
obj-$(CONFIG_AR71XX_MACH_TL_WA901ND) += mach-tl-wa901nd.o obj-$(CONFIG_AR71XX_MACH_TL_WA901ND) += mach-tl-wa901nd.o
obj-$(CONFIG_AR71XX_MACH_TL_WR741ND) += mach-tl-wr741nd.o obj-$(CONFIG_AR71XX_MACH_TL_WR741ND) += mach-tl-wr741nd.o
obj-$(CONFIG_AR71XX_MACH_TL_WR841N_V1) += mach-tl-wr841n.o obj-$(CONFIG_AR71XX_MACH_TL_WR841N_V1) += mach-tl-wr841n.o

View File

@ -1,5 +1,5 @@
/* /*
* TP-LINK TL-MR3420 board support * TP-LINK TL-MR3220/3420 board support
* *
* Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org> * Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org>
* *
@ -22,19 +22,19 @@
#include "dev-leds-gpio.h" #include "dev-leds-gpio.h"
#include "dev-usb.h" #include "dev-usb.h"
#define TL_MR3420_GPIO_LED_QSS 0 #define TL_MR3X20_GPIO_LED_QSS 0
#define TL_MR3420_GPIO_LED_SYSTEM 1 #define TL_MR3X20_GPIO_LED_SYSTEM 1
#define TL_MR3420_GPIO_LED_3G 8 #define TL_MR3X20_GPIO_LED_3G 8
#define TL_MR3420_GPIO_BTN_RESET 11 #define TL_MR3X20_GPIO_BTN_RESET 11
#define TL_MR3420_GPIO_BTN_QSS 12 #define TL_MR3X20_GPIO_BTN_QSS 12
#define TL_MR3420_GPIO_USB_POWER 6 #define TL_MR3X20_GPIO_USB_POWER 6
#define TL_MR3420_BUTTONS_POLL_INTERVAL 20 #define TL_MR3X20_BUTTONS_POLL_INTERVAL 20
#ifdef CONFIG_MTD_PARTITIONS #ifdef CONFIG_MTD_PARTITIONS
static struct mtd_partition tl_mr3420_partitions[] = { static struct mtd_partition tl_mr3x20_partitions[] = {
{ {
.name = "u-boot", .name = "u-boot",
.offset = 0, .offset = 0,
@ -59,68 +59,68 @@ static struct mtd_partition tl_mr3420_partitions[] = {
.size = 0x3d0000, .size = 0x3d0000,
} }
}; };
#define tl_mr3420_num_partitions ARRAY_SIZE(tl_mr3420_partitions) #define tl_mr3x20_num_partitions ARRAY_SIZE(tl_mr3x20_partitions)
#else #else
#define tl_mr3420_partitions NULL #define tl_mr3x20_partitions NULL
#define tl_mr3420_num_partitions 0 #define tl_mr3x20_num_partitions 0
#endif /* CONFIG_MTD_PARTITIONS */ #endif /* CONFIG_MTD_PARTITIONS */
static struct flash_platform_data tl_mr3420_flash_data = { static struct flash_platform_data tl_mr3x20_flash_data = {
.parts = tl_mr3420_partitions, .parts = tl_mr3x20_partitions,
.nr_parts = tl_mr3420_num_partitions, .nr_parts = tl_mr3x20_num_partitions,
}; };
static struct gpio_led tl_mr3420_leds_gpio[] __initdata = { static struct gpio_led tl_mr3x20_leds_gpio[] __initdata = {
{ {
.name = "tl-mr3420:green:system", .name = "tl-mr3x20:green:system",
.gpio = TL_MR3420_GPIO_LED_SYSTEM, .gpio = TL_MR3X20_GPIO_LED_SYSTEM,
.active_low = 1, .active_low = 1,
}, { }, {
.name = "tl-mr3420:green:qss", .name = "tl-mr3x20:green:qss",
.gpio = TL_MR3420_GPIO_LED_QSS, .gpio = TL_MR3X20_GPIO_LED_QSS,
.active_low = 1, .active_low = 1,
}, { }, {
.name = "tl-mr3420:green:3g", .name = "tl-mr3x20:green:3g",
.gpio = TL_MR3420_GPIO_LED_3G, .gpio = TL_MR3X20_GPIO_LED_3G,
.active_low = 1, .active_low = 1,
} }
}; };
static struct gpio_button tl_mr3420_gpio_buttons[] __initdata = { static struct gpio_button tl_mr3x20_gpio_buttons[] __initdata = {
{ {
.desc = "reset", .desc = "reset",
.type = EV_KEY, .type = EV_KEY,
.code = KEY_RESTART, .code = KEY_RESTART,
.threshold = 3, .threshold = 3,
.gpio = TL_MR3420_GPIO_BTN_RESET, .gpio = TL_MR3X20_GPIO_BTN_RESET,
.active_low = 1, .active_low = 1,
}, { }, {
.desc = "qss", .desc = "qss",
.type = EV_KEY, .type = EV_KEY,
.code = KEY_WPS_BUTTON, .code = KEY_WPS_BUTTON,
.threshold = 3, .threshold = 3,
.gpio = TL_MR3420_GPIO_BTN_QSS, .gpio = TL_MR3X20_GPIO_BTN_QSS,
.active_low = 1, .active_low = 1,
} }
}; };
static void __init tl_mr3420_setup(void) static void __init tl_mr3x20_setup(void)
{ {
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
/* enable power for the USB port */ /* enable power for the USB port */
gpio_request(TL_MR3420_GPIO_USB_POWER, "USB power"); gpio_request(TL_MR3X20_GPIO_USB_POWER, "USB power");
gpio_direction_output(TL_MR3420_GPIO_USB_POWER, 1); gpio_direction_output(TL_MR3X20_GPIO_USB_POWER, 1);
ar71xx_add_device_m25p80(&tl_mr3420_flash_data); ar71xx_add_device_m25p80(&tl_mr3x20_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_mr3420_leds_gpio), ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_mr3x20_leds_gpio),
tl_mr3420_leds_gpio); tl_mr3x20_leds_gpio);
ar71xx_add_device_gpio_buttons(-1, TL_MR3420_BUTTONS_POLL_INTERVAL, ar71xx_add_device_gpio_buttons(-1, TL_MR3X20_BUTTONS_POLL_INTERVAL,
ARRAY_SIZE(tl_mr3420_gpio_buttons), ARRAY_SIZE(tl_mr3x20_gpio_buttons),
tl_mr3420_gpio_buttons); tl_mr3x20_gpio_buttons);
ar71xx_eth1_data.has_ar7240_switch = 1; ar71xx_eth1_data.has_ar7240_switch = 1;
ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
@ -145,4 +145,7 @@ static void __init tl_mr3420_setup(void)
ap91_pci_init(ee, mac); ap91_pci_init(ee, mac);
} }
MIPS_MACHINE(AR71XX_MACH_TL_MR3420, "TL-MR3420", "TP-LINK TL-MR3420", MIPS_MACHINE(AR71XX_MACH_TL_MR3420, "TL-MR3420", "TP-LINK TL-MR3420",
tl_mr3420_setup); tl_mr3x20_setup);
MIPS_MACHINE(AR71XX_MACH_TL_MR3220, "TL-MR3220", "TP-LINK TL-MR3220",
tl_mr3x20_setup);

View File

@ -38,6 +38,7 @@ enum ar71xx_mach_type {
AR71XX_MACH_MZK_W300NH, /* Planex MZK-W300NH */ AR71XX_MACH_MZK_W300NH, /* Planex MZK-W300NH */
AR71XX_MACH_NBG460N, /* Zyxel NBG460N/550N/550NH */ AR71XX_MACH_NBG460N, /* Zyxel NBG460N/550N/550NH */
AR71XX_MACH_TEW_632BRP, /* TRENDnet TEW-632BRP */ AR71XX_MACH_TEW_632BRP, /* TRENDnet TEW-632BRP */
AR71XX_MACH_TL_MR3220, /* TP-LINK TL-MR3220 */
AR71XX_MACH_TL_MR3420, /* TP-LINK TL-MR3420 */ AR71XX_MACH_TL_MR3420, /* TP-LINK TL-MR3420 */
AR71XX_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */ AR71XX_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */
AR71XX_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */ AR71XX_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */

View File

@ -5,6 +5,17 @@
# See /LICENSE for more information. # See /LICENSE for more information.
# #
define Profile/TLMR3220V1
NAME:=TP-LINK TL-MR3220 v1
PACKAGES:=kmod-ath9k wpad-mini kmod-usb-core kmod-usb2
endef
define Profile/TLMR3220V1/Description
Package set optimized for the TP-LINK TL-MR3220 v1.
endef
$(eval $(call Profile,TLMR3220V1))
define Profile/TLMR3420V1 define Profile/TLMR3420V1
NAME:=TP-LINK TL-MR3420 v1 NAME:=TP-LINK TL-MR3420 v1
PACKAGES:=kmod-ath9k wpad-mini kmod-usb-core kmod-usb2 PACKAGES:=kmod-ath9k wpad-mini kmod-usb-core kmod-usb2

View File

@ -570,6 +570,10 @@ define Image/Build/Profile/NBG_460N_550N_550NH
$(call Image/Build/Template/$(fs_64k)/$(1),ZyXEL,nbg460n_550n_550nh,board=NBG460N,NBG-460N) $(call Image/Build/Template/$(fs_64k)/$(1),ZyXEL,nbg460n_550n_550nh,board=NBG460N,NBG-460N)
endef endef
define Image/Build/Profile/TLMR3220V1
$(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-mr3220-v1,board=TL-MR3220,TL-MR3220v1)
endef
define Image/Build/Profile/TLMR3420V1 define Image/Build/Profile/TLMR3420V1
$(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-mr3420-v1,board=TL-MR3420,TL-MR3420v1) $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-mr3420-v1,board=TL-MR3420,TL-MR3420v1)
endef endef
@ -664,6 +668,7 @@ define Image/Build/Profile/Default
$(call Image/Build/Profile/PB92,$(1)) $(call Image/Build/Profile/PB92,$(1))
$(call Image/Build/Profile/TEW632BRP,$(1)) $(call Image/Build/Profile/TEW632BRP,$(1))
$(call Image/Build/Profile/TEW652BRP,$(1)) $(call Image/Build/Profile/TEW652BRP,$(1))
$(call Image/Build/Profile/TLMR3220V1,$(1))
$(call Image/Build/Profile/TLMR3420V1,$(1)) $(call Image/Build/Profile/TLMR3420V1,$(1))
$(call Image/Build/Profile/TLWA901NDV1,$(1)) $(call Image/Build/Profile/TLWA901NDV1,$(1))
$(call Image/Build/Profile/TLWR741NDV1,$(1)) $(call Image/Build/Profile/TLWR741NDV1,$(1))