From 1edba538a97fe8a17a388a43506fe562533b02ed Mon Sep 17 00:00:00 2001 From: Chuanhong Guo Date: Thu, 2 Aug 2018 13:17:44 +0800 Subject: ath79: Fix led nodes for TL-WR740N v2 and add its clones This patch did the following things: 1. Separate ath9k-leds out of gpio leds so that all other leds will work before ath9k loded (e.g. during preinit/init stage). 2. Rename wps led to qss since that's how TP-Link mark it. 3. Rename LED prefix to tp-link because that dts is shared by many devices. 4. Rename to wr740n-v1 because v1 is the first and v2 just use the fw of v1. (This will require a forced sysupgrade if you comes from the previous wr740n v2 image.) 5. Remove SUPPORTED_DEVICES. (tl-wr740n-v2 doesn't exist anywhere so it's useless.) 6. Add all WR741ND v1 clones found in ar71xx. Signed-off-by: Chuanhong Guo --- target/linux/ath79/base-files/etc/board.d/01_leds | 17 ++- .../linux/ath79/base-files/etc/board.d/02_network | 7 +- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 9 +- .../linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts | 9 ++ .../linux/ath79/dts/ar7240_tplink_tl-wr740n-v2.dts | 154 --------------------- .../linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts | 9 ++ .../linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts | 9 ++ .../ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts | 9 ++ .../ath79/dts/ar7240_tplink_tl-wr74xn-v1.dtsi | 154 +++++++++++++++++++++ .../linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts | 9 ++ .../linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts | 9 ++ target/linux/ath79/image/tiny-tp-link.mk | 47 ++++++- 12 files changed, 276 insertions(+), 166 deletions(-) create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts delete mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v2.dts create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr74xn-v1.dtsi create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts create mode 100644 target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts (limited to 'target') diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index 1ae2feb080..c3dc1bbe56 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -56,12 +56,17 @@ tplink,tl-wr1043nd-v4) ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04" ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" ;; -tplink,tl-wr740n-v2) - ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" - ucidef_set_led_switch "lan1" "LAN1" "$boardname:green:lan1" "switch0" "0x02" - ucidef_set_led_switch "lan2" "LAN2" "$boardname:green:lan2" "switch0" "0x04" - ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08" - ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10" +tplink,tl-wr740n-v1|\ +tplink,tl-wr740n-v3|\ +tplink,tl-wr741-v1|\ +tplink,tl-wr743nd-v1|\ +tplink,tl-wr841-v5|\ +tplink,tl-wr941-v4) + ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0" + ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x02" + ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x04" + ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x08" + ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x10" ;; tplink,tl-wr740nd-v4|\ tplink,tl-wr741nd-v4) diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index f0233b4b28..9ec78ece23 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -97,7 +97,12 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0" ;; - tplink,tl-wr740n-v2) + tplink,tl-wr740n-v1|\ + tplink,tl-wr740n-v3|\ + tplink,tl-wr741-v1|\ + tplink,tl-wr743nd-v1|\ + tplink,tl-wr841-v5|\ + tplink,tl-wr941-v4) ucidef_set_interface_wan "eth0" ucidef_add_switch "switch0" \ "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index b55ae0dbb3..e8adcf613a 100644 --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -61,11 +61,18 @@ case "$FIRMWARE" in tplink,tl-mr3220-v1|\ tplink,tl-mr3420-v1|\ tplink,tl-wr2543-v1|\ - tplink,tl-wr740n-v2|\ + tplink,tl-wr740n-v1|\ + tplink,tl-wr740n-v3|\ + tplink,tl-wr741-v1|\ + tplink,tl-wr743nd-v1|\ tplink,tl-wr841-v7|\ ubnt,unifi) ath9k_eeprom_extract "art" 4096 2048 ;; + tplink,tl-wr841-v5|\ + tplink,tl-wr941-v4) + ath9k_eeprom_extract "art" 4096 3768 + ;; *) ath9k_eeprom_die "board $board is not supported yet" ;; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts new file mode 100644 index 0000000000..a87e105c83 --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v1.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7240_tplink_tl-wr74xn-v1.dtsi" + +/ { + model = "TP-Link TL-WR740N v1/v2"; + compatible = "tplink,tl-wr740n-v1"; +}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v2.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v2.dts deleted file mode 100644 index 90f554df20..0000000000 --- a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v2.dts +++ /dev/null @@ -1,154 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; - -#include -#include - -#include "ar7240.dtsi" - -/ { - compatible = "tplink,tl-wr740n-v2", "qca,ar7240"; - model = "TP-Link TL-WR740N v2"; - - aliases { - led-status = &led_system; - }; - - gpio-keys-polled { - compatible = "gpio-keys-polled"; - poll-interval = <20>; - - reset { - label = "reset"; - linux,code = ; - gpios = <&gpio 11 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - wps { - label = "wps"; - linux,code = ; - gpios = <&gpio 12 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - pinctrl-names = "default"; - pinctrl-0 = <&switch_led_pins>; - - led_system: system { - label = "tl-wr740n-v2:green:system"; - gpios = <&gpio 1 GPIO_ACTIVE_LOW>; - }; - - lan1 { - label = "tl-wr740n-v2:green:lan1"; - gpios = <&gpio 13 GPIO_ACTIVE_LOW>; - }; - - lan2 { - label = "tl-wr740n-v2:green:lan2"; - gpios = <&gpio 14 GPIO_ACTIVE_LOW>; - }; - - lan3 { - label = "tl-wr740n-v2:green:lan3"; - gpios = <&gpio 15 GPIO_ACTIVE_LOW>; - }; - - lan4 { - label = "tl-wr740n-v2:green:lan4"; - gpios = <&gpio 16 GPIO_ACTIVE_LOW>; - }; - - wan { - label = "tl-wr740n-v2:green:wan"; - gpios = <&gpio 17 GPIO_ACTIVE_LOW>; - }; - - wlan { - label = "tl-wr740n-v2:green:wlan"; - gpios = <&ath9k 1 GPIO_ACTIVE_LOW>; - default-state = "off"; - linux,default-trigger = "phy0tpt"; - }; - - wps { - label = "tl-wr740n-v2:green:wps"; - gpios = <&gpio 0 GPIO_ACTIVE_LOW>; - }; - }; -}; - -&spi { - status = "okay"; - num-cs = <1>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <25000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - uboot: partition@0 { - reg = <0x0 0x20000>; - label = "u-boot"; - read-only; - }; - - firmware: partition@20000 { - reg = <0x20000 0x3d0000>; - label = "firmware"; - }; - - art: partition@3f0000 { - reg = <0x3f0000 0x10000>; - label = "art"; - read-only; - }; - }; - }; -}; - -ð0 { - status = "okay"; - - mtd-mac-address = <&uboot 0x1fc00>; - mtd-mac-address-increment = <(-1)>; -}; - -ð1 { - status = "okay"; - - mtd-mac-address = <&uboot 0x1fc00>; - mtd-mac-address-increment = <1>; -}; - -&pcie { - status = "okay"; - - ath9k: wifi@0,0 { - compatible = "pci168c,002b"; - reg = <0x0000 0 0 0 0>; - qca,no-eeprom; - mtd-mac-address = <&uboot 0x1fc00>; - #gpio-cells = <2>; - gpio-controller; - }; -}; - -&pinmux { - switch_led_pins: pinmux_switch_led_pins { - pinctrl-single,bits = <0x0 0x0 0xf8>; - }; -}; - -&uart { - status = "okay"; -}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts new file mode 100644 index 0000000000..4c1aa57c4c --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr740n-v3.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7240_tplink_tl-wr74xn-v1.dtsi" + +/ { + model = "TP-Link TL-WR740N v3"; + compatible = "tplink,tl-wr740n-v3"; +}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts new file mode 100644 index 0000000000..1d795be23b --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr741-v1.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7240_tplink_tl-wr74xn-v1.dtsi" + +/ { + model = "TP-Link TL-WR741N/ND v1/v2"; + compatible = "tplink,tl-wr741-v1"; +}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts new file mode 100644 index 0000000000..5fff1a5986 --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr743nd-v1.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7240_tplink_tl-wr74xn-v1.dtsi" + +/ { + model = "TP-Link TL-WR743ND v1"; + compatible = "tplink,tl-wr743nd-v1"; +}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr74xn-v1.dtsi b/target/linux/ath79/dts/ar7240_tplink_tl-wr74xn-v1.dtsi new file mode 100644 index 0000000000..80623d57bd --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr74xn-v1.dtsi @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include +#include + +#include "ar7240.dtsi" + +/ { + aliases { + led-status = &led_system; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + poll-interval = <20>; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + wps { + label = "wps"; + linux,code = ; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&switch_led_pins>; + + led_system: system { + label = "tp-link:green:system"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + }; + + qss { + label = "tp-link:green:qss"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + }; + + lan1 { + label = "tp-link:green:lan1"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + lan2 { + label = "tp-link:green:lan2"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + lan3 { + label = "tp-link:green:lan3"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + lan4 { + label = "tp-link:green:lan4"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + + wan { + label = "tp-link:green:wan"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + }; + + ath9k-leds { + compatible = "gpio-leds"; + + wlan { + label = "tp-link:green:wlan"; + gpios = <&ath9k 1 GPIO_ACTIVE_LOW>; + default-state = "off"; + linux,default-trigger = "phy0tpt"; + }; + }; +}; + +&spi { + status = "okay"; + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + uboot: partition@0 { + reg = <0x0 0x20000>; + label = "u-boot"; + read-only; + }; + + firmware: partition@20000 { + reg = <0x20000 0x3d0000>; + label = "firmware"; + }; + + art: partition@3f0000 { + reg = <0x3f0000 0x10000>; + label = "art"; + read-only; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&uboot 0x1fc00>; + mtd-mac-address-increment = <(-1)>; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&uboot 0x1fc00>; + mtd-mac-address-increment = <1>; +}; + +&pcie { + status = "okay"; + + ath9k: wifi@0,0 { + compatible = "pci168c,002b"; + reg = <0x0000 0 0 0 0>; + qca,no-eeprom; + mtd-mac-address = <&uboot 0x1fc00>; + #gpio-cells = <2>; + gpio-controller; + }; +}; + +&pinmux { + switch_led_pins: pinmux_switch_led_pins { + pinctrl-single,bits = <0x0 0x0 0xf8>; + }; +}; + +&uart { + status = "okay"; +}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts new file mode 100644 index 0000000000..bcb82f3c8c --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr841-v5.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7240_tplink_tl-wr74xn-v1.dtsi" + +/ { + model = "TP-Link TL-WR841N/ND v5/v6"; + compatible = "tplink,tl-wr841-v5"; +}; diff --git a/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts b/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts new file mode 100644 index 0000000000..c67d803651 --- /dev/null +++ b/target/linux/ath79/dts/ar7240_tplink_tl-wr941-v4.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar7240_tplink_tl-wr74xn-v1.dtsi" + +/ { + model = "TP-Link TL-WR941N/ND v4"; + compatible = "tplink,tl-wr941-v4"; +}; diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index 44dd2700a5..6aefd9e14c 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -51,14 +51,21 @@ define Device/tplink_tl-wr703n endef TARGET_DEVICES += tplink_tl-wr703n -define Device/tplink_tl-wr740n-v2 +define Device/tplink_tl-wr740n-v1 $(Device/tplink-4m) ATH_SOC := ar7240 - DEVICE_TITLE := TP-Link TL-WR740N/ND v2 + DEVICE_TITLE := TP-Link TL-WR740N v1/v2 TPLINK_HWID := 0x07400001 - SUPPORTED_DEVICES += tl-wr740n-v2 endef -TARGET_DEVICES += tplink_tl-wr740n-v2 +TARGET_DEVICES += tplink_tl-wr740n-v1 + +define Device/tplink_tl-wr740n-v3 + $(Device/tplink-4m) + ATH_SOC := ar7240 + DEVICE_TITLE := TP-Link TL-WR740N v3 + TPLINK_HWID := 0x07400003 +endef +TARGET_DEVICES += tplink_tl-wr740n-v3 define Device/tplink_tl-wr740nd-v4 $(Device/tplink-4mlzma) @@ -69,6 +76,14 @@ define Device/tplink_tl-wr740nd-v4 endef TARGET_DEVICES += tplink_tl-wr740nd-v4 +define Device/tplink_tl-wr741-v1 + $(Device/tplink-4m) + ATH_SOC := ar7240 + DEVICE_TITLE := TP-Link TL-WR741N/ND v1/v2 + TPLINK_HWID := 0x07410001 +endef +TARGET_DEVICES += tplink_tl-wr741-v1 + define Device/tplink_tl-wr741nd-v4 $(Device/tplink-4mlzma) ATH_SOC := ar9331 @@ -78,6 +93,22 @@ define Device/tplink_tl-wr741nd-v4 endef TARGET_DEVICES += tplink_tl-wr741nd-v4 +define Device/tplink_tl-wr743nd-v1 + $(Device/tplink-4m) + ATH_SOC := ar7240 + DEVICE_TITLE := TP-Link TL-WR743ND v1 + TPLINK_HWID := 0x07430001 +endef +TARGET_DEVICES += tplink_tl-wr743nd-v1 + +define Device/tplink_tl-wr841-v5 + $(Device/tplink-4m) + ATH_SOC := ar7240 + DEVICE_TITLE := TP-Link TL-WR841N/ND v5/v6 + TPLINK_HWID := 0x08410005 +endef +TARGET_DEVICES += tplink_tl-wr841-v5 + define Device/tplink_tl-wr841-v7 $(Device/tplink-4m) ATH_SOC := ar7241 @@ -95,3 +126,11 @@ define Device/tplink_tl-wr841-v9 SUPPORTED_DEVICES += tl-wr841n-v9 endef TARGET_DEVICES += tplink_tl-wr841-v9 + +define Device/tplink_tl-wr941-v4 + $(Device/tplink-4m) + ATH_SOC := ar7240 + DEVICE_TITLE := TP-Link TL-WR941N/ND v4 + TPLINK_HWID := 0x09410004 +endef +TARGET_DEVICES += tplink_tl-wr941-v4 -- cgit v1.2.3