Message ID | 11bf3f46f1d9900e5a5476ab8ac6d3cae218fab5.1530028505.git.rocco@folino.io |
---|---|
State | Changes Requested |
Delegated to: | John Crispin |
Headers | show |
Series | [OpenWrt-Devel] ath79: port TP-Link TL-WR741ND v4 and TL-WR740ND v4 | expand |
Hey Rocco, find my (minor) comments inline. 2018-06-26 17:58 GMT+02:00 Rocco Folino <rocco@folino.io>: > This patch ports the TP-Link TL-WR741ND v4 and TL-WR740ND v4 to the > ath79 target. > > Because the two devices share the same hw layout, this patch adds a common > .dtsi which is included by the two .dts. > > Signed-off-by: Rocco Folino <rocco@folino.io> > --- > .../ath79/base-files/etc/board.d/01_leds | 9 + > .../ath79/base-files/etc/board.d/02_network | 7 + > .../linux/ath79/dts/ar9331_tl-wr740nd-v4.dts | 9 + > .../linux/ath79/dts/ar9331_tl-wr741nd-v4.dts | 9 + > .../linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi | 169 ++++++++++++++++++ > target/linux/ath79/image/tiny-tp-link.mk | 18 ++ > 6 files changed, 221 insertions(+) > create mode 100644 target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts > create mode 100644 target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts > create mode 100644 target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi > > 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 29416ad83ea7..13d8d1004f79 100755 > --- a/target/linux/ath79/base-files/etc/board.d/01_leds > +++ b/target/linux/ath79/base-files/etc/board.d/01_leds > @@ -45,6 +45,15 @@ case "$board" in > ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08" > ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10" > ;; > +"tplink,tl-wr741nd-v4"|\ > +"tplink,tl-wr740nd-v4") > + ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" > + ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04" > + ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08" > + ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10" > + ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" > + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" Please use the linux,default-trigger devicetree property to set the phy0tpt trigger. Have a look at the existing ath79 dts files for examples. > + ;; > esac > > board_config_flush > 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 e2a45b05261a..510b563d6998 100755 > --- a/target/linux/ath79/base-files/etc/board.d/02_network > +++ b/target/linux/ath79/base-files/etc/board.d/02_network > @@ -62,6 +62,13 @@ ath79_setup_interfaces() > "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" > ;; > > + "tplink,tl-wr741nd-v4"|\ > + "tplink,tl-wr740nd-v4") > + ucidef_set_interfaces_lan_wan "eth0.1" "eth1" ucidef_add_switch should already set the lan interface. A ucidef_set_interface_wan "eth1" should be sufficient here. > + ucidef_add_switch "switch0" \ > + "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" > + ;; > + > "tplink,tl-wr1043nd-v1") > ucidef_add_switch "switch0" \ > "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0" > diff --git a/target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts b/target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts > new file mode 100644 > index 000000000000..b0029b88b6f4 > --- /dev/null > +++ b/target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts > @@ -0,0 +1,9 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/dts-v1/; > + > +#include "ar9331_tl-wr741nd-v4.dtsi" > + > +/ { > + model = "TP-Link TL-WR740N/ND v4"; > + compatible = "tplink,tl-wr740n-v4"; > +}; > diff --git a/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts > new file mode 100644 > index 000000000000..118831b4d24c > --- /dev/null > +++ b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts > @@ -0,0 +1,9 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/dts-v1/; > + > +#include "ar9331_tl-wr741nd-v4.dtsi" > + > +/ { > + model = "TP-Link TL-WR741N/ND v4"; > + compatible = "tplink,tl-wr741n-v4"; > +}; > diff --git a/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi > new file mode 100644 > index 000000000000..6aa578a52520 > --- /dev/null > +++ b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi > @@ -0,0 +1,169 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +#include "ar9331.dtsi" > + > +/ { > + compatible = "tplink,tl-wr741n-v4", "qca,ar9331"; > + model = "TP-Link TL-WR741N/ND v4"; > + > + aliases { > + serial0 = &uart; > + led-status = &led_system; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x2000000>; > + }; The pending https://github.com/openwrt/openwrt/pull/1091 is about to remove all memory nodes in favour of the automatic memory detection. Would you please test if the correct of amount of memory is detected without the node. If so, the node can be removed. Mathias
Hi Mathias, Thanks for the review. On Tue, Jun 26, 2018 at 06:36:23PM +0200, Mathias Kresin wrote: > > +"tplink,tl-wr741nd-v4"|\ > > +"tplink,tl-wr740nd-v4") > > + ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" > > + ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04" > > + ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08" > > + ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10" > > + ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" > > + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" > > Please use the linux,default-trigger devicetree property to set the > phy0tpt trigger. Have a look at the existing ath79 dts files for > examples. > I'll fix it in the v2. > > + ;; > > ;; > > > > + "tplink,tl-wr741nd-v4"|\ > > + "tplink,tl-wr740nd-v4") > > + ucidef_set_interfaces_lan_wan "eth0.1" "eth1" > > ucidef_add_switch should already set the lan interface. A > ucidef_set_interface_wan "eth1" should be sufficient here. > I'll fix it in the v2. > > + > > + memory@0 { > > + device_type = "memory"; > > + reg = <0x0 0x2000000>; > > + }; > > The pending https://github.com/openwrt/openwrt/pull/1091 is about to > remove all memory nodes in favour of the automatic memory detection. > Would you please test if the correct of amount of memory is detected > without the node. If so, the node can be removed. > I confirm that the correct amount of memory is detected without the memory node. Best, Rocco
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 29416ad83ea7..13d8d1004f79 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -45,6 +45,15 @@ case "$board" in ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08" ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10" ;; +"tplink,tl-wr741nd-v4"|\ +"tplink,tl-wr740nd-v4") + ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1" + ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04" + ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08" + ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x10" + ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02" + ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt" + ;; esac board_config_flush 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 e2a45b05261a..510b563d6998 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -62,6 +62,13 @@ ath79_setup_interfaces() "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" ;; + "tplink,tl-wr741nd-v4"|\ + "tplink,tl-wr740nd-v4") + ucidef_set_interfaces_lan_wan "eth0.1" "eth1" + ucidef_add_switch "switch0" \ + "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" + ;; + "tplink,tl-wr1043nd-v1") ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0" diff --git a/target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts b/target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts new file mode 100644 index 000000000000..b0029b88b6f4 --- /dev/null +++ b/target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9331_tl-wr741nd-v4.dtsi" + +/ { + model = "TP-Link TL-WR740N/ND v4"; + compatible = "tplink,tl-wr740n-v4"; +}; diff --git a/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts new file mode 100644 index 000000000000..118831b4d24c --- /dev/null +++ b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ar9331_tl-wr741nd-v4.dtsi" + +/ { + model = "TP-Link TL-WR741N/ND v4"; + compatible = "tplink,tl-wr741n-v4"; +}; diff --git a/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi new file mode 100644 index 000000000000..6aa578a52520 --- /dev/null +++ b/target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi @@ -0,0 +1,169 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +#include "ar9331.dtsi" + +/ { + compatible = "tplink,tl-wr741n-v4", "qca,ar9331"; + model = "TP-Link TL-WR741N/ND v4"; + + aliases { + serial0 = &uart; + led-status = &led_system; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x2000000>; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + linux,code = <KEY_RESTART>; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + + wps { + label = "wps"; + linux,code = <KEY_WPS_BUTTON>; + gpios = <&gpio 26 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + lan1 { + label = "tp-link:green:lan1"; + gpios = <&gpio 14 GPIO_ACTIVE_HIGH>; + }; + + lan2 { + label = "tp-link:green:lan2"; + gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; + }; + + lan3 { + label = "tp-link:green:lan3"; + gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; + }; + + lan4 { + label = "tp-link:green:lan4"; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + }; + + qss { + label = "tp-link:green:qss"; + gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + }; + + led_system: system { + label = "tp-link:green:system"; + gpios = <&gpio 27 GPIO_ACTIVE_HIGH>; + }; + + wan { + label = "tp-link:green:wan"; + gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; + }; + + wlan { + label = "tp-link:green:wlan"; + gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&spi { + status = "okay"; + num-cs = <1>; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + 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"; + + phy-handle = <&phy4>; + + mtd-mac-address = <&uboot 0x1fc00>; + mtd-mac-address-increment = <1>; + + gmac-config { + device = <&gmac>; + + switch-phy-addr-swap = <1>; + switch-phy-swap = <1>; + }; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&uboot 0x1fc00>; + mtd-mac-address-increment = <(-1)>; +}; + +&gpio { + status = "okay"; +}; + +&mdio0 { + status = "okay"; + + phy4: ethernet-phy@4 { + reg = <4>; + phy-mode = "mii"; + }; +}; + +&uart { + status = "okay"; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&uboot 0x1fc00>; +}; diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index 1dfed48dbad4..656737bed2a8 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -39,3 +39,21 @@ define Device/tl-wr740n-v2 SUPPORTED_DEVICES := tplink,tl-wr740n-v2 tl-wr740n-v2 endef TARGET_DEVICES += tl-wr740n-v2 + +define Device/tl-wr741nd-v4 + $(Device/tplink-4mlzma) + ATH_SOC := ar9331 + DEVICE_TITLE := TP-LINK TL-WR741N/ND v4 + TPLINK_HWID := 0x07410004 + SUPPORTED_DEVICES := tplink,tl-wr741n-v4 tl-wr741n-v4 +endef +TARGET_DEVICES += tl-wr741nd-v4 + +define Device/tl-wr740nd-v4 + $(Device/tplink-4mlzma) + ATH_SOC := ar9331 + DEVICE_TITLE := TP-LINK TL-WR740N/ND v4 + TPLINK_HWID := 0x07400004 + SUPPORTED_DEVICES := tplink,tl-wr740n-v4 tl-wr740n-v4 +endef +TARGET_DEVICES += tl-wr740nd-v4
This patch ports the TP-Link TL-WR741ND v4 and TL-WR740ND v4 to the ath79 target. Because the two devices share the same hw layout, this patch adds a common .dtsi which is included by the two .dts. Signed-off-by: Rocco Folino <rocco@folino.io> --- .../ath79/base-files/etc/board.d/01_leds | 9 + .../ath79/base-files/etc/board.d/02_network | 7 + .../linux/ath79/dts/ar9331_tl-wr740nd-v4.dts | 9 + .../linux/ath79/dts/ar9331_tl-wr741nd-v4.dts | 9 + .../linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi | 169 ++++++++++++++++++ target/linux/ath79/image/tiny-tp-link.mk | 18 ++ 6 files changed, 221 insertions(+) create mode 100644 target/linux/ath79/dts/ar9331_tl-wr740nd-v4.dts create mode 100644 target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dts create mode 100644 target/linux/ath79/dts/ar9331_tl-wr741nd-v4.dtsi