Hi, > Hey,guys! > Sorry for missing attachment in last post. > Here is my second patch for adding tplink tl-wr1041n v2 to openwrt. > I have found gpioes for system,wlan and wps.But the leds for wan and lan are > still not working because they are attached to ar8327.So I set the led for wps > indicating wan status. > Please summit this patch,sign-off-by:Vince Huang. >
Thank you for the patch, it seems ok in general. Please see my comments below. > Index: target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr1041n-v2.c > =================================================================== > --- target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr1041n-v2.c (版本 0) > +++ target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr1041n-v2.c (版本 0) > @@ -0,0 +1,179 @@ > +/* > + * TP-LINK TL-WR1041 v2 board support > + * > + * Copyright (C) 2010-2012 Gabor Juhos <juh...@openwrt.org> > + * Copyright (C) 2011-2012 EXCEPtiON <axish...@foxmail.com> Please use your full name. > + * > + * This program is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License version 2 as published > + * by the Free Software Foundation. > + */ > + > +#include <linux/pci.h> > +#include <linux/phy.h> > +#include <linux/platform_device.h> > +#include <linux/ath9k_platform.h> > +#include <linux/ar8216_platform.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" > +#include "dev-leds-gpio.h" > +#include "dev-m25p80.h" > +#include "dev-spi.h" > +#include "dev-wmac.h" > +#include "machtypes.h" > + > +#define TL_WR1041NV2_GPIO_BTN_RESET 17 > +#define TL_WR1041NV2_GPIO_LED_WPS 13 > +#define TL_WR1041NV2_GPIO_LED_WLAN 11 > +//#define TL_WR1041NV2_GPIO_LED_WAN 18 > +//#define TL_WR1041NV2_GPIO_LED_LAN1 19 > +//#define TL_WR1041NV2_GPIO_LED_LAN2 20 > +//#define TL_WR1041NV2_GPIO_LED_LAN3 21 > +//#define TL_WR1041NV2_GPIO_LED_LAN4 12 If the LEDs are connected to the AR8327 chip, these defines will not be used at all. Please remove them. > + > +#define TL_WR1041NV2_GPIO_LED_SYSTEM 12 > + > +#define TL_WR1041NV2_KEYS_POLL_INTERVAL 20 /* msecs */ > +#define TL_WR1041NV2_KEYS_DEBOUNCE_INTERVAL (3 * > TL_WR1041NV2_KEYS_POLL_INTERVAL) > + > +#define TL_WR1041NV2_PCIE_CALDATA_OFFSET 0x5000 > + > +static const char *tl_wr1041nv2_part_probes[] = { > + "tp-link", > + NULL, > +}; > + > +static struct flash_platform_data tl_wr1041nv2_flash_data = { > + .part_probes = tl_wr1041nv2_part_probes, > +}; > + > +static struct gpio_led tl_wr1041nv2_leds_gpio[] __initdata = { > + { > + .name = "tp-link:green:system", > + .gpio = TL_WR1041NV2_GPIO_LED_SYSTEM, > + .active_low = 1, > + }, { > + .name = "tp-link:green:wps", > + .gpio = TL_WR1041NV2_GPIO_LED_WPS, > + .active_low = 1, > + }, { > + .name = "tp-link:green:wlan", > + .gpio = TL_WR1041NV2_GPIO_LED_WLAN, > + .active_low = 1, > + }/*, { > + .name = "tp-link:green:wan", > + .gpio = TL_WR1041NV2_GPIO_LED_WAN, > + .active_low = 1, > + }, { > + .name = "tp-link:green:lan1", > + .gpio = TL_WR1041NV2_GPIO_LED_LAN1, > + .active_low = 1, > + }, { > + .name = "tp-link:green:lan2", > + .gpio = TL_WR1041NV2_GPIO_LED_LAN1, > + .active_low = 1, > + }, { > + .name = "tp-link:green:lan3", > + .gpio = TL_WR1041NV2_GPIO_LED_LAN3, > + .active_low = 1, > + }, { > + .name = "tp-link:green:lan4", > + .gpio = TL_WR1041NV2_GPIO_LED_LAN4, > + .active_low = 1, > + }*/ Please remove the unused GPIO LED entries as well. > +}; > + > +static struct gpio_keys_button tl_wr1041nv2_gpio_keys[] __initdata = { > + { > + .desc = "reset", > + .type = EV_KEY, > + .code = KEY_RESTART, > + .debounce_interval = TL_WR1041NV2_KEYS_DEBOUNCE_INTERVAL, > + .gpio = TL_WR1041NV2_GPIO_BTN_RESET, > + .active_low = 1, > + } > +}; > + > +static struct ar8327_pad_cfg db120_ar8327_pad0_cfg = { > + .mode = AR8327_PAD_MAC_RGMII, > + .txclk_delay_en = true, > + .rxclk_delay_en = true, > + .txclk_delay_sel = AR8327_CLK_DELAY_SEL1, > + .rxclk_delay_sel = AR8327_CLK_DELAY_SEL2, > +}; > + > +static struct ar8327_platform_data db120_ar8327_data = { > + .pad0_cfg = &db120_ar8327_pad0_cfg, > + .cpuport_cfg = { > + .force_link = 1, > + .speed = AR8327_PORT_SPEED_1000, > + .duplex = 1, > + .txpause = 1, > + .rxpause = 1, > + } > +}; > + > +static struct mdio_board_info db120_mdio0_info[] = { > + { > + .bus_id = "ag71xx-mdio.0", > + .phy_addr = 0, > + .platform_data = &db120_ar8327_data, > + }, > +}; > + > +static void __init db120_gmac_setup(void) > +{ > + void __iomem *base; > + u32 t; > + > + base = ioremap(AR934X_GMAC_BASE, AR934X_GMAC_SIZE); > + > + t = __raw_readl(base + AR934X_GMAC_REG_ETH_CFG); > + t &= ~(AR934X_ETH_CFG_RGMII_GMAC0 | AR934X_ETH_CFG_MII_GMAC0 | > + AR934X_ETH_CFG_MII_GMAC0 | AR934X_ETH_CFG_SW_ONLY_MODE); > + t |= AR934X_ETH_CFG_RGMII_GMAC0 | AR934X_ETH_CFG_SW_ONLY_MODE; > + > + __raw_writel(t, base + AR934X_GMAC_REG_ETH_CFG); > + > + iounmap(base); > +} > + > +static void __init tl_wr1041nv2_setup(void) > +{ > + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); > + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); > + > + ath79_register_m25p80(&tl_wr1041nv2_flash_data); > + > + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr1041nv2_leds_gpio), > + tl_wr1041nv2_leds_gpio); > + ath79_register_gpio_keys_polled(-1, TL_WR1041NV2_KEYS_POLL_INTERVAL, > + ARRAY_SIZE(tl_wr1041nv2_gpio_keys), > + tl_wr1041nv2_gpio_keys); > + ath79_register_wmac(ee, mac); > + Please remove the trailing whitespace. > + db120_gmac_setup(); > + > + ath79_register_mdio(1, 0x0); > + ath79_register_mdio(0, 0x0); > + > + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); > + > + mdiobus_register_board_info(db120_mdio0_info, > + ARRAY_SIZE(db120_mdio0_info)); > + > + /* GMAC0 is connected to an AR8327 switch */ > + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; > + ath79_eth0_data.phy_mask = BIT(0); > + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; > + ath79_eth0_pll_data.pll_1000 = 0x06000000; > + ath79_register_eth(0); > +} > + > +MIPS_MACHINE(ATH79_MACH_TL_WR1041N_V2, "TL-WR1041N-v2", > + "TP-LINK TL-WR1041N v2", tl_wr1041nv2_setup); > Index: target/linux/ar71xx/image/Makefile > =================================================================== > --- target/linux/ar71xx/image/Makefile (版本 31481) > +++ target/linux/ar71xx/image/Makefile (工作副本) > @@ -948,6 +948,11 @@ > $(call > Image/Build/Template/$(fs_64kraw)/$(1),TPLINK,tl-wr941nd-v4,$(tlwr941v4_cmdline),0x09410004,1,4M) > endef > > +tlwr1041_cmdline=board=TL-WR1041N-v2 console=ttyS0,115200 > +define Image/Build/Profile/TLWR1041 > + $(call > Image/Build/Template/$(fs_64kraw)/$(1),TPLINK-LZMA,tl-wr1041n-v2,$(tlwr1041_cmdline),0x10410002,1,4Mlzma) > +endef > + > tlwr1043_cmdline=board=TL-WR1043ND console=ttyS0,115200 > define Image/Build/Profile/TLWR1043 > $(call > Image/Build/Template/$(fs_64kraw)/$(1),TPLINK,tl-wr1043nd-v1,$(tlwr1043_cmdline),0x10430001,1,8M) > @@ -1087,6 +1092,7 @@ > $(call Image/Build/Profile/TLWR841,$(1)) > $(call Image/Build/Profile/TLWR842,$(1)) > $(call Image/Build/Profile/TLWR941,$(1)) > + $(call Image/Build/Profile/TLWR1041,$(1)) > $(call Image/Build/Profile/TLWR1043,$(1)) > $(call Image/Build/Profile/TLWR2543,$(1)) > $(call Image/Build/Profile/UBNT,$(1)) > Index: target/linux/ar71xx/config-3.3 > =================================================================== > --- target/linux/ar71xx/config-3.3 (版本 31481) > +++ target/linux/ar71xx/config-3.3 (工作副本) > @@ -57,6 +57,7 @@ > CONFIG_ATH79_MACH_TL_MR3X20=y > CONFIG_ATH79_MACH_TL_WA901ND=y > CONFIG_ATH79_MACH_TL_WA901ND_V2=y > +CONFIG_ATH79_MACH_TL_WR1041N=y > CONFIG_ATH79_MACH_TL_WR1043ND=y > CONFIG_ATH79_MACH_TL_WR2543N=y > CONFIG_ATH79_MACH_TL_WR703N=y > Index: target/linux/ar71xx/patches-3.3/615-MIPS-ath79-WR1041N-support.patch > =================================================================== > --- target/linux/ar71xx/patches-3.3/615-MIPS-ath79-WR1041N-support.patch > (版本 0) > +++ target/linux/ar71xx/patches-3.3/615-MIPS-ath79-WR1041N-support.patch > (版本 0) > @@ -0,0 +1,43 @@ > +diff -Nur a/arch/mips/ath79/Kconfig b/arch/mips/ath79/Kconfig > +--- a/arch/mips/ath79/Kconfig 2012-04-15 01:27:32.264376000 +0800 > ++++ b/arch/mips/ath79/Kconfig 2012-04-16 15:16:00.801622605 +0800 > +@@ -462,6 +462,17 @@ > + select ATH79_DEV_M25P80 > + select ATH79_DEV_WMAC > + > ++config ATH79_MACH_TL_WR1041N_V2 > ++ bool "TP-LINK TL-WR1041N v2 support" > ++ select SOC_AR934X > ++ select ATH79_DEV_AP9X_PCI if PCI > ++ select ATH79_DEV_ETH > ++ select ATH79_DEV_GPIO_BUTTONS > ++ select ATH79_DEV_LEDS_GPIO > ++ select ATH79_DEV_M25P80 > ++ select ATH79_DEV_USB > ++ select ATH79_DEV_WMAC > ++ > + config ATH79_MACH_TL_WR1043ND > + bool "TP-LINK TL-WR1043ND support" > + select SOC_AR913X > +diff -Nur a/arch/mips/ath79/machtypes.h b/arch/mips/ath79/machtypes.h > +--- a/arch/mips/ath79/machtypes.h 2012-04-15 01:27:32.264376000 +0800 > ++++ b/arch/mips/ath79/machtypes.h 2012-04-16 15:18:19.893810823 +0800 > +@@ -64,6 +64,7 @@ > + ATH79_MACH_TL_MR3420, /* TP-LINK TL-MR3420 */ > + ATH79_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */ > + ATH79_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */ > ++ ATH79_MACH_TL_WR1041N_V2, /* TP-LINK TL-WR1041N v2 */ > + ATH79_MACH_TL_WR1043ND, /* TP-LINK TL-WR1041ND */ > + ATH79_MACH_TL_WR2543N, /* TP-LINK TL-WR2543N/ND */ > + ATH79_MACH_TL_WR703N, /* TP-LINK TL-WR703N */ > +diff -Nur a/arch/mips/ath79/Makefile b/arch/mips/ath79/Makefile > +--- a/arch/mips/ath79/Makefile 2012-04-15 01:27:32.184984000 +0800 > ++++ b/arch/mips/ath79/Makefile 2012-04-16 15:19:04.709976375 +0800 > +@@ -74,6 +74,7 @@ > + obj-$(CONFIG_ATH79_MACH_TL_WR741ND_V4) += mach-tl-wr741nd-v4.o > + obj-$(CONFIG_ATH79_MACH_TL_WR841N_V1) += mach-tl-wr841n.o > + obj-$(CONFIG_ATH79_MACH_TL_WR941ND) += mach-tl-wr941nd.o > ++obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2) += mach-tl-wr1041n-v2.o > + obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o > + obj-$(CONFIG_ATH79_MACH_TL_WR2543N) += mach-tl-wr2543n.o > + obj-$(CONFIG_ATH79_MACH_TL_WR703N) += mach-tl-wr703n.o > Index: target/linux/ar71xx/base-files/lib/ar71xx.sh > =================================================================== > --- target/linux/ar71xx/base-files/lib/ar71xx.sh (版本 31481) > +++ target/linux/ar71xx/base-files/lib/ar71xx.sh (工作副本) > @@ -97,6 +97,9 @@ > "094100"*) > model="TP-Link TL-WR941N/ND" > ;; > + "104100"*) > + model="TP-Link TL-WR1041N/ND" > + ;; > "104300"*) > model="TP-Link TL-WR1043N/ND" > ;; > @@ -274,6 +277,9 @@ > *TEW-673GRU) > name="tew-673gru" > ;; > + *"TL-WR1041N v2") > + name="tl-wr1041n-v2" > + ;; > *TL-WR1043ND) > name="tl-wr1043nd" > ;; > Index: target/linux/ar71xx/base-files/lib/upgrade/platform.sh > =================================================================== > --- target/linux/ar71xx/base-files/lib/upgrade/platform.sh (版本 31481) > +++ target/linux/ar71xx/base-files/lib/upgrade/platform.sh (工作副本) > @@ -136,6 +136,7 @@ > tl-wr841n-v1 | \ > tl-wr841n-v7 | \ > tl-wr941nd | \ > + tl-wr1041n-v2 | \ > tl-wr1043nd | \ > tl-wr2543n) > [ "$magic" != "0100" ] && { > Index: target/linux/ar71xx/base-files/etc/uci-defaults/leds > =================================================================== > --- target/linux/ar71xx/base-files/etc/uci-defaults/leds (版本 31481) > +++ target/linux/ar71xx/base-files/etc/uci-defaults/leds (工作副本) > @@ -188,8 +188,10 @@ > set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > ;; > > -tl-wr941nd) > +tl-wr941nd | \ > +tl-wr1041n-v2) > set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > + set_led_netdev "wan" "WAN" "tp-link:green:wps" "eth0.2" Please, don't add this line. If you want to use the WPS LED for WAN port status, configure that on the board after installing of OpenWrt. > ;; > > tl-wr1043nd) > Index: target/linux/ar71xx/base-files/etc/uci-defaults/network > =================================================================== > --- target/linux/ar71xx/base-files/etc/uci-defaults/network (版本 31481) > +++ target/linux/ar71xx/base-files/etc/uci-defaults/network (工作副本) > @@ -89,6 +89,13 @@ > ucidef_add_switch_vlan "eth0" "2" "0t 2" > ;; > > +tl-wr1041n-v2) > + ucidef_set_interfaces_lan_wan "eth0.1 eth1" "eth0.2" The 'eth1' interface is not valid, please remove it. > + ucidef_add_switch "eth0" "1" "1" > + ucidef_add_switch_vlan "eth0" "1" "0t 2 3 4 5" > + ucidef_add_switch_vlan "eth0" "2" "0t 1" > + ;; > + > tl-wr1043nd) > ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" > ucidef_add_switch "rtl8366rb" "1" "1" > Index: target/linux/ar71xx/base-files/etc/diag.sh > =================================================================== > --- target/linux/ar71xx/base-files/etc/diag.sh (版本 31481) > +++ target/linux/ar71xx/base-files/etc/diag.sh (工作副本) > @@ -112,6 +112,7 @@ > tl-mr3420 | \ > tl-wa901nd | \ > tl-wa901nd-v2 | \ > + tl-wr1041n-v2 | \ > tl-wr1043nd | \ > tl-wr741nd | \ > tl-wr741nd-v4 | \ > Index: target/linux/ar71xx/generic/profiles/tp-link.mk > =================================================================== > --- target/linux/ar71xx/generic/profiles/tp-link.mk (版本 31481) > +++ target/linux/ar71xx/generic/profiles/tp-link.mk (工作副本) > @@ -149,6 +149,17 @@ > $(eval $(call Profile,TLWR941)) > > > +define Profile/TLWR1041 > + NAME:=TP-LINK TL-WR1041N > + PACKAGES:= > +endef > + > +define Profile/TLWR1041/Description > + Package set optimized for the TP-LINK TL-WR1041N/ND. > +endef > +$(eval $(call Profile,TLWR1041)) > + > + > define Profile/TLWR1043 > NAME:=TP-LINK TL-WR1043N/ND > PACKAGES:=kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev > Index: tools/firmware-utils/src/mktplinkfw.c > =================================================================== > --- tools/firmware-utils/src/mktplinkfw.c (版本 31481) > +++ tools/firmware-utils/src/mktplinkfw.c (工作副本) > @@ -49,6 +49,7 @@ > #define HWID_TL_WR941ND_V2 0x09410002 > #define HWID_TL_WR941ND_V4 0x09410004 > #define HWID_TL_WR1043ND_V1 0x10430001 > +#define HWID_TL_WR1041N_V2 0x10410002 > #define HWID_TL_WR2543N_V1 0x25430001 > > #define MD5SUM_LEN 16 > @@ -255,6 +256,11 @@ > .hw_rev = 1, > .layout_id = "4M", > }, { > + .id = "TL-WR1041Nv2", > + .hw_id = HWID_TL_WR1041N_V2, > + .hw_rev = 1, > + .layout_id = "4Mlzma", > + }, { > .id = "TL-WR1043NDv1", > .hw_id = HWID_TL_WR1043ND_V1, > .hw_rev = 1, _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel