[OpenWrt-Devel] [PATCH 2/2] [target] Add target TP-Link TD-W8980
Geoffrey McRae
geoff at spacevs.com
Mon Sep 22 09:05:02 EDT 2014
From de6e557c769c29be97a56e909a1b31a0c67625d5 Mon Sep 17 00:00:00 2001
From: Geoffrey McRae <geoff at spacevs.com>
Date: Mon, 22 Sep 2014 22:48:01 +1000
Subject: [PATCH 2/2] Add target TP-Link TD-W8980
Signed-off-by: Geoffrey McRae <geoff at spacevs.com>
---
.../lantiq/base-files/etc/uci-defaults/02_network | 2 +-
target/linux/lantiq/dts/TDW8980.dts | 252
++++++++++++++++++++
target/linux/lantiq/image/Makefile | 3 +
target/linux/lantiq/xrx200/profiles/tplink.mk | 12 +
tools/firmware-utils/src/mktplinkfw2.c | 6 +
5 files changed, 274 insertions(+), 1 deletion(-)
create mode 100644 target/linux/lantiq/dts/TDW8980.dts
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 8d9ae4f..4d359d3 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 @@ P2812HNUFX)
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/TDW8980.dts
b/target/linux/lantiq/dts/TDW8980.dts
new file mode 100644
index 0000000..6d630e7
--- /dev/null
+++ b/target/linux/lantiq/dts/TDW8980.dts
@@ -0,0 +1,252 @@
+/dts-v1/;
+
+/include/ "vr9.dtsi"
+
+/ {
+ model = "TDW8980 - TP-LINK TD-W8980";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+ };
+
+ memory at 0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ fpi at 10000000 {
+ gpio: pinmux at 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 at 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 at 0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&ath9k_cal 0xf100>;
+ lantiq,switch;
+
+ ethernet at 0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ // gpios = <&gpio 42 1>;
+ };
+ ethernet at 5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+ ethernet at 2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ ethernet at 3 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ };
+
+ mdio at 0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ phy0: ethernet-phy at 0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy5: ethernet-phy at 5 {
+ reg = <0x5>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy11: ethernet-phy at 11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy at 13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+ };
+
+ ifxhcd at E101000 {
+ status = "okay";
+ gpios = <&gpio 33 0>;
+ lantiq,portmask = <0x3>;
+ };
+ };
+
+ 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>;
+
+ s25fl064k at 0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "s25fl064k";
+ reg = <0 0>;
+ linux,modalias = "s25fl064k";
+ spi-max-frequency = <1000000>;
+
+ partition at 0 {
+ reg = <0x0 0x20000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition at 20000 {
+ reg = <0x20000 0x6a0000>;
+ label = "firmware";
+ };
+
+ partition at 6c0000 {
+ reg = <0x6c0000 0x100000>;
+ label = "dsl_fw";
+ };
+
+ partition at 7c0000 {
+ reg = <0x7c0000 0x10000>;
+ label = "config";
+ read-only;
+ };
+
+ ath9k_cal: partition at 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>;
+ ath,pci-slot = <0>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ power {
+ label = "reset";
+ gpios = <&gpio 0 1>;
+ linux,code = <0x100>;
+ };
+
+ 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 5c96b63..f0ea8fb 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -422,6 +422,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/VGV7519NOR=$(call
Image/BuildKernel/Template,VGV7519NOR,$(1))
Image/Build/Profile/VGV7519NOR=$(call Image/Build/$(1),$(1),VGV7519NOR)
diff --git a/target/linux/lantiq/xrx200/profiles/tplink.mk
b/target/linux/lantiq/xrx200/profiles/tplink.mk
index 21880c0..6289606 100644
--- a/target/linux/lantiq/xrx200/profiles/tplink.mk
+++ b/target/linux/lantiq/xrx200/profiles/tplink.mk
@@ -9,3 +9,15 @@ define Profile/TDW8970
endef
$(eval $(call Profile,TDW8970))
+
+define Profile/TDW8980
+ NAME:=TP-LINK TD-W8980
+ PACKAGES:=kmod-ath9k wpad-mini \
+ kmod-ltq-deu-vr9 kmod-ltq-hcd-vr9 \
+ kmod-ltq-vdsl-vr9-mei kmod-ltq-vdsl-vr9 \
+ kmod-ltq-atm-vr9 ltq-vdsl-vr9-fw-installer \
+ ltq-vdsl-app ppp-mod-pppoa \
+ 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 df64ac3..d3eef3c 100644
--- a/tools/firmware-utils/src/mktplinkfw2.c
+++ b/tools/firmware-utils/src/mktplinkfw2.c
@@ -32,6 +32,7 @@
#define HEADER_VERSION_V2 0x02000000
#define HWID_TD_W8970_V1 0x89700001
+#define HWID_TD_W8980_V1 0x89800001
#define MD5SUM_LEN 16
@@ -153,6 +154,11 @@ static struct board_info boards[] = {
.hw_rev = 1,
.layout_id = "8Mltq",
}, {
+ .id = "TD-W8980v1",
+ .hw_id = HWID_TD_W8980_V1,
+ .hw_rev = 1,
+ .layout_id = "8Mltq",
+ }, {
/* terminating entry */
}
};
--
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list