Ticket #7528: 7528-wa901nd_support.diff

File 7528-wa901nd_support.diff, 9.4 KB (added by Pieter "Fate" Hollants <pieter@…>, 6 years ago)

Patch to add TL-WA901ND support to OpenWrt

  • target/linux/ar71xx/image/Makefile

     
    517517        $(call Image/Build/Template/$(fs_64k)/$(1),Planex,mzk-w300nh,board=MZK-W300NH) 
    518518endef 
    519519 
     520define Image/Build/Profile/TLWA901NDV1 
     521        $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wa901nd-v1,board=TL-WA901ND,TL-WA901NDv1) 
     522endef 
     523 
    520524define Image/Build/Profile/TLWR741NDV1 
    521525        $(call Image/Build/Template/$(fs_4k)/$(1),TPLINK,tl-wr741nd-v1,board=TL-WR741ND,TL-WR741NDv1) 
    522526endef 
     
    585589        $(call Image/Build/Profile/PB92,$(1)) 
    586590        $(call Image/Build/Profile/TEW632BRP,$(1)) 
    587591        $(call Image/Build/Profile/TEW652BRP,$(1)) 
     592        $(call Image/Build/Profile/TLWA901NDV1,$(1)) 
    588593        $(call Image/Build/Profile/TLWR741NDV1,$(1)) 
    589594        $(call Image/Build/Profile/TLWR841NV15,$(1)) 
    590595        $(call Image/Build/Profile/TLWR841NDV3,$(1)) 
  • target/linux/ar71xx/config-2.6.32

     
    3333CONFIG_AR71XX_MACH_RB4XX=y 
    3434CONFIG_AR71XX_MACH_RB750=y 
    3535CONFIG_AR71XX_MACH_TEW_632BRP=y 
     36CONFIG_AR71XX_MACH_TL_WA901ND=y 
    3637CONFIG_AR71XX_MACH_TL_WR1043ND=y 
    3738CONFIG_AR71XX_MACH_TL_WR741ND=y 
    3839CONFIG_AR71XX_MACH_TL_WR841N_V1=y 
  • target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd.c

     
     1/* 
     2 *  TP-LINK TL-WA901ND board support 
     3 * 
     4 *  Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org> 
     5 *  Copyright (C) 2010 Pieter Hollants <pieter@hollants.com> 
     6 * 
     7 *  This program is free software; you can redistribute it and/or modify it 
     8 *  under the terms of the GNU General Public License version 2 as published 
     9 *  by the Free Software Foundation. 
     10 */ 
     11 
     12#include <linux/mtd/mtd.h> 
     13#include <linux/mtd/partitions.h> 
     14 
     15#include <asm/mach-ar71xx/ar71xx.h> 
     16 
     17#include "machtype.h" 
     18#include "devices.h" 
     19#include "dev-dsa.h" 
     20#include "dev-m25p80.h" 
     21#include "dev-ap91-pci.h" 
     22#include "dev-gpio-buttons.h" 
     23#include "dev-leds-gpio.h" 
     24 
     25#define TL_WA901ND_GPIO_LED_QSS         0 
     26#define TL_WA901ND_GPIO_LED_SYSTEM      1 
     27 
     28#define TL_WA901ND_GPIO_BTN_RESET       11 
     29#define TL_WA901ND_GPIO_BTN_QSS         12 
     30 
     31#define TL_WA901ND_BUTTONS_POLL_INTERVAL        20 
     32 
     33#ifdef CONFIG_MTD_PARTITIONS 
     34static struct mtd_partition tl_wa901nd_partitions[] = { 
     35        { 
     36                .name           = "u-boot", 
     37                .offset         = 0, 
     38                .size           = 0x020000, 
     39                .mask_flags     = MTD_WRITEABLE, 
     40        } , { 
     41                .name           = "kernel", 
     42                .offset         = 0x020000, 
     43                .size           = 0x140000, 
     44        } , { 
     45                .name           = "rootfs", 
     46                .offset         = 0x160000, 
     47                .size           = 0x290000, 
     48        } , { 
     49                .name           = "art", 
     50                .offset         = 0x3f0000, 
     51                .size           = 0x010000, 
     52                .mask_flags     = MTD_WRITEABLE, 
     53        } , { 
     54                .name           = "firmware", 
     55                .offset         = 0x020000, 
     56                .size           = 0x3d0000, 
     57        } 
     58}; 
     59#endif /* CONFIG_MTD_PARTITIONS */ 
     60 
     61static struct flash_platform_data tl_wa901nd_flash_data = { 
     62#ifdef CONFIG_MTD_PARTITIONS 
     63        .parts          = tl_wa901nd_partitions, 
     64        .nr_parts       = ARRAY_SIZE(tl_wa901nd_partitions), 
     65#endif 
     66}; 
     67 
     68static struct gpio_led tl_wa901nd_leds_gpio[] __initdata = { 
     69        { 
     70                .name           = "tl-wa901nd:green:system", 
     71                .gpio           = TL_WA901ND_GPIO_LED_SYSTEM, 
     72                .active_low     = 1, 
     73        }, { 
     74                .name           = "tl-wa901nd:green:qss", 
     75                .gpio           = TL_WA901ND_GPIO_LED_QSS, 
     76                .active_low     = 1, 
     77        } 
     78}; 
     79 
     80static struct gpio_button tl_wa901nd_gpio_buttons[] __initdata = { 
     81        { 
     82                .desc           = "reset", 
     83                .type           = EV_KEY, 
     84                .code           = BTN_0, 
     85                .threshold      = 3, 
     86                .gpio           = TL_WA901ND_GPIO_BTN_RESET, 
     87                .active_low     = 1, 
     88        }, { 
     89                .desc           = "qss", 
     90                .type           = EV_KEY, 
     91                .code           = BTN_1, 
     92                .threshold      = 3, 
     93                .gpio           = TL_WA901ND_GPIO_BTN_QSS, 
     94                .active_low     = 1, 
     95        } 
     96}; 
     97 
     98static struct dsa_chip_data tl_wa901nd_v1_dsa_chip = { 
     99        .port_names[0]  = "cpu", 
     100        .port_names[1]  = "lan", 
     101}; 
     102 
     103static struct dsa_platform_data tl_wa901nd_v1_dsa_data = { 
     104        .nr_chips       = 1, 
     105        .chip           = &tl_wa901nd_v1_dsa_chip, 
     106}; 
     107 
     108static void __init tl_wa901nd_setup(void) 
     109{ 
     110        u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); 
     111        u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); 
     112 
     113        ar71xx_set_mac_base(mac); 
     114 
     115        ar71xx_add_device_mdio(0x0); 
     116 
     117        /* ar71xx_eth0 is be the WAN port, but it is not connected on 
     118           the TL-WA901ND. ar71xx_eth1 connects to the internal switch chip, 
     119           even though we have a single Ethernet port only */ 
     120        ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; 
     121        ar71xx_eth0_data.speed = SPEED_1000; 
     122        ar71xx_eth0_data.duplex = DUPLEX_FULL; 
     123 
     124        ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; 
     125        ar71xx_eth1_data.speed = SPEED_1000; 
     126        ar71xx_eth1_data.duplex = DUPLEX_FULL; 
     127 
     128        ar71xx_eth1_data.fifo_cfg1 = 0x0fff0000; 
     129        ar71xx_eth1_data.fifo_cfg2 = 0x00001fff; 
     130        ar71xx_eth1_data.fifo_cfg3 = 0x008001ff; 
     131 
     132        ar71xx_add_device_eth(0); 
     133        ar71xx_add_device_eth(1); 
     134 
     135        ar71xx_add_device_dsa(1, &tl_wa901nd_v1_dsa_data); 
     136 
     137        ar71xx_add_device_m25p80(&tl_wa901nd_flash_data); 
     138 
     139        ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wa901nd_leds_gpio), 
     140                                        tl_wa901nd_leds_gpio); 
     141 
     142        ar71xx_add_device_gpio_buttons(-1, TL_WA901ND_BUTTONS_POLL_INTERVAL, 
     143                                        ARRAY_SIZE(tl_wa901nd_gpio_buttons), 
     144                                        tl_wa901nd_gpio_buttons); 
     145 
     146        ap91_pci_init(ee, mac); 
     147} 
     148 
     149MIPS_MACHINE(AR71XX_MACH_TL_WA901ND, "TL-WA901ND", "TP-LINK TL-WA901ND", 
     150             tl_wa901nd_setup); 
  • target/linux/ar71xx/files/arch/mips/ar71xx/Makefile

     
    4343obj-$(CONFIG_AR71XX_MACH_RB4XX)         += mach-rb4xx.o 
    4444obj-$(CONFIG_AR71XX_MACH_RB750)         += mach-rb750.o 
    4545obj-$(CONFIG_AR71XX_MACH_TEW_632BRP)    += mach-tew-632brp.o 
     46obj-$(CONFIG_AR71XX_MACH_TL_WA901ND)    += mach-tl-wa901nd.o 
    4647obj-$(CONFIG_AR71XX_MACH_TL_WR741ND)    += mach-tl-wr741nd.o 
    4748obj-$(CONFIG_AR71XX_MACH_TL_WR841N_V1)  += mach-tl-wr841n.o 
    4849obj-$(CONFIG_AR71XX_MACH_TL_WR941ND)    += mach-tl-wr941nd.o 
  • target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h

     
    3737        AR71XX_MACH_MZK_W300NH, /* Planex MZK-W300NH */ 
    3838        AR71XX_MACH_NBG460N,    /* Zyxel NBG460N/550N/550NH */ 
    3939        AR71XX_MACH_TEW_632BRP, /* TRENDnet TEW-632BRP */ 
     40        AR71XX_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */ 
    4041        AR71XX_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */ 
    4142        AR71XX_MACH_TL_WR841N_V1, /* TP-LINK TL-WR841N v1 */ 
    4243        AR71XX_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */ 
  • target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig

     
    167167        select AR71XX_DEV_GPIO_BUTTONS 
    168168        select AR71XX_DEV_LEDS_GPIO 
    169169        default n 
     170 
     171config AR71XX_MACH_TL_WA901ND 
     172        bool "TP-LINK TL-WA901ND support" 
     173        select AR71XX_DEV_M25P80 
     174        select AR71XX_DEV_AP91_ETH 
     175        select AR71XX_DEV_AP91_PCI if PCI 
     176        select AR71XX_DEV_DSA 
     177        select AR71XX_DEV_GPIO_BUTTONS 
     178        select AR71XX_DEV_LEDS_GPIO 
     179        default n 
    170180         
    171181config AR71XX_MACH_TL_WR741ND 
    172182        bool "TP-LINK TL-WR741ND support" 
  • target/linux/ar71xx/base-files/lib/ar71xx.sh

     
    9191        *"DIR-615 rev. C1") 
    9292                name="dir-615-c1" 
    9393                ;; 
     94        *TL-WA901ND) 
     95                name="tl-wa901nd" 
     96                ;; 
    9497        *TL-WR741ND) 
    9598                name="tl-wr741nd" 
    9699                ;; 
  • target/linux/ar71xx/base-files/lib/upgrade/platform.sh

     
    7575                } 
    7676                return 0 
    7777                ;; 
    78         tl-wr741nd | tl-wr841n-v1 | tl-wr941nd | tl-wr1043nd) 
     78        tl-wa901nd | tl-wr741nd | tl-wr841n-v1 | tl-wr941nd | tl-wr1043nd) 
    7979                [ "$magic" != "0100" ] && { 
    8080                        echo "Invalid image type." 
    8181                        return 1 
  • target/linux/ar71xx/base-files/etc/diag.sh

     
    7272        tew-632brp) 
    7373                status_led="tew-632brp:green:status" 
    7474                ;; 
     75        tl-wa901nd) 
     76                status_led="tl-wa901nd:green:system" 
     77                ;; 
    7578        tl-wr1043nd) 
    7679                status_led="tl-wr1043nd:green:system" 
    7780                ;; 
  • target/linux/ar71xx/generic/profiles/tp-link.mk

     
    55# See /LICENSE for more information. 
    66# 
    77 
     8define Profile/TLWA901NDV1 
     9        NAME:=TP-LINK TL-WA901ND v1 
     10        PACKAGES:=kmod-ath9k wpad-mini 
     11endef 
     12 
     13define Profile/TLWA901NDV1/Description 
     14        Package set optimized for the TP-LINK TL-WA901ND v1. 
     15endef 
     16 
     17$(eval $(call Profile,TLWA901NDV1)) 
     18 
    819define Profile/TLWR741NDV1 
    920        NAME:=TP-LINK TL-WR741ND v1 
    1021        PACKAGES:=kmod-ath9k wpad-mini