aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2015-10-05 10:28:19 +0000
committerJohn Crispin <blogic@openwrt.org>2015-10-05 10:28:19 +0000
commitc04a95c686a489fc5a8182707f7adb5f88635b76 (patch)
tree3d8a2efdb32fcdee0d53e2fd385f76757c22ba91
parentdff2ed6792e4121d689b3c4f779766fa2e7edf0c (diff)
downloadmaster-187ad058-c04a95c686a489fc5a8182707f7adb5f88635b76.tar.gz
master-187ad058-c04a95c686a489fc5a8182707f7adb5f88635b76.tar.bz2
master-187ad058-c04a95c686a489fc5a8182707f7adb5f88635b76.zip
lantiq: Add target TP-Link TD-W8980
The device is similar to the TD-W8970, beside a different Atheros 2.4 GHz wireless chip and the additional, PCI connected, WAVE300 5 GHz wireless. Signed-off-by: Mathias Kresin <openwrt@kresin.me> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47130 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/lantiq/base-files/etc/uci-defaults/02_network2
-rw-r--r--target/linux/lantiq/dts/TDW8970.dts251
-rw-r--r--target/linux/lantiq/dts/TDW8980.dts31
-rw-r--r--target/linux/lantiq/dts/TDW89X0.dtsi252
-rw-r--r--target/linux/lantiq/image/Makefile3
-rw-r--r--target/linux/lantiq/xrx200/profiles/tplink.mk7
-rw-r--r--tools/firmware-utils/src/mktplinkfw2.c5
7 files changed, 300 insertions, 251 deletions
diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/02_network b/target/linux/lantiq/base-files/etc/uci-defaults/02_network
index ff21e02aea..85d0eba140 100644
--- a/target/linux/lantiq/base-files/etc/uci-defaults/02_network
+++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network
@@ -151,7 +151,7 @@ P2812HNUF*)
ucidef_add_switch_vlan "switch0" "1" "0 1 2 4 5 6t"
;;
-TDW8970)
+TDW8970|TDW8980)
lan_mac=$(mtd_get_mac_binary boardconfig 61696)
wan_mac=$(macaddr_add "$lan_mac" 1)
ucidef_set_interface_lan 'eth0.1'
diff --git a/target/linux/lantiq/dts/TDW8970.dts b/target/linux/lantiq/dts/TDW8970.dts
index d8dcb5d836..172c46c12c 100644
--- a/target/linux/lantiq/dts/TDW8970.dts
+++ b/target/linux/lantiq/dts/TDW8970.dts
@@ -1,256 +1,7 @@
/dts-v1/;
-/include/ "vr9.dtsi"
+/include/ "TDW89X0.dtsi"
/ {
model = "TDW8970 - TP-LINK TD-W8970";
-
- chosen {
- bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
- };
-
- memory@0 {
- reg = <0x0 0x4000000>;
- };
-
- fpi@10000000 {
- gpio: pinmux@E100B10 {
- pinctrl-names = "default";
- pinctrl-0 = <&state_default>;
-
- state_default: pinmux {
- mdio {
- lantiq,groups = "mdio";
- lantiq,function = "mdio";
- };
- gphy-leds {
- lantiq,groups = "gphy0 led1", "gphy1 led1";
- lantiq,function = "gphy";
- lantiq,pull = <2>;
- lantiq,open-drain = <0>;
- lantiq,output = <1>;
- };
- phy-rst {
- lantiq,pins = "io42";
- lantiq,pull = <0>;
- lantiq,open-drain = <0>;
- lantiq,output = <1>;
- };
- spi-in {
- lantiq,pins = "io16";
- lantiq,open-drain = <1>;
- lantiq,pull = <2>;
- };
- spi-out {
- lantiq,pins = "io10", "io17", "io18", "io21";
- lantiq,open-drain = <0>;
- lantiq,pull = <2>;
- };
- pcie-rst {
- lantiq,pins = "io38";
- lantiq,pull = <0>;
- lantiq,output = <1>;
- };
- };
- };
-
- eth@E108000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "lantiq,xrx200-net";
- reg = < 0xE108000 0x3000 /* switch */
- 0xE10B100 0x70 /* mdio */
- 0xE10B1D8 0x30 /* mii */
- 0xE10B308 0x30 /* pmac */
- >;
- interrupt-parent = <&icu0>;
- interrupts = <73 72>;
-
- lan: interface@0 {
- compatible = "lantiq,xrx200-pdi";
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <0>;
- mtd-mac-address = <&ath9k_cal 0xf100>;
- lantiq,switch;
-
- ethernet@0 {
- compatible = "lantiq,xrx200-pdi-port";
- reg = <0>;
- phy-mode = "rgmii";
- phy-handle = <&phy0>;
- // gpios = <&gpio 42 1>;
- };
- ethernet@5 {
- compatible = "lantiq,xrx200-pdi-port";
- reg = <5>;
- phy-mode = "rgmii";
- phy-handle = <&phy5>;
- };
- ethernet@2 {
- compatible = "lantiq,xrx200-pdi-port";
- reg = <2>;
- phy-mode = "gmii";
- phy-handle = <&phy11>;
- };
- ethernet@3 {
- compatible = "lantiq,xrx200-pdi-port";
- reg = <4>;
- phy-mode = "gmii";
- phy-handle = <&phy13>;
- };
- };
-
- mdio@0 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "lantiq,xrx200-mdio";
- phy0: ethernet-phy@0 {
- reg = <0x0>;
- compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
- };
- phy5: ethernet-phy@5 {
- reg = <0x5>;
- compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
- };
- phy11: ethernet-phy@11 {
- reg = <0x11>;
- compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
- };
- phy13: ethernet-phy@13 {
- reg = <0x13>;
- compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
- };
- };
- };
-
- ifxhcd@E101000 {
- status = "okay";
- gpios = <&gpio 33 0>;
- lantiq,portmask = <0x3>;
- };
-
- ifxhcd@E106000 {
- status = "okay";
- gpios = <&gpio 33 0>;
- };
- };
-
- gphy-xrx200 {
- compatible = "lantiq,phy-xrx200";
- firmware = "lantiq/vr9_phy11g_a2x.bin";
- phys = [ 00 01 ];
- };
-
- pcie {
- compatible = "lantiq,pcie-xway";
- };
-
- spi {
- #address-cells = <1>;
- #size-cells = <1>;
-
- compatible = "spi-gpio";
-
- gpio-miso = <&gpio 16 0>;
- gpio-mosi = <&gpio 17 0>;
- gpio-sck = <&gpio 18 0>;
- num-chipselects = <1>;
- cs-gpios = <&gpio 10 1>;
-
- m25p80@0 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "en25q64", "m25p80";
- reg = <0 0>;
- linux,modalias = "en25q64";
- spi-max-frequency = <1000000>;
-
- partition@0 {
- reg = <0x0 0x20000>;
- label = "u-boot";
- read-only;
- };
-
- partition@20000 {
- reg = <0x20000 0x6a0000>;
- label = "firmware";
- };
-
- partition@6c0000 {
- reg = <0x6c0000 0x100000>;
- label = "dsl_fw";
- };
-
- partition@7c0000 {
- reg = <0x7c0000 0x10000>;
- label = "config";
- read-only;
- };
-
- ath9k_cal: partition@7d0000 {
- reg = <0x7d0000 0x30000>;
- label = "boardconfig";
- read-only;
- };
- };
- };
-
- ath9k_eep {
- compatible = "ath9k,eeprom";
- ath,eep-flash = <&ath9k_cal 0x21000>;
- ath,mac-offset = <0xf100>;
- ath,mac-increment;
- ath,led-pin = <0>;
- };
-
- gpio-keys-polled {
- compatible = "gpio-keys-polled";
- #address-cells = <1>;
- #size-cells = <0>;
- poll-interval = <100>;
- reset {
- label = "reset";
- gpios = <&gpio 0 1>;
- linux,code = <0x198>;
- };
-
- wifi {
- label = "wifi";
- gpios = <&gpio 9 0>;
- linux,code = <0xf7>;
- linux,input-type = <5>; /* EV_SW */
- };
-
- wps {
- label = "wps";
- gpios = <&gpio 39 1>;
- linux,code = <0x211>;
- };
- };
-
- gpio-leds {
- compatible = "gpio-leds";
-
- dsl {
- label = "dsl";
- gpios = <&gpio 4 0>;
- };
- internet {
- label = "internet";
- gpios = <&gpio 5 0>;
- };
- usb0 {
- label = "usb";
- gpios = <&gpio 19 0>;
- };
- usb2 {
- label = "usb2";
- gpios = <&gpio 20 0>;
- };
- wps {
- label = "wps";
- gpios = <&gpio 37 0>;
- };
- };
};
diff --git a/target/linux/lantiq/dts/TDW8980.dts b/target/linux/lantiq/dts/TDW8980.dts
new file mode 100644
index 0000000000..ad3d1829bd
--- /dev/null
+++ b/target/linux/lantiq/dts/TDW8980.dts
@@ -0,0 +1,31 @@
+/dts-v1/;
+
+/include/ "TDW89X0.dtsi"
+
+/ {
+ model = "TDW8980 - TP-LINK TD-W8980";
+
+ fpi@10000000 {
+ gpio: pinmux@E100B10 {
+ state_default: pinmux {
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain;
+ };
+ };
+ };
+
+ pci@E105400 {
+ status = "okay";
+ lantiq,bus-clock = <33333333>;
+ interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
+ interrupt-map = <0x7000 0 0 1 &icu0 30 1>;
+ gpio-reset = <&gpio 21 0>;
+ };
+ };
+
+ ath9k_eep {
+ ath,pci-slot = <0>;
+ };
+};
diff --git a/target/linux/lantiq/dts/TDW89X0.dtsi b/target/linux/lantiq/dts/TDW89X0.dtsi
new file mode 100644
index 0000000000..084aa25e23
--- /dev/null
+++ b/target/linux/lantiq/dts/TDW89X0.dtsi
@@ -0,0 +1,252 @@
+/include/ "vr9.dtsi"
+
+/ {
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ fpi@10000000 {
+ gpio: pinmux@E100B10 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ gphy-leds {
+ lantiq,groups = "gphy0 led1", "gphy1 led1";
+ lantiq,function = "gphy";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ phy-rst {
+ lantiq,pins = "io42";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ spi-in {
+ lantiq,pins = "io16";
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ spi-out {
+ lantiq,pins = "io10", "io17", "io18", "io21";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ };
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ };
+
+ eth@E108000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-net";
+ reg = < 0xE108000 0x3000 /* switch */
+ 0xE10B100 0x70 /* mdio */
+ 0xE10B1D8 0x30 /* mii */
+ 0xE10B308 0x30 /* pmac */
+ >;
+ interrupt-parent = <&icu0>;
+ interrupts = <73 72>;
+
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&ath9k_cal 0xf100>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ // gpios = <&gpio 42 1>;
+ };
+ ethernet@5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@3 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy5: ethernet-phy@5 {
+ reg = <0x5>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+ };
+
+ ifxhcd@E101000 {
+ status = "okay";
+ gpios = <&gpio 33 0>;
+ lantiq,portmask = <0x3>;
+ };
+
+ ifxhcd@E106000 {
+ status = "okay";
+ gpios = <&gpio 33 0>;
+ };
+ };
+
+ gphy-xrx200 {
+ compatible = "lantiq,phy-xrx200";
+ firmware = "lantiq/vr9_phy11g_a2x.bin";
+ phys = [ 00 01 ];
+ };
+
+ pcie {
+ compatible = "lantiq,pcie-xway";
+ };
+
+ spi {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ compatible = "spi-gpio";
+
+ gpio-miso = <&gpio 16 0>;
+ gpio-mosi = <&gpio 17 0>;
+ gpio-sck = <&gpio 18 0>;
+ num-chipselects = <1>;
+ cs-gpios = <&gpio 10 1>;
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "en25q64", "m25p80";
+ reg = <0 0>;
+ linux,modalias = "en25q64";
+ spi-max-frequency = <1000000>;
+
+ partition@0 {
+ reg = <0x0 0x20000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@20000 {
+ reg = <0x20000 0x6a0000>;
+ label = "firmware";
+ };
+
+ partition@6c0000 {
+ reg = <0x6c0000 0x100000>;
+ label = "dsl_fw";
+ };
+
+ partition@7c0000 {
+ reg = <0x7c0000 0x10000>;
+ label = "config";
+ read-only;
+ };
+
+ ath9k_cal: partition@7d0000 {
+ reg = <0x7d0000 0x30000>;
+ label = "boardconfig";
+ read-only;
+ };
+ };
+ };
+
+ ath9k_eep {
+ compatible = "ath9k,eeprom";
+ ath,eep-flash = <&ath9k_cal 0x21000>;
+ ath,mac-offset = <0xf100>;
+ ath,mac-increment;
+ ath,led-pin = <0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 0 1>;
+ linux,code = <0x198>;
+ };
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio 9 0>;
+ linux,code = <0xf7>;
+ linux,input-type = <5>; /* EV_SW */
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 39 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl {
+ label = "dsl";
+ gpios = <&gpio 4 0>;
+ };
+ internet {
+ label = "internet";
+ gpios = <&gpio 5 0>;
+ };
+ usb0 {
+ label = "usb";
+ gpios = <&gpio 19 0>;
+ };
+ usb2 {
+ label = "usb2";
+ gpios = <&gpio 20 0>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 37 0>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 7980627e4e..686cb6d724 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -410,6 +410,9 @@ Image/Build/Profile/VG3503J_V2=$(call Image/BuildLoader/$(1),$(1),VG3503J_V2)
Image/BuildKernel/Profile/TDW8970=$(call Image/BuildKernelTPLink/Template,TDW8970,TD-W8970v1,$(1))
Image/Build/Profile/TDW8970=$(call Image/BuildTPLink/$(1),$(1),TDW8970,TD-W8970v1)
+Image/BuildKernel/Profile/TDW8980=$(call Image/BuildKernelTPLink/Template,TDW8980,TD-W8980v1,$(1))
+Image/Build/Profile/TDW8980=$(call Image/BuildTPLink/$(1),$(1),TDW8980,TD-W8980v1)
+
Image/BuildKernel/Profile/VGV7510KW22NOR=$(call Image/BuildKernel/Template,VGV7510KW22NOR,$(1))
Image/Build/Profile/VGV7510KW22NOR=$(call Image/Build/$(1),$(1),VGV7510KW22NOR)
diff --git a/target/linux/lantiq/xrx200/profiles/tplink.mk b/target/linux/lantiq/xrx200/profiles/tplink.mk
index 1ee010ce3c..6ae9399060 100644
--- a/target/linux/lantiq/xrx200/profiles/tplink.mk
+++ b/target/linux/lantiq/xrx200/profiles/tplink.mk
@@ -4,3 +4,10 @@ define Profile/TDW8970
endef
$(eval $(call Profile,TDW8970))
+
+define Profile/TDW8980
+ NAME:=TP-LINK TD-W8980
+ PACKAGES:=kmod-ath9k wpad-mini kmod-usb-dwc2 kmod-ledtrig-usbdev
+endef
+
+$(eval $(call Profile,TDW8980))
diff --git a/tools/firmware-utils/src/mktplinkfw2.c b/tools/firmware-utils/src/mktplinkfw2.c
index 34c4b14064..25915e68bf 100644
--- a/tools/firmware-utils/src/mktplinkfw2.c
+++ b/tools/firmware-utils/src/mktplinkfw2.c
@@ -161,6 +161,11 @@ static struct board_info boards[] = {
.hw_rev = 1,
.layout_id = "8Mltq",
}, {
+ .id = "TD-W8980v1",
+ .hw_id = 0x89800001,
+ .hw_rev = 14,
+ .layout_id = "8Mltq",
+ }, {
.id = "ArcherC20i",
.hw_id = 0xc2000001,
.hw_rev = 58,