diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index 4b845404f609917bee3c52dd251b42a0996f38fa..61665fed9efd5234df407df8fc17267fc182c978 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -565,6 +565,9 @@ re450) ucidef_set_led_wlan "wlan2g" "WLAN 2.4 GHz" "$board:blue:wlan2g" "phy1tpt" ucidef_set_led_wlan "wlan5g" "WLAN 5 GHz" "$board:blue:wlan5g" "phy0tpt" ;; +sgr-w500-n85b-v2) + ucidef_set_led_wlan "wlan" "WLAN" "grentech:green:wlan2g" "phy0tpt" + ;; smart-300) ucidef_set_led_netdev "wan" "WAN" "nc-link:green:wan" "eth0" ucidef_set_led_switch "lan1" "LAN1" "nc-link:green:lan1" "switch0" "0x04" diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index 397fcb06f84c8f8a8b1191169dde11e650dce899..24501990f75c7a644a4ade19eddfe7f37ca2a599 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -132,6 +132,7 @@ ar71xx_setup_interfaces() unifiac-lite|\ wi2a-ac200i|\ wndap360|\ + sgr-w500-n85b-v2 |\ wp543) ucidef_set_interface_lan "eth0" ;; diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 1bfc07b4a4f802411012feea4856b4e5ed274f33..2ac3aea0a84d87ad9f3ee1496d803b0ebcb789ff 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -350,6 +350,9 @@ get_status_led() { rw2458n) status_led="$board:green:d3" ;; + sgr-w500-n85b-v2) + status_led="grentech:green:status" + ;; smart-300) status_led="nc-link:green:system" ;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 9b5c5fbff62cf2bac30248716c544f36033989a7..3819b96b85c79c36c9886a1c4feefeef6acff34e 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -992,6 +992,9 @@ ar71xx_board_detect() { *"SC450") name="sc450" ;; + "GRENTECH SGR-W500-N85b v2.0") + name="sgr-w500-n85b-v2" + ;; *"SMART-300") name="smart-300" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 632b61cbaff4d40778d92c32fe9187077a6938a5..a41f3b7096ebf3c5eaedf1945cb12323c0b9d860 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -328,6 +328,7 @@ platform_check_image() { hornet-ub|\ mr12|\ mr16|\ + sgr-w500-n85b-v2|\ zbt-we1526|\ zcn-1523h-2|\ zcn-1523h-5) diff --git a/target/linux/ar71xx/config-4.4 b/target/linux/ar71xx/config-4.4 index fd77853f8ad400b3448938179dab09efa86eaa7a..1cf7677f950c7f7fd7fa7cb852b3bf4dcf2f040c 100644 --- a/target/linux/ar71xx/config-4.4 +++ b/target/linux/ar71xx/config-4.4 @@ -168,6 +168,7 @@ CONFIG_ATH79_MACH_RW2458N=y CONFIG_ATH79_MACH_SC1750=y CONFIG_ATH79_MACH_SC300M=y CONFIG_ATH79_MACH_SC450=y +CONFIG_ATH79_MACH_SGR_W500_N85B_V2=y CONFIG_ATH79_MACH_SMART_300=y CONFIG_ATH79_MACH_SOM9331=y CONFIG_ATH79_MACH_SR3200=y diff --git a/target/linux/ar71xx/config-4.9 b/target/linux/ar71xx/config-4.9 index c07be1dc95339319987721693dcc66cb599ff4a3..2f963c730f6ce2a6deee043eee1d58d9f15162c5 100644 --- a/target/linux/ar71xx/config-4.9 +++ b/target/linux/ar71xx/config-4.9 @@ -166,6 +166,7 @@ CONFIG_ATH79_MACH_RW2458N=y CONFIG_ATH79_MACH_SC1750=y CONFIG_ATH79_MACH_SC300M=y CONFIG_ATH79_MACH_SC450=y +CONFIG_ATH79_MACH_SGR_W500_N85B_V2=y CONFIG_ATH79_MACH_SMART_300=y CONFIG_ATH79_MACH_SOM9331=y CONFIG_ATH79_MACH_SR3200=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index be94fd0c8f8c238057b6f211f3e6102b891a20d3..f0203c2a90201252e2de3bab6fe4ea6e433d1234 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -2171,3 +2171,14 @@ config ATH79_MACH_FRITZ300E select ATH79_DEV_GPIO_BUTTONS select ATH79_DEV_LEDS_GPIO select ATH79_DEV_M25P80 + +config ATH79_MACH_SGR_W500_N85B_V2 + bool "GRENTECH SGR-W500-N85b v2.0 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_WMAC + select ATH79_DEV_USB diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile index 8ba3e8c6bbace216ab41c831200bc02143c4e09e..6af6e8071cdf15f918db31d52ff178091981dc8d 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile @@ -175,6 +175,7 @@ obj-$(CONFIG_ATH79_MACH_RW2458N) += mach-rw2458n.o obj-$(CONFIG_ATH79_MACH_SC1750) += mach-sc1750.o obj-$(CONFIG_ATH79_MACH_SC300M) += mach-sc300m.o obj-$(CONFIG_ATH79_MACH_SC450) += mach-sc450.o +obj-$(CONFIG_ATH79_MACH_SGR_W500_N85B_V2) += mach-sgr-w500-n85b-v2.o obj-$(CONFIG_ATH79_MACH_SMART_300) += mach-smart-300.o obj-$(CONFIG_ATH79_MACH_SOM9331) += mach-som9331.o obj-$(CONFIG_ATH79_MACH_SR3200) += mach-sr3200.o diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-sgr-w500-n85b-v2.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-sgr-w500-n85b-v2.c new file mode 100755 index 0000000000000000000000000000000000000000..d2749e483ac47a011f394b102d8f7be3ea9b4ec4 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-sgr-w500-n85b-v2.c @@ -0,0 +1,134 @@ +/* + * GRENTECH SGR-W500-N85b v2.0 board support + * + * Copyright (c) 2017 Weijie Gao + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include +#include +#include +#include +#include + +#include + +#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 GRENTECH_GPIO_LED_STATUS 21 +#define GRENTECH_GPIO_LED_WLAN2G 20 + +#define GRENTECH_GPIO_BUTTON_RESET 3 + +#define GRENTECH_GPIO_RTL8211E_RESET_L 11 + +#define GRENTECH_GPIO_EXTERNAL_LNA0 18 +#define GRENTECH_GPIO_EXTERNAL_LNA1 19 + +#define GRENTECH_KEYS_POLL_INTERVAL 20 /* msecs */ +#define GRENTECH_KEYS_DEBOUNCE_INTERVAL (3 * GRENTECH_KEYS_POLL_INTERVAL) + +#define GRENTECH_MAC_OFFSET 0 +#define GRENTECH_WMAC_CALDATA_OFFSET 0x1000 +#define GRENTECH_PCIE_CALDATA_OFFSET 0x5000 + +static struct gpio_led grentech_leds_gpio[] __initdata = { + { + .name = "grentech:green:status", + .gpio = GRENTECH_GPIO_LED_STATUS, + .active_low = 1, + }, + { + .name = "grentech:green:wlan2g", + .gpio = GRENTECH_GPIO_LED_WLAN2G, + .active_low = 1, + } +}; + +static struct gpio_keys_button grentech_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = GRENTECH_KEYS_DEBOUNCE_INTERVAL, + .gpio = GRENTECH_GPIO_BUTTON_RESET, + .active_low = 1, + }, +}; + +static struct mdio_board_info grentech_mdio0_info[] = { + { + .bus_id = "ag71xx-mdio.0", + .phy_addr = 1, + }, +}; + +static void __init grentech_setup(void) +{ + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); + u8 tmpmac[ETH_ALEN]; + + ath79_register_m25p80(NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(grentech_leds_gpio), + grentech_leds_gpio); + ath79_register_gpio_keys_polled(-1, GRENTECH_KEYS_POLL_INTERVAL, + ARRAY_SIZE(grentech_gpio_keys), + grentech_gpio_keys); + + gpio_request_one(GRENTECH_GPIO_RTL8211E_RESET_L, + GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + "RTL8211E reset pin"); + + ath79_wmac_set_ext_lna_gpio(0, GRENTECH_GPIO_EXTERNAL_LNA0); + ath79_wmac_set_ext_lna_gpio(1, GRENTECH_GPIO_EXTERNAL_LNA1); + + ath79_init_mac(tmpmac, art + GRENTECH_MAC_OFFSET, 1); + ath79_register_wmac(art + GRENTECH_WMAC_CALDATA_OFFSET, tmpmac); + + /* AR9382 */ + ath79_init_mac(tmpmac, art + GRENTECH_MAC_OFFSET, 2); + ap9x_pci_setup_wmac_led_pin(0, 6); + ap91_pci_init(art + GRENTECH_PCIE_CALDATA_OFFSET, tmpmac); + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_RGMII_GMAC0); + + ath79_register_mdio(0, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, art + GRENTECH_MAC_OFFSET, 0); + + mdiobus_register_board_info(grentech_mdio0_info, + ARRAY_SIZE(grentech_mdio0_info)); + + /* GMAC0 is connected to a RTL8211E Gigabit PHY */ + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ath79_eth0_data.phy_mask = BIT(1); + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; + ath79_eth0_pll_data.pll_1000 = 0x46000000; + ath79_eth0_pll_data.pll_100 = 0x0101; + ath79_eth0_pll_data.pll_10 = 0x1313; + ath79_register_eth(0); +} + +MIPS_MACHINE(ATH79_MACH_SGR_W500_N85B_V2, "SGRW500N85BV2", "GRENTECH SGR-W500-N85b v2.0", + grentech_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941n-v7.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr941n-v7.c old mode 100644 new mode 100755 diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 6016a72c13a20c6db895990ef046db8b73206481..8d9b6b080cf4336dd902bc410961e9c2844fc5a3 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -203,6 +203,7 @@ enum ath79_mach_type { ATH79_MACH_SC1750, /* Abicom SC1750 */ ATH79_MACH_SC300M, /* Abicom SC300M */ ATH79_MACH_SC450, /* Abicom SC450 */ + ATH79_MACH_SGR_W500_N85B_V2, /* GRENTECH SGR-W500-N85B v2 */ ATH79_MACH_SMART_300, /* NC-LINK SMART-300 */ ATH79_MACH_SOM9331, /* OpenEmbed SOM9331 */ ATH79_MACH_SR3200, /* YunCore SR3200 */ diff --git a/target/linux/ar71xx/image/legacy-devices.mk b/target/linux/ar71xx/image/legacy-devices.mk index e418282dd0cbe8c4fef8b479a1cf12e5825a988e..5c37229e7cbce01a8e15011f1d17ce2f08e25bf4 100644 --- a/target/linux/ar71xx/image/legacy-devices.mk +++ b/target/linux/ar71xx/image/legacy-devices.mk @@ -589,3 +589,9 @@ define LegacyDevice/NBG_460N_550N_550NH DEVICE_PACKAGES := kmod-rtc-pcf8563 endef LEGACY_DEVICES += NBG_460N_550N_550NH + +define LegacyDevice/SGRW500N85BV2 + DEVICE_TITLE := GRENTECH SGR-W500-N85b v2.0 board + DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage +endef +LEGACY_DEVICES += SGRW500N85BV2 diff --git a/target/linux/ar71xx/image/legacy.mk b/target/linux/ar71xx/image/legacy.mk index 701116be43b593b118a3cf3695e6e459be7f3cb8..f358b63e7acace766bc77294ba7c78eea8719b07 100644 --- a/target/linux/ar71xx/image/legacy.mk +++ b/target/linux/ar71xx/image/legacy.mk @@ -1004,6 +1004,7 @@ $(eval $(call SingleProfile,Zcomax,64k,ZCN1523H28,zcn-1523h-2-8,ZCN-1523H-2,ttyS $(eval $(call SingleProfile,Zcomax,64k,ZCN1523H516,zcn-1523h-5-16,ZCN-1523H-5,ttyS0,115200,$$(zcn1523h_mtdlayout))) $(eval $(call SingleProfile,ZyXEL,64k,NBG_460N_550N_550NH,nbg460n_550n_550nh,NBG460N,ttyS0,115200,NBG-460N)) +$(eval $(call SingleProfile,AthLzma,64k,SGRW500N85BV2,sgr-w500-n85b-v2,SGRW500N85BV2,ttyS0,115200,$$(ap147_mtdlayout),RKuImage)) endif # ifeq ($(SUBTARGET),generic) diff --git a/target/linux/ar71xx/image/tp-link.mk b/target/linux/ar71xx/image/tp-link.mk index abfa4ec4a667896c3f9c43342f4a7396621a9347..1e0ef1b218de6b2a41857ea16cfd2441c83a174d 100644 --- a/target/linux/ar71xx/image/tp-link.mk +++ b/target/linux/ar71xx/image/tp-link.mk @@ -1102,6 +1102,14 @@ define Device/tl-wr941nd-v6-cn TPLINK_HWID := 0x09410006 endef +define Device/tl-wr2041nd-v1 + $(Device/tplink-8mlzma) + DEVICE_TITLE := TP-LINK TL-WR2041N/ND v1 + BOARDNAME := TL-WDR3500 + DEVICE_PROFILE := TLWR2041 + TPLINK_HWID := 0x20410001 +endef + define Device/tl-wr942n-v1 DEVICE_TITLE := TP-LINK TL-WR942N v1 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport @@ -1118,7 +1126,7 @@ define Device/tl-wr942n-v1 SUPPORTED_DEVICES := tl-wr942n-v1 endef -TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr942n-v1 +TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr942n-v1 tl-wr2041nd-v1 define Device/tl-wr941n-v7 $(Device/tplink-8mlzma) @@ -1160,3 +1168,12 @@ define Device/tl-wr882n-v1 TPLINK_HWID := 0x08820001 endef TARGET_DEVICES += tl-wr882n-v1 + +define Device/tl-wr2041nd-v2 + $(Device/tplink-8mlzma) + DEVICE_TITLE := TP-LINK TL-WR2041N/ND v2 + BOARDNAME := TL-WR941N-v7 + DEVICE_PROFILE := TLWR2041 + TPLINK_HWID := 0x20410002 +endef +TARGET_DEVICES += tl-wr2041nd-v2