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

Reply via email to