From 2c33df03761f366193eeb2c3ffd28dfea475de41 Mon Sep 17 00:00:00 2001
From: John Crispin <john@openwrt.org>
Date: Sat, 15 Dec 2012 02:00:20 +0000
Subject: [PATCH] add devicetrees

SVN-Revision: 34691
---
 target/linux/lantiq/image/ARV4510PW.dts       | 116 ++++++++++
 target/linux/lantiq/image/ARV4518PW.dts       | 192 +++++++++++++++
 target/linux/lantiq/image/ARV4520PW.dts       | 200 ++++++++++++++++
 target/linux/lantiq/image/ARV4525PW.dts       | 153 ++++++++++++
 target/linux/lantiq/image/ARV452CQW.dts       | 219 ++++++++++++++++++
 target/linux/lantiq/image/ARV7518PW.dts       | 207 +++++++++++++++++
 target/linux/lantiq/image/ARV7525PW.dts       | 115 ++++-----
 target/linux/lantiq/image/ARV752DPW.dts       | 141 ++++++-----
 target/linux/lantiq/image/ARV752DPW22.dts     | 128 ++++++----
 target/linux/lantiq/image/DGN1000B.dts        |  91 +++-----
 target/linux/lantiq/image/DGN3500.dtsi        | 179 ++++++++++++++
 target/linux/lantiq/image/DGN3500B.dts        |   7 +
 target/linux/lantiq/image/EASY50810.dts       | 114 +++++++++
 target/linux/lantiq/image/EASY80920.dtsi      | 129 +++++++----
 .../{EASY80920-NAND.dts => EASY80920NAND.dts} |   0
 .../{EASY80920-NOR.dts => EASY80920NOR.dts}   |   0
 target/linux/lantiq/image/FRITZ7320.dts       | 138 +++++++++++
 target/linux/lantiq/image/Makefile            | 193 ++++-----------
 target/linux/lantiq/image/amazonse.dtsi       |  57 ++++-
 target/linux/lantiq/image/ar9.dtsi            | 179 ++++++++++++++
 target/linux/lantiq/image/danube.dtsi         |  95 +++++++-
 target/linux/lantiq/image/vr9.dtsi            |  34 ++-
 22 files changed, 2263 insertions(+), 424 deletions(-)
 create mode 100644 target/linux/lantiq/image/ARV4510PW.dts
 create mode 100644 target/linux/lantiq/image/ARV4518PW.dts
 create mode 100644 target/linux/lantiq/image/ARV4520PW.dts
 create mode 100644 target/linux/lantiq/image/ARV4525PW.dts
 create mode 100644 target/linux/lantiq/image/ARV452CQW.dts
 create mode 100644 target/linux/lantiq/image/ARV7518PW.dts
 create mode 100644 target/linux/lantiq/image/DGN3500.dtsi
 create mode 100644 target/linux/lantiq/image/DGN3500B.dts
 create mode 100644 target/linux/lantiq/image/EASY50810.dts
 rename target/linux/lantiq/image/{EASY80920-NAND.dts => EASY80920NAND.dts} (100%)
 rename target/linux/lantiq/image/{EASY80920-NOR.dts => EASY80920NOR.dts} (100%)
 create mode 100644 target/linux/lantiq/image/FRITZ7320.dts
 create mode 100644 target/linux/lantiq/image/ar9.dtsi

diff --git a/target/linux/lantiq/image/ARV4510PW.dts b/target/linux/lantiq/image/ARV4510PW.dts
new file mode 100644
index 0000000000..f1d41da39f
--- /dev/null
+++ b/target/linux/lantiq/image/ARV4510PW.dts
@@ -0,0 +1,116 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV4510QW - Wippies Homebox";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x1000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x20000>;
+					read-only;
+				};
+
+				partition@20000 {
+					label = "uboot_env";
+					reg = <0x20000 0x20000>;
+					read-only;
+				};
+
+				partition@240000 {
+					label = "linux";
+					reg = <0x40000 0xf00000>;
+				};
+
+				partition@fe0000 {
+					label = "boardconfig";
+					reg = <0xfe0000 0x10000>;
+					read-only;
+				};
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0xff0016 0x6>;
+				mac-increment = <2>;
+			};
+		};
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				stp {
+					lantiq,groups = "stp";
+                                        lantiq,function = "stp";
+				};
+				exin {
+					lantiq,groups = "exin2";
+					lantiq,function = "exin";
+				};
+				pci_in {
+					lantiq,groups = "req1", "req2";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <0>;
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		gpios: stp@E100BB0 {
+			status = "okay";
+		};
+
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		pci@E105400 {
+			status = "okay";
+			lantiq,external-clock;
+			interrupt-map = <
+                                0x7000 0 0 1 &icu0 30
+		                0x7800 0 0 1 &icu0 135
+			        0x7800 0 0 2 &icu0 135
+			        0x7800 0 0 3 &icu0 135
+			>;
+			gpio-reset = <&gpio 21 0>;
+			req-mask = <0x3>;
+		};
+
+	};
+};
diff --git a/target/linux/lantiq/image/ARV4518PW.dts b/target/linux/lantiq/image/ARV4518PW.dts
new file mode 100644
index 0000000000..9d0f0cd110
--- /dev/null
+++ b/target/linux/lantiq/image/ARV4518PW.dts
@@ -0,0 +1,192 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV4518PW - SMC7908A-ISP, Airties WAV-221";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x4000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpio 31 0>;
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x2000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x10000>; /* 64 KB */
+					read-only;
+				};
+
+				partition@10000 {
+					label = "uboot_env";
+					reg = <0x10000 0x10000>; /* 64 KB */
+					read-only;
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0x3d0000>;
+				};
+
+				partition@400000 {
+					label = "boardconfig";
+					reg = <0x3f0000 0x10000>;
+					read-only;
+				};
+			};
+
+			gpiomm: gpiomm@4000000 {
+				compatible = "lantiq,gpio-mm";
+				reg = <1 0x0 0x10 >;
+				#address-cells = <1>;
+				#size-cells = <1>;
+				#gpio-cells = <2>;
+				gpio-controller;
+				lantiq,shadow = <0x0>;
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x3f0016 0x6>;
+				mac-increment = <2>;
+			};
+
+			ath5k_eep {
+				compatible = "ath5k,eeprom";
+				reg = <0 0x3f0400 0x800
+					0 0x3f0016 0x6>;
+				ath,mac-increment = <1>;
+				ath,eep-swap;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu cs1";
+					lantiq,function = "ebu";
+				};
+				pci_in {
+					lantiq,groups = "req1", "req2";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1", "gnt2";
+					lantiq,function = "pci";
+					lantiq,pull = <0>;
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpio 14 1>;
+		};
+
+		pci@E105400 {
+			status = "okay";
+			lantiq,external-clock;
+			gpio-reset = <&gpio 21 0>;
+			req-mask = <0xf>;
+		};
+
+	};
+
+/*
+#define ARV4518PW_SWITCH_RESET          13
+*/
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 28 1>;
+			linux,code = <0xf7>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
+			linux,code = <0x100>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		power {
+			label = "power";
+			gpios = <&gpio 3 0>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 4 1>;
+		};
+		online {
+			label = "online";
+			gpios = <&gpio 5 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpio 6 1>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpio 7 1>;
+		};
+		dsl2 {
+			label = "dsl2";
+			gpios = <&gpio 8 1>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpio 19 1>;
+		};
+		voice {
+			label = "voice";
+			gpios = <&gpiomm 0 1>;
+		};
+		fxs1 {
+			label = "fxs1";
+			gpios = <&gpiomm 1 1>;
+		};
+		fxs2 {
+			label = "fxs2";
+			gpios = <&gpiomm 2 1>;
+		};
+		fxo {
+			label = "fxo";
+			gpios = <&gpiomm 3 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/ARV4520PW.dts b/target/linux/lantiq/image/ARV4520PW.dts
new file mode 100644
index 0000000000..7d280e23b1
--- /dev/null
+++ b/target/linux/lantiq/image/ARV4520PW.dts
@@ -0,0 +1,200 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV4520PW - Easybox 800, WAV-281";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpio 31 0
+				&gpiomm 7 0>;
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x800000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x20000>;
+					read-only;
+				};
+
+				partition@20000 {
+					label = "uboot_env";
+					reg = <0x20000 0x10000>;
+					read-only;
+				};
+
+				partition@30000 {
+					label = "linux";
+					reg = <0x30000 0x3c0000>;
+				};
+
+				partition@7f0000 {
+					label = "boardconfig";
+					reg = <0x3f0000 0x10000>;
+					read-only;
+				};
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x3f0016 0x6>;
+				mac-increment = <2>;
+			};
+
+			gpiomm: gpiomm@4000000 {
+				compatible = "lantiq,gpio-mm";
+				reg = <1 0x0 0x10 >;
+				#address-cells = <1>;
+				#size-cells = <1>;
+				#gpio-cells = <2>;
+				gpio-controller;
+				lantiq,shadow = <0x400>;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu cs1";
+					lantiq,function = "ebu";
+				};
+				pci_in {
+					lantiq,groups = "req1";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,open-drain = <0>;
+					lantiq,pull = <0>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+                        gpios = <&gpio 28 0>;
+		};
+
+		pci@E105400 {
+			status = "okay";
+			lantiq,external-clock;
+			gpio-reset = <&gpio 21 0>;
+		};
+
+	};
+
+// gpiomm 10 - switch
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		rfkill {
+			label = "wps";
+			gpios = <&gpio 29 1>;
+			linux,code = <0x211>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
+			linux,code = <0x100>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		
+		power {
+			label = "power";
+			gpios = <&gpio 3 1>;
+		};
+		adsl {
+			label = "adsl";
+			gpios = <&gpio 4 1>;
+		};
+		internet {
+			label = "internet";
+			gpios = <&gpio 5 1>;
+		};
+		power2 {
+			label = "power2";
+			gpios = <&gpio 6 1>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpio 7 1>;
+		};
+		wps2 {
+			label = "wps2";
+			gpios = <&gpio 9 1>;
+		};
+		fxs1 {
+			label = "fxs1";
+			gpios = <&gpiomm 0 1>;
+		};
+		fxs2 {
+			label = "fxs2";
+			gpios = <&gpiomm 1 1>;
+		};
+		isdn {
+			label = "isdn";
+			gpios = <&gpiomm 2 1>;
+		};
+		fxo {
+			label = "fxo";
+			gpios = <&gpiomm 3 1>;
+		};
+		voice {
+			label = "voice";
+			gpios = <&gpiomm 4 1>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpiomm 5 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpiomm 6 1>;
+		};
+		internet2 {
+			label = "internet2";
+			gpios = <&gpiomm 9 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/ARV4525PW.dts b/target/linux/lantiq/image/ARV4525PW.dts
new file mode 100644
index 0000000000..23c2f86406
--- /dev/null
+++ b/target/linux/lantiq/image/ARV4525PW.dts
@@ -0,0 +1,153 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV4525PW - Speedport W501V Typ A";
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpio 31 0>;
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x2000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x10000>;
+					read-only;
+				};
+
+				partition@10000 {
+					label = "uboot_env";
+					reg = <0x10000 0x10000>;
+					read-only;
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0x3d0000>;
+				};
+
+				partition@400000 {
+					label = "boardconfig";
+					reg = <0x3f0000 0x10000>;
+					read-only;
+				};
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x3f0016 0x6>;
+				mac-increment = <2>;
+			};
+
+			ath5k_eep {
+				compatible = "ath5k,eeprom";
+				reg = <0 0x3f0400 0x800>;
+				ath,mac-offset = <0>;
+				ath,eep-swap;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				pci_in {
+					lantiq,groups = "req1";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <2>;
+					lantiq,output = <1>;
+				};
+				relay {
+					lantiq,pins = "io31";
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "mii";
+		};
+
+		pci@E105400 {
+			status = "okay";
+			gpio-reset = <&gpio 21 0>;
+		};
+
+	};
+
+/*
+#define ARV4525PW_PHYRESET	13
+#define ARV4525PW_RELAY		31
+*/
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
+		wps {
+			label = "wps";
+			gpios = <&gpio 29 1>;
+			linux,code = <0x211>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
+			linux,code = <0x100>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		fxo {
+			label = "fxo";
+			gpios = <&gpio 4 1>;
+		};
+		fxs {
+			label = "fxs";
+			gpios = <&gpio 5 1>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 6 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpio 8 1>;
+		};
+		online {
+			/*label = "online"; - we dont have a power led, lets use this one */
+			label = "power";
+			gpios = <&gpio 9 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/ARV452CQW.dts b/target/linux/lantiq/image/ARV452CQW.dts
new file mode 100644
index 0000000000..6ab251c6df
--- /dev/null
+++ b/target/linux/lantiq/image/ARV452CQW.dts
@@ -0,0 +1,219 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV452CQW - Arcor 801";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpio 31 0
+				&gpiomm 7 0>;
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x400000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x10000>;
+					read-only;
+				};
+
+				partition@10000 {
+					label = "uboot_env";
+					reg = <0x10000 0x10000>;
+					read-only;
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0x3d0000>;
+				};
+
+				partition@3f0000 {
+					label = "boardconfig";
+					reg = <0x3f0000 0x10000>;
+					read-only;
+				};
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x3f0016 0x6>;
+				mac-increment = <2>;
+			};
+
+			ath5k_eep {
+				compatible = "ath5k,eeprom";
+				reg = <0 0x3f0400 0x800>;
+				ath,mac-offset = <0>;
+				ath,eep-swap;
+			};
+			gpiomm: gpiomm@4000000 {
+				compatible = "lantiq,gpio-mm";
+				reg = <1 0x0 0x10>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+				#gpio-cells = <2>;
+				gpio-controller;
+				lantiq,shadow = <0x77f>;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu cs1";
+					lantiq,function = "ebu";
+				};
+				pci_in {
+					lantiq,groups = "req1";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <0>;
+					lantiq,output = <1>;
+				};
+				leds {
+					lantiq,pins = "io3", "io5", "io6", "io7", "io9";
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpio 28 0>;
+		};
+
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		pci@E105400 {
+			status = "okay";
+			lantiq,external-clock;
+			gpio-reset = <&gpio 21 0>;
+		};
+
+	};
+
+/*
+#define ARV452CPW_SWITCH_RESET          110
+*/
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled1";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		wps {
+			label = "wps";
+			gpios = <&gpio 11 1>;
+			linux,code = <0x101>;
+		};
+		restart {
+			label = "restart";
+			gpios = <&gpio 12 1>;
+			linux,code = <0x110>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 28 1>;
+			linux,code = <0x100>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		power0 {
+			label = "power0";
+			gpios = <&gpio 3 1>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 4 1>;
+		};
+		isdn {
+			label = "isdn";
+			gpios = <&gpio 5 1>;
+		};
+		power1 {
+			label = "power1";
+			gpios = <&gpio 6 1>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpio 7 1>;
+		};
+		wps1 {
+			label = "wps1";
+			gpios = <&gpio 9 1>;
+		};
+		fxs1 {
+			label = "fxs1";
+			gpios = <&gpiomm 0 1>;
+		};
+		fxs2 {
+			label = "fxs2";
+			gpios = <&gpiomm 1 1>;
+		};
+		wps2 {
+			label = "wps2";
+			gpios = <&gpiomm 2 1>;
+		};
+		fxo {
+			label = "fxo";
+			gpios = <&gpiomm 3 1>;
+		};
+		voice {
+			label = "voice";
+			gpios = <&gpiomm 4  1>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpiomm 5 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpiomm 6 1>;
+		};
+		dsl2 {
+			label = "dsl2";
+			gpios = <&gpiomm 8 1>;
+		};
+		dsl3 {
+			label = "dsl3";
+			gpios = <&gpiomm 9 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/ARV7518PW.dts b/target/linux/lantiq/image/ARV7518PW.dts
new file mode 100644
index 0000000000..e48bd46750
--- /dev/null
+++ b/target/linux/lantiq/image/ARV7518PW.dts
@@ -0,0 +1,207 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV7518PW - Astoria Networks";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x4000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x2000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x10000>; 
+					read-only;
+				};
+
+				partition@10000 {
+					label = "uboot_env";
+					reg = <0x10000 0x10000>; 
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0x7d0000>;
+				};
+
+				partition@400000 {
+					label = "boardconfig";
+					reg = <0x7f0000 0x10000>;
+					read-only;
+				};
+			};
+
+			gpiomm: gpiomm@4000000 {
+				compatible = "lantiq,gpio-mm";
+				reg = <1 0x0 0x10 >;
+				#address-cells = <1>;
+				#size-cells = <1>;
+				#gpio-cells = <2>;
+				gpio-controller;
+				lantiq,shadow = <0x0>;
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x7f0016 0x6>;
+				mac-increment = <2>;
+			};
+
+			ath9k_eep {
+				compatible = "ath9k,eeprom";
+				reg = <0 0x7f0400 0x800
+					0 0x7f0016 0x6>;
+				ath,mac-increment = <1>;
+				ath,eep-swap;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu cs1";
+					lantiq,function = "ebu";
+				};
+				pci_in {
+					lantiq,groups = "req1", "req2";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1", "gnt2";
+					lantiq,function = "pci";
+					lantiq,pull = <0>;
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <2>;
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+			gpio-reset = <&gpio 14 0>;
+		};
+
+		pci@E105400 {
+			status = "okay";
+			lantiq,external-clock;
+			gpio-reset = <&gpio 21 0>;
+			req-mask = <0xf>;
+		};
+
+	};
+
+/*
+#define SWITCH_RESET          13
+*/
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 25 1>;
+			linux,code = <0xf7>;
+		};
+/*		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
+			linux,code = <0x100>;
+		};*/
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		power {
+			label = "power";
+			gpios = <&gpio 2 0>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 4 1>;
+		};
+		online {
+			label = "online";
+			gpios = <&gpio 5 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpio 6 1>;
+		};
+		power2 {
+			label = "power2";
+			gpios = <&gpio 7 1>;
+		};
+		online2 {
+			label = "online2";
+			gpios = <&gpio 8 1>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpio 19 1>;
+		};
+		voice {
+			label = "voice";
+			gpios = <&gpiomm 0 1>;
+		};
+		fxs1 {
+			label = "fxs1";
+			gpios = <&gpiomm 1 1>;
+		};
+		fxs2 {
+			label = "fxs2";
+			gpios = <&gpiomm 2 1>;
+		};
+		fxo {
+			label = "fxo";
+			gpios = <&gpiomm 3 1>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpiomm 4 1>;
+		};
+		wps2 {
+			label = "wps2";
+			gpios = <&gpiomm 5 1>;
+		};
+		wps3 {
+			label = "wps3";
+			gpios = <&gpiomm 6 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/ARV7525PW.dts b/target/linux/lantiq/image/ARV7525PW.dts
index 080ed8e877..7ad70d5e63 100644
--- a/target/linux/lantiq/image/ARV7525PW.dts
+++ b/target/linux/lantiq/image/ARV7525PW.dts
@@ -3,6 +3,8 @@
 /include/ "danube.dtsi"
 
 / {
+	model = "ARV7525PW - Speedport W303V Typ A";
+
 	chosen {
 		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
 	};
@@ -11,16 +13,15 @@
 		reg = <0x0 0x2000000>;
 	};
 
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpio 31 0>;
+		};
+	};
+
 	fpi@10000000 {
-		#address-cells = <1>;
-		#size-cells = <1>;
 		localbus@0 {
-			#address-cells = <2>;
-			#size-cells = <1>;
-			ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
-				1 0 0x4000000 0x4000010>; /* addsel1 */
-			compatible = "lantiq,localbus", "simple-bus";
-
 			nor-boot@0 {
 				compatible = "lantiq,nor";
 				bank-width = <2>;
@@ -30,35 +31,45 @@
 
 				partition@0 {
 					label = "uboot";
-					reg = <0x00000 0x10000>; /* 64 KB */
+					reg = <0x00000 0x10000>;
+					read-only;
 				};
 
 				partition@10000 {
 					label = "uboot_env";
-					reg = <0x10000 0x10000>; /* 64 KB */
+					reg = <0x10000 0x10000>;
+					read-only;
 				};
 
 				partition@20000 {
 					label = "linux";
-					reg = <0x20000 0x3c0000>;
+					reg = <0x20000 0x3d0000>;
 				};
 
 				partition@400000 {
-					label = "boardconfig";
+					label = "board_config";
 					reg = <0x3f0000 0x10000>;
+					read-only;
 				};
 			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x3f0016 0x6>;
+				mac-increment = <2>;
+			};
+
+			ralink_eep {
+				compatible = "ralink,eeprom";
+				ralink,eeprom = "RT2860.eeprom";
+				reg = <0 0x3f0410 0x110>;
+			};
 		};
 
 		gpio: pinmux@E100B10 {
-			compatible = "lantiq,pinctrl-xway";
 			pinctrl-names = "default";
 			pinctrl-0 = <&state_default>;
 
-			#gpio-cells = <2>;
-			gpio-controller;
-			reg = <0xE100B10 0xA0>;
-
 			state_default: pinmux {
 				exin {
 					lantiq,groups = "exin1";
@@ -71,69 +82,61 @@
 			};
 		};
 
-		adsl: dsl@E116000 {
-			compatible = "lantiq,dsl-xway";
-			interrupt-parent = <&icu0>;
-			interrupts = <63 96>;
-		};
-
 		etop@E180000 {
-			compatible = "lantiq,etop-xway";
-			reg = <0xE180000 0x40000>;
-			interrupt-parent = <&icu0>;
-			interrupts = <73 78>;
-			phy-mode = "rmii";
-			mac-address = [ 00 11 22 33 44 55 ];
+			phy-mode = "mii";
 		};
 
 		pci@E105400 {
-			lantiq,bus-clock = <33333333>;
-			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-			interrupt-map = <
-                                0x7000 0 0 1 &icu0 30 1 // slot 14, irq 29
-			>;
-			gpio-reset = <&gpio 21 0>;
-			req-mask = <0x1>;		/* GNT1 */
+			status = "okay";
+			interrupt-map = <0x7000 0 0 1 &icu0 135 1>;
+			req-mask = <0x1>;
 		};
 
 	};
 
-	gpio-keys {
-		compatible = "gpio-keys1";
-		reset {
-			label = "Reset";
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
+		wps {
+			label = "wps";
 			gpios = <&gpio 29 1>;
-			gpio-key,wakeup;
+			linux,code = <0x211>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
 			linux,code = <0x100>;
 		};
 	};
 
 	gpio-leds {
 		compatible = "gpio-leds";
-		festnetz {
-			label = "Festnetz";
+		power {
+			label = "power";
+			gpios = <&gpio 3 1>;
+		};
+		power1 {
+			label = "power1";
 			gpios = <&gpio 4 1>;
-			default-state = "on";
 		};
-		internet {
-			label = "Internet";
+		online {
+			label = "online";
 			gpios = <&gpio 5 1>;
-			default-state = "on";
 		};
-		wlan {
-			label = "WLan";
+		voice {
+			label = "voice";
 			gpios = <&gpio 6 1>;
-			default-state = "on";
 		};
-		online {
-			label = "Online";
+		voice2 {
+			label = "voice2";
 			gpios = <&gpio 8 1>;
-			default-state = "on";
 		};
-		dsl {
-			label = "DSL";
+		wifi {
+			label = "wifi";
 			gpios = <&gpio 9 1>;
-			default-state = "on";
 		};
 	};
 };
diff --git a/target/linux/lantiq/image/ARV752DPW.dts b/target/linux/lantiq/image/ARV752DPW.dts
index eb28b9b6fa..3c58f7e2ea 100644
--- a/target/linux/lantiq/image/ARV752DPW.dts
+++ b/target/linux/lantiq/image/ARV752DPW.dts
@@ -3,6 +3,8 @@
 /include/ "danube.dtsi"
 
 / {
+	model = "ARV752DPW - Arcor 802";
+
 	chosen {
 		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
 	};
@@ -11,16 +13,15 @@
 		reg = <0x0 0x4000000>;
 	};
 
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpiomm 1 0>;
+		};
+	};
+
 	fpi@10000000 {
-		#address-cells = <1>;
-		#size-cells = <1>;
 		localbus@0 {
-			#address-cells = <2>;
-			#size-cells = <1>;
-			ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
-				1 0 0x4000000 0x4000010>; /* addsel1 */
-			compatible = "lantiq,localbus", "simple-bus";
-
 			nor-boot@0 {
 				compatible = "lantiq,nor";
 				bank-width = <2>;
@@ -37,6 +38,7 @@
 				partition@10000 {
 					label = "uboot_env";
 					reg = <0x10000 0x10000>;
+					read-only;
 				};
 
 				partition@20000 {
@@ -45,11 +47,18 @@
 				};
 
 				partition@7f0000 {
-					label = "boardconfig";
+					label = "board_config";
 					reg = <0x7f0000 0x10000>;
 					read-only;
 				};
 			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x7f0016 0x6>;
+				mac-increment = <2>;
+			};
+
 			gpiomm: gpiomm@4000000 {
 				compatible = "lantiq,gpio-mm";
 				reg = <1 0x0 0x10 >;
@@ -57,130 +66,154 @@
 				#size-cells = <1>;
 				#gpio-cells = <2>;
 				gpio-controller;
-				lantiq,shadow = <2>;
+				lantiq,shadow = <0x3>;
 			};
 		};
 
 		gpio: pinmux@E100B10 {
-			compatible = "lantiq,pinctrl-xway";
 			pinctrl-names = "default";
 			pinctrl-0 = <&state_default>;
 
-			#gpio-cells = <2>;
-			gpio-controller;
-			reg = <0xE100B10 0xA0>;
-
 			state_default: pinmux {
 				ebu {
 					lantiq,groups = "ebu cs1";
 					lantiq,function = "ebu";
 				};
-				pci {
-					lantiq,groups = "gnt1", "req1";
+				exin {
+					lantiq,groups = "exin1";
+					lantiq,function = "exin";
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_in {
+					lantiq,groups = "req2", "req1";
+					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1";
 					lantiq,function = "pci";
+					lantiq,output = <1>;
 				};
-				conf_out {
-					lantiq,pins = "io3", "io5", "io6", "io8", /* leds */
-							"io21"; /* pci-rst */
-					lantiq,open-drain;
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <2>;
+					lantiq,output = <1>;
+				};
+				leds {
+					lantiq,pins = "io3", "io5", "io6", "io8";
+					lantiq,output = <1>;
 					lantiq,pull = <0>;
 				};
+				keys {
+					lantiq,pins = "io11", "io12", "io13", "io28";
+					lantiq,output = <0>;
+					lantiq,pull = <2>;
+					lantiq,open-drain = <1>;
+				};
 			};
 		};
 
-		adsl: dsl@E116000 {
-			compatible = "lantiq,dsl-xway";
-			interrupt-parent = <&icu0>;
-			interrupts = <63 96>;
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpiomm 0 0>;
 		};
 
 		etop@E180000 {
-			compatible = "lantiq,etop-xway";
-			reg = <0xE180000 0x40000>;
-			interrupt-parent = <&icu0>;
-			interrupts = <73 78>;
 			phy-mode = "rmii";
-			mac-address = [ 00 11 22 33 44 55 ];
 		};
 
 		pci@E105400 {
-			lantiq,bus-clock = <33333333>;
-			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-			interrupt-map = <
-                                0x7000 0 0 1 &icu0 30 1 // slot 14, irq 29
-			>;
+			status = "okay";
 			lantiq,external-clock;
 			gpio-reset = <&gpio 21 0>;
+			interrupt-map = <0x7000 0 0 1 &icu0 135>;
 			req-mask = <0x3>;
 		};
 
 	};
 
-	gpio-keys {
-		compatible = "gpio-keys1";
+	ralink_eep {
+		compatible = "ralink,eeprom";
+		ralink,eeprom = "RT2860.eeprom";
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+	/*	wps {
+			label = "wps";
+			gpios = <&gpio 11 1>;
+			linux,code = <0x211>;
+		};*/
+		restart {
+			label = "restart";
+			gpios = <&gpio 12 0>;
+			linux,code = <0x110>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 13 0>;
+			linux,code = <0x111>;
+		};
 		reset {
-			label = "Reset";
-			gpios = <&gpio 29 1>;
-			gpio-key,wakeup;
+			label = "reset";
+			gpios = <&gpio 28 0>;
 			linux,code = <0x100>;
 		};
 	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
-		power0 {
-			label = "power0";
+		power {
+			label = "power";
 			gpios = <&gpio 3 1>;
-			default-state = "on";
 		};
 		message {
 			label = "message";
 			gpios = <&gpio 5 1>;
-			default-state = "on";
 		};
 		power1 {
 			label = "power1";
 			gpios = <&gpio 6 1>;
-			default-state = "on";
 		};
 		voice1 {
 			label = "voice1";
 			gpios = <&gpio 8 1>;
-			default-state = "on";
 		};
 		microphone {
-			label = "microphone";
+			/* use this led as te usb led */
+			label = "usb";
 			gpios = <&gpiomm 3 1>;
-			default-state = "on";
 		};
 		wifi {
 			label = "wifi";
 			gpios = <&gpiomm 4 1>;
-			default-state = "on";
 		};
 		fxs1 {
 			label = "fxs1";
 			gpios = <&gpiomm 5 1>;
-			default-state = "on";
 		};
 		fx2 {
 			label = "fxs2";
 			gpios = <&gpiomm 6 1>;
-			default-state = "on";
 		};
 		fxo {
 			label = "fxo";
 			gpios = <&gpiomm 7 1>;
-			default-state = "on";
 		};
 		internet {
 			label = "internet";
 			gpios = <&gpiomm 8 1>;
-			default-state = "on";
 		};
 		voice2 {
 			label = "voice2";
 			gpios = <&gpiomm 9 1>;
-			default-state = "on";
 		};
 	};
 };
diff --git a/target/linux/lantiq/image/ARV752DPW22.dts b/target/linux/lantiq/image/ARV752DPW22.dts
index 7349bdb446..6057f7d904 100644
--- a/target/linux/lantiq/image/ARV752DPW22.dts
+++ b/target/linux/lantiq/image/ARV752DPW22.dts
@@ -3,6 +3,8 @@
 /include/ "danube.dtsi"
 
 / {
+	model = "ARV752DPW22 - Arcor 803";
+
 	chosen {
 		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
 	};
@@ -11,16 +13,15 @@
 		reg = <0x0 0x4000000>;
 	};
 
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpiomm 1 0>;
+		};
+	};
+
 	fpi@10000000 {
-		#address-cells = <1>;
-		#size-cells = <1>;
 		localbus@0 {
-			#address-cells = <2>;
-			#size-cells = <1>;
-			ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
-				1 0 0x4000000 0x4000010>; /* addsel1 */
-			compatible = "lantiq,localbus", "simple-bus";
-
 			nor-boot@0 {
 				compatible = "lantiq,nor";
 				bank-width = <2>;
@@ -37,6 +38,7 @@
 				partition@10000 {
 					label = "uboot_env";
 					reg = <0x10000 0x10000>;
+					read-only;
 				};
 
 				partition@20000 {
@@ -45,11 +47,18 @@
 				};
 
 				partition@7f0000 {
-					label = "boardconfig";
+					label = "board_config";
 					reg = <0x7f0000 0x10000>;
 					read-only;
 				};
 			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x7f0016 0x6>;
+				mac-increment = <2>;
+			};
+
 			gpiomm: gpiomm@4000000 {
 				compatible = "lantiq,gpio-mm";
 				reg = <1 0x0 0x10 >;
@@ -57,78 +66,105 @@
 				#size-cells = <1>;
 				#gpio-cells = <2>;
 				gpio-controller;
-				lantiq,shadow = <2>;
+				lantiq,shadow = <3>;
 			};
 		};
 
 		gpio: pinmux@E100B10 {
-			compatible = "lantiq,pinctrl-xway";
 			pinctrl-names = "default";
 			pinctrl-0 = <&state_default>;
 
-			#gpio-cells = <2>;
-			gpio-controller;
-			reg = <0xE100B10 0xA0>;
-
 			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu cs1";
+					lantiq,function = "ebu";
+				};
 				exin {
 					lantiq,groups = "exin1";
 					lantiq,function = "exin";
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
 				};
-				pci {
-					lantiq,groups = "gnt1", "gnt2", "req1", "req2";
+				pci_in {
+					lantiq,groups = "req1", "req2";
 					lantiq,function = "pci";
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
+				pci_out {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <2>;
+					lantiq,output = <1>;
 				};
-				conf_out {
-					lantiq,pins = "io3", "io5", "io6", "io8", /* leds */
-							"io21"; /* pci-rst */
-					lantiq,open-drain;
-					lantiq,pull = <0>;
+				leds {
+					lantiq,pins = "io3", "io5", "io6", "io8";
+					lantiq,output = <1>;
 				};
 			};
 		};
 
-		adsl: dsl@E116000 {
-			compatible = "lantiq,dsl-xway";
-			interrupt-parent = <&icu0>;
-			interrupts = <63 96>;
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpiomm 0 0>;
 		};
 
 		etop@E180000 {
-			compatible = "lantiq,etop-xway";
-			reg = <0xE180000 0x40000>;
-			interrupt-parent = <&icu0>;
-			interrupts = <73 78>;
 			phy-mode = "rmii";
-			mac-address = [ 00 11 22 33 44 55 ];
 		};
 
 		pci@E105400 {
-			lantiq,bus-clock = <33333333>;
-			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
+			status = "okay";
+			lantiq,external-clock;
 			interrupt-map = <
-                                0x7000 0 0 1 &icu0 30 1 // slot 14, irq 29
+                                0x7000 0 0 1 &icu0 30
+		                0x7800 0 0 1 &icu0 135
+			        0x7800 0 0 2 &icu0 135
+			        0x7800 0 0 3 &icu0 135
 			>;
-			lantiq,external-clock;
 			gpio-reset = <&gpio 21 0>;
 			req-mask = <0x3>;
 		};
 
 	};
 
-	gpio-keys {
-		compatible = "gpio-keys1";
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		wps {
+			label = "wps";
+			gpios = <&gpio 11 1>;
+			linux,code = <0x211>;
+		};
+		restart {
+			label = "restart";
+			gpios = <&gpio 12 1>;
+			linux,code = <0x110>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 13 1>;
+			linux,code = <0x111>;
+		};
 		reset {
-			label = "Reset";
-			gpios = <&gpio 29 1>;
-			gpio-key,wakeup;
+			label = "reset";
+			gpios = <&gpio 28 1>;
 			linux,code = <0x100>;
 		};
 	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
-		power0 {
-			label = "power0";
+		power {
+			label = "power";
 			gpios = <&gpio 3 1>;
 			default-state = "on";
 		};
@@ -153,7 +189,7 @@
 			default-state = "on";
 		};
 		wifi {
-			label = "wifi";
+			label = "wifi_rt";
 			gpios = <&gpiomm 4 1>;
 			default-state = "on";
 		};
@@ -162,7 +198,7 @@
 			gpios = <&gpiomm 5 1>;
 			default-state = "on";
 		};
-		fx2 {
+		fxs2 {
 			label = "fxs2";
 			gpios = <&gpiomm 6 1>;
 			default-state = "on";
@@ -172,8 +208,8 @@
 			gpios = <&gpiomm 7 1>;
 			default-state = "on";
 		};
-		internet {
-			label = "internet";
+		dsl {
+			label = "dsl";
 			gpios = <&gpiomm 8 1>;
 			default-state = "on";
 		};
diff --git a/target/linux/lantiq/image/DGN1000B.dts b/target/linux/lantiq/image/DGN1000B.dts
index 9fac104b2f..1fc8052e21 100644
--- a/target/linux/lantiq/image/DGN1000B.dts
+++ b/target/linux/lantiq/image/DGN1000B.dts
@@ -3,6 +3,8 @@
 /include/ "amazonse.dtsi"
 
 / {
+	model = "DGN1000B - Netgear DGN1000B";
+
 	chosen {
 		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
 	};
@@ -12,18 +14,10 @@
 	};
 
 	fpi@10000000 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-
 		gpio: pinmux@E100B10 {
-			compatible = "lantiq,pinctrl-ase";
 			pinctrl-names = "default";
 			pinctrl-0 = <&state_default>;
 
-			#gpio-cells = <2>;
-			gpio-controller;
-			reg = <0xE100B10 0xA0>;
-
 			state_default: pinmux {
 				spi {
 					lantiq,groups = "spi", "spi_cs1";
@@ -33,46 +27,26 @@
 					lantiq,groups = "asc";
 					lantiq,function = "asc";
 				};
-				exin {
-					lantiq,groups = "exin1", "exin2";
-					lantiq,function = "exin";
-				};
-				conf_in {
-					lantiq,pins = "io0", "io29"; /* nand rdy */
+				keys_in {
+					lantiq,pins = "io0",/* "io25", */"io29";
 					lantiq,pull = <2>;
+					lantiq,open-drain = <1>;
 				};
 			};
 		};
 
-		adsl: dsl@E116000 {
-			compatible = "lantiq,dsl-xway";
-			interrupt-parent = <&icu0>;
-			interrupts = <63 96>;
-		};
-
 		etop@E180000 {
-			compatible = "lantiq,etop-xway";
-			reg = <0xE180000 0x40000>;
-			interrupt-parent = <&icu0>;
-			interrupts = <105 109>;
-			phy-mode = "ephy";
+			phy-mode = "mii";
 			mac-address = [ 00 11 22 33 44 55 ];
 		};
 
 		spi@E100800 {
-			compatible = "lantiq,spi-xway";
-			reg = <0xE100800 0x100>;
-			interrupt-parent = <&icu0>;
-			interrupts = <24 25 26>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
 			m25p80@0 {
 				#address-cells = <1>;
 				#size-cells = <1>;
-				compatible = "s25fl129p0";
+				compatible = "mx25l3205d";
 				reg = <0 0>;
-				linux,modalias = "m25p80", "mx25l3205d";
+				linux,modalias = "m25p80", "mx25l64";
 				spi-max-frequency = <5000000>;
 
 				partition@0 {
@@ -105,46 +79,53 @@
 				};
 			};
 		};
+		ifxhcd@E101000 {
+			status = "okay";
+		};
 	};
-	
-	/* missing button on <&gpio 25 0> */
-/*	gpio-keys {
-		compatible = "gpio-keys";
-		interrupt-parent = <&icu0>;
-		interrupts = <30 31>;
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
 		reset {
-			label = "Reset";
-			gpios = <&gpio 0 0>;
-			gpio-key,wakeup;
+			label = "reset";
+			gpios = <&gpio 0 1>;
 			linux,code = <0x100>;
 		};
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 25 1>;
+			linux,code = <0xf7>;
+		};
 		wps {
-			label = "WPS";
+			label = "wps";
 			gpios = <&gpio 29 1>;
-			gpio-key,wakeup;
-			linux,code = <0x100>;
+			linux,code = <0x211>;
 		};
 	};
-*/
+
 	gpio-leds {
-		compatible = "gpio-leds";
-		festnetz {
-			label = "DSL";
+		cmpatible = "gpio-leds";
+		dsl {
+			label = "dsl";
 			gpios = <&gpio 1 1>;
 			default-state = "on";
 		};
-		internet1 {
-			label = "Internet1";
+		online {
+			label = "online";
 			gpios = <&gpio 2 1>;
 			default-state = "on";
 		};
-		internet2 {
-			label = "Internet2";
+		online2 {
+			label = "online2";
 			gpios = <&gpio 3 1>;
 			default-state = "on";
 		};
 		wps {
-			label = "WPS";
+			label = "wps";
 			gpios = <&gpio 4 1>;
 			default-state = "on";
 		};
diff --git a/target/linux/lantiq/image/DGN3500.dtsi b/target/linux/lantiq/image/DGN3500.dtsi
new file mode 100644
index 0000000000..12e1e80935
--- /dev/null
+++ b/target/linux/lantiq/image/DGN3500.dtsi
@@ -0,0 +1,179 @@
+/include/ "ar9.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 {
+				exin {
+					lantiq,groups = "exin1";
+					lantiq,function = "exin";
+				};
+				pci {
+					lantiq,groups = "gnt1", "req1";
+					lantiq,function = "pci";
+				};
+				pci-in {
+					lantiq,groups = "req1";
+					lantiq,output = <0>;
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+				};
+				pci-out {
+					lantiq,groups = "gnt1";
+					lantiq,output = <1>;
+					lantiq,pull = <0>;
+				};
+				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>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "mii";
+			mac-address = [ 00 11 22 33 44 55 ];
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+		};
+
+		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>;
+			req-mask = <0x1>; /* GNT1 */
+		};
+	};
+
+	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 0>;
+
+		m25p80@0 {
+			#address-cells = <1>;
+			#size-cells = <1>;
+			compatible = "s25fl129p0";
+			reg = <0 0>;
+			linux,modalias = "m25p80", "mx25l3205d";
+			spi-max-frequency = <1000000>;
+			spi-cpha;
+			spi-cpol;
+			spi-cs-high;
+
+			partition@0 {
+				reg = <0x0 0x10000>;
+				label = "uboot";
+				read-only;
+			};
+
+			partition@10000 {
+				reg = <0x10000 0x10000>;
+				label = "uboot-env";
+				read-only;
+			};
+
+			partition@20000 {
+				reg = <0x20000 0x10000>;
+				label = "calibration";
+				read-only;
+			};
+
+			partition@50000 {
+				reg = <0x50000 0xfa0000>;
+				label = "linux";
+			};
+		};
+	};
+
+	rtl8366rb {
+		compatible = "rtl8366rb";
+		gpio-sda = <&gpio 35 0>;
+		gpio-sck = <&gpio 37 0>;
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 36 1>;
+			linux,code = <0xf7>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpio 54 1>;
+			linux,code = <0x211>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 53 1>;
+			linux,code = <0x100>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		internet {
+			label = "inernet";
+			gpios = <&gpio 2 1>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 4 1>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpio 22 1>;
+		};
+		power {
+			label = "power";
+			gpios = <&gpio 34 1>;
+			default-state = "on";
+		};
+		power2 {
+			label = "power2";
+			gpios = <&gpio 39 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpio 51 1>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpio 52 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/DGN3500B.dts b/target/linux/lantiq/image/DGN3500B.dts
new file mode 100644
index 0000000000..71a4e58c13
--- /dev/null
+++ b/target/linux/lantiq/image/DGN3500B.dts
@@ -0,0 +1,7 @@
+/dts-v1/;
+
+/include/ "DGN3500.dtsi"
+
+/ {
+	model = "DGN3500B - Netgear DGN3500B";
+};
diff --git a/target/linux/lantiq/image/EASY50810.dts b/target/linux/lantiq/image/EASY50810.dts
new file mode 100644
index 0000000000..9e5fad782b
--- /dev/null
+++ b/target/linux/lantiq/image/EASY50810.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+/include/ "ar9.dtsi"
+
+/ {
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	fpi@10000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		localbus@0 {
+			#address-cells = <2>;
+			#size-cells = <1>;
+			ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
+				1 0 0x4000000 0x4000010>; /* addsel1 */
+			compatible = "lantiq,localbus", "simple-bus";
+
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x2000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x10000>; /* 64 KB */
+				};
+
+				partition@10000 {
+					label = "uboot_env";
+					reg = <0x10000 0x10000>; /* 64 KB */
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0x3d0000>;
+				};
+
+				partition@400000 {
+					label = "rootfs";
+					reg = <0x400000 0x400000>;
+				};
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			compatible = "lantiq,pinctrl-xr9";
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			#gpio-cells = <2>;
+			gpio-controller;
+			reg = <0xE100B10 0xA0>;
+
+			state_default: pinmux {
+				stp {
+					lantiq,groups = "stp";
+					lantiq,function = "stp";
+				};
+				exin {
+					lantiq,groups = "exin1";
+					lantiq,function = "exin";
+				};
+				pci {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+				};
+				conf_out {
+					lantiq,pins = "io4", "io5", "io6"; /* stp */
+					lantiq,open-drain;
+					lantiq,pull = <0>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			compatible = "lantiq,etop-xway";
+			reg = <0xE180000 0x40000
+				0xE108000 0x200>;
+			interrupt-parent = <&icu0>;
+			interrupts = <72 73>;
+			phy-mode = "rmii";
+			mac-address = [ 00 11 22 33 44 55 ];
+		};
+
+		stp0: stp@E100BB0 {
+			#gpio-cells = <2>;
+			compatible = "lantiq,gpio-stp-xway";
+			gpio-controller;
+			reg = <0xE100BB0 0x40>;
+
+			lantiq,shadow = <0xfff>;
+			lantiq,groups = <0x3>;
+		};
+
+		pci@E105400 {
+			lantiq,bus-clock = <33333333>;
+			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
+			interrupt-map = <
+                                0x7000 0 0 1 &icu0 29 1 // slot 14, irq 29
+			>;
+			gpios-reset = <&gpio 21 0>;
+			req-mask = <0x1>;		/* GNT1 */
+		};
+
+	};
+};
diff --git a/target/linux/lantiq/image/EASY80920.dtsi b/target/linux/lantiq/image/EASY80920.dtsi
index 332df3d147..660f3cfdfe 100644
--- a/target/linux/lantiq/image/EASY80920.dtsi
+++ b/target/linux/lantiq/image/EASY80920.dtsi
@@ -23,25 +23,50 @@
 			
 		};
 
-		sflash@E100800 {
-			compatible = "lantiq,sflash";
+		spi@E100800 {
+			compatible = "lantiq,spi-xway-broken";
 			reg = <0xE100800 0x100>;
+			interrupt-parent = <&icu0>;
+			interrupts = <22 23 24>;
 			#address-cells = <1>;
 			#size-cells = <1>;
-	
-			partition@0 {
-				label = "uboot";
-				reg = <0x00000 0x10000>;
-			};
 
-			partition@10000 {
-				label = "uboot_env";
-				reg = <0x10000 0x10000>;
-			};
+			m25p80@0 {
+				#address-cells = <1>;
+				#size-cells = <1>;
+				compatible = "s25fl129p0";
+				reg = <0 0>;
+				linux,modalias = "m25p80", "mx25l3205d";
+				spi-max-frequency = <1000000>;
+
+				partition@0 {
+					reg = <0x0 0x20000>;
+					label = "SPI (RO) U-Boot Image";
+					read-only;
+				};
 
-			partition@20000 {
-				label = "linux";
-				reg = <0x20000 0x1d0000>;
+				partition@20000 {
+					reg = <0x20000 0x10000>;
+					label = "ENV_MAC";
+					read-only;
+				};
+
+				partition@30000 {
+					reg = <0x30000 0x10000>;
+					label = "DPF";
+					read-only;
+				};
+
+				partition@40000 {
+					reg = <0x40000 0x10000>;
+					label = "NVRAM";
+					read-only;
+				};
+
+				partition@500000 {
+					reg = <0x50000 0x003a0000>;
+					label = "kernel";
+				};
 			};
 		};
 
@@ -58,14 +83,18 @@
 			reg = <0xE100B10 0xA0>;
 
 			state_default: pinmux {
+				exin3 {
+					lantiq,groups = "exin3";
+					lantiq,function = "exin";
+				};
 				stp {
 					lantiq,groups = "stp";
 					lantiq,function = "stp";
 				};
-				/*spi {
+				spi {
 					lantiq,groups = "spi", "spi_cs4";
 					lantiq,function = "spi";
-				};*/
+				};
 				nand {
 					lantiq,groups = "nand cle", "nand ale",
 							"nand rd", "nand rdy";
@@ -79,18 +108,19 @@
 					lantiq,groups = "gnt1", "req1";
 					lantiq,function = "pci";
 				};
-				exin {
-					lantiq,groups = "exin3";
-					lantiq,function = "exin";
-				};
 				conf_out {
 					lantiq,pins = "io24", "io13", "io49", /* nand cle, ale and rd */
 							"io4", "io5", "io6", /* stp */
-							"io17", "io18", /* spi dout & clk */
-							"io21", /* pci-rst */
-							"io38"; /* pcie-rst */
+							"io21",
+							"io33";
 					lantiq,open-drain;
 					lantiq,pull = <0>;
+					lantiq,output = <1>;
+				};
+				pcie-rst {
+					lantiq,pins = "io38";
+					lantiq,pull = <0>;
+					lantiq,output = <1>;
 				};
 				conf_in {
 					lantiq,pins = "io39", /* exin3 */
@@ -100,7 +130,7 @@
 			};
 		};
 
-		eth@0xE108000 {
+		eth@E108000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "lantiq,xrx200-net";
@@ -137,12 +167,6 @@
 					phy-mode = "gmii";
 					phy-handle = <&phy11>;
 				};
-				ethernet@4 {
-					compatible = "lantiq,xrx200-pdi-port";
-					reg = <4>;
-					phynmode0 = "gmii";
-					phy-handle = <&phy13>;
-				};
 			};
 
 			wan: interface@1 {
@@ -151,7 +175,7 @@
 				#size-cells = <0>;
 				reg = <1>;
 				mac-address = [ 00 11 22 33 44 56 ];
-
+				lantiq,wan;
 				ethernet@5 {
 					compatible = "lantiq,xrx200-pdi-port";
 					reg = <5>;
@@ -160,6 +184,20 @@
 				};
 			};
 
+			test: interface@2 {
+				compatible = "lantiq,xrx200-pdi";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <2>;
+				mac-address = [ 00 11 22 33 44 57 ];
+				ethernet@4 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <4>;
+					phynmode0 = "gmii";
+					phy-handle = <&phy13>;
+				};
+			};
+
 			mdio@0 {
 				#address-cells = <1>;
 				#size-cells = <0>;
@@ -205,7 +243,12 @@
 			lantiq,phy2 = <0x7>;
 			/* lantiq,rising; */
 		};
-		
+
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpio 33 0>;
+		};	
+
 		pci@E105400 {
 			#address-cells = <3>;
 			#size-cells = <2>;
@@ -229,12 +272,6 @@
 		};
 	};
 
-	ifxhcd {
-		compatible = "lantiq,ifxhcd";
-		interrupt-parent = <&icu0>;
-		interrupts = <62 91>;
-	};
-
 	gphy-xrx200 {
 		compatible = "lantiq,phy-xrx200";
 		firmware = "lantiq/vr9_phy11g_a2x.bin";
@@ -248,7 +285,7 @@
 		poll-interval = <100>;
 		reset {
 			label = "Reset";
-			gpios = <&gpio 7 0>;
+			gpios = <&gpio 7 1>;
 			linux,code = <0x100>;
 		};
 		paging {
@@ -261,7 +298,7 @@
 /*	gpio-keys {
 		compatible = "gpio-keys";
 		wps {
-			gpios = <&gpio 39 0>;
+			gpios = <&gpio 2 0>;
 			linux,code = <0x100>;
 		};
 	};*/
@@ -269,50 +306,42 @@
 	gpio-leds {
 		compatible = "gpio-leds";
 		
-		led0 {
-			label = "led0";
+		power {
+			label = "power";
 			gpios = <&stp 9 0>;
 			default-state = "on";
 		};
 		warning {
 			label = "warning";
 			gpios = <&stp 22 0>;
-			default-state = "on";
 		};
 		fxs1 {
 			label = "fxs1";
 			gpios = <&stp 21 0>;
-			default-state = "on";
 		};
 		fxs2 {
 			label = "fxs2";
 			gpios = <&stp 20 0>;
-			default-state = "on";
 		};
 		fxo {
 			label = "fxo";
 			gpios = <&stp 19 0>;
-			default-state = "on";
 		};
 		usb1 {
 			label = "usb1";
 			gpios = <&stp 18 0>;
-			default-state = "on";
 		};
 		usb2 {
 			label = "usb2";
 			gpios = <&stp 15 0>;
-			default-state = "on";
 		};
 		sd {
 			label = "sd";
 			gpios = <&stp 14 0>;
-			default-state = "on";
 		};
 		wps {
 			label = "wps";
 			gpios = <&stp 12 0>;
-			default-state = "on";
 		};
 	};
 };
diff --git a/target/linux/lantiq/image/EASY80920-NAND.dts b/target/linux/lantiq/image/EASY80920NAND.dts
similarity index 100%
rename from target/linux/lantiq/image/EASY80920-NAND.dts
rename to target/linux/lantiq/image/EASY80920NAND.dts
diff --git a/target/linux/lantiq/image/EASY80920-NOR.dts b/target/linux/lantiq/image/EASY80920NOR.dts
similarity index 100%
rename from target/linux/lantiq/image/EASY80920-NOR.dts
rename to target/linux/lantiq/image/EASY80920NOR.dts
diff --git a/target/linux/lantiq/image/FRITZ7320.dts b/target/linux/lantiq/image/FRITZ7320.dts
new file mode 100644
index 0000000000..2a7b76693d
--- /dev/null
+++ b/target/linux/lantiq/image/FRITZ7320.dts
@@ -0,0 +1,138 @@
+/dts-v1/;
+
+/include/ "ar9.dtsi"
+
+/ {
+	model = "FRITZ7320 - 1&1 HomeServer";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x4000000>;
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x800000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "urlader";
+					reg = <0x00000 0x20000>;
+					read-only;
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0xf60000>;
+				};
+
+				partition@f80000 {
+					label = "tffs (1)";
+					reg = <0xf80000 0x40000>;
+					read-only;
+				};
+
+				partition@fc0000 {
+					label = "tffs (2)";
+					reg = <0xfc0000 0x40000>;
+					read-only;
+				};
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				pci {
+					lantiq,groups = "gnt1", "req1", "req2", "req3", "req4", "gnt2", "gnt3", "gnt4";
+					lantiq,function = "pci";
+				};
+				pci-in {
+					lantiq,groups = "req1", "req2", "req3", "req4";
+					lantiq,output = <0>;
+					lantiq,open-drain = <1>;
+					lantiq,pull = <2>;
+				};
+				pci-out {
+					lantiq,groups = "gnt1", "gnt2", "gnt3", "gnt4";
+					lantiq,output = <1>;
+					lantiq,pull = <0>;
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "mii";
+			mac-address = [ 00 11 22 33 44 55 ];
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+		};
+
+		pci@E105400 {
+			status = "okay";
+			req-mask = <0xf>;
+			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>;
+			req-mask = <0xf>; /* GNT1 */
+		};
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 1 1>;
+			linux,code = <0xf7>;
+		};
+		dect {
+			label = "dect";
+			gpios = <&gpio 2 1>;
+			linux,code = <0x102>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		power {
+			label = "power";
+			gpios = <&gpio 44 1>;
+		};
+		voice {
+			label = "voice";
+			gpios = <&gpio 47 1>;
+		};
+		dect {
+			label = "dect";
+			gpios = <&gpio 38 1>;
+		};
+		wlan {
+			label = "wlan";
+			gpios = <&gpio 37 1>;
+		};
+		online {
+			label = "online";
+			gpios = <&gpio 35 1>;
+		};
+		online2 {
+			label = "online2";
+			gpios = <&gpio 45 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index f0f4d4f8ed..019bd58696 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -4,17 +4,16 @@
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
+
+# boards missing since devicetree update
+#EASY50712 ARV3527P GIGASX76X ARV4519PW BTHOMEHUBV2B BTHOMEHUBV2BOPENRG
+#WBMR P2601HNFX H201L
+
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
 JFFS2_BLOCKSIZE = 64k 128k 256k
 
-ase_cmdline=-console=ttyLTQ0,115200 rootfstype=squashfs,jffs2
-xway_cmdline=-console=ttyLTQ1,115200 rootfstype=squashfs,jffs2
-falcon_cmdline=-console=ttyLTQ0,115200 rootfstype=squashfs,jffs2
-svip_cmdline=-console=ttyLTQ0,115200 rootfstype=squashfs,jffs2
-sx76x_cmdline=console=ttyLTQ1,115200 rootfstype=squashfs,jffs2
-
 define CompressLzma
   $(STAGING_DIR_HOST)/bin/lzma e $(1) $(2)
 endef
@@ -104,90 +103,18 @@ define Image/BuildKernelGzip/Template
 	$(CP) $(KDIR)/uImage-$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-uImage
 endef
 
-ifeq ($(CONFIG_TARGET_lantiq_danube),y)
-
-Image/BuildKernel/Profile/EASY50712=$(call Image/BuildKernel/Template,EASY50712,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV3527P=$(call Image/BuildKernel/Template,ARV3527P,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV4510PW=$(call Image/BuildKernel/Template,ARV4510PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV4518PW=$(call Image/BuildKernel/Template,ARV4518PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV4519PW=$(call Image/BuildKernel/Template,ARV4519PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV4520PW=$(call Image/BuildKernel/Template,ARV4520PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV4525PW=$(call Image/BuildKernel/Template,ARV4525PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV7525PW=$(call Image/BuildKernel/Template,ARV7525PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV452CPW=$(call Image/BuildKernel/Template,ARV452CPW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV7518PW=$(call Image/BuildKernel/Template,ARV7518PW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV752DPW=$(call Image/BuildKernel/Template,ARV752DPW,$(xway_cmdline))
-Image/BuildKernel/Profile/ARV752DPW22=$(call Image/BuildKernel/Template,ARV752DPW22,$(xway_cmdline))
-Image/BuildKernel/Profile/GIGASX76X=$(call Image/BuildKernel/Template,GIGASX76X,$(sx76x_cmdline))
-Image/BuildKernel/Profile/BTHOMEHUBV2B=$(call Image/BuildKernel/Template,BTHOMEHUBV2B,$(xway_cmdline))
-Image/BuildKernel/Profile/BTHOMEHUBV2BOPENRG=$(call Image/BuildKernel/Template,BTHOMEHUBV2BOPENRG,$(xway_cmdline))
 
-Image/Build/Profile/EASY50712=$(call Image/Build/$(1),$(1),EASY50712)
-Image/Build/Profile/ARV3527P=$(call Image/Build/$(1),$(1),ARV3527P)
-Image/Build/Profile/ARV4510PW=$(call Image/Build/$(1),$(1),ARV4510PW)
-Image/Build/Profile/ARV4518PW=$(call Image/Build/$(1),$(1),ARV4518PW)
-Image/Build/Profile/ARV4519PW=$(call Image/Build/$(1),$(1),ARV4519PW,BRNDA4519,0x12345678,memsize=32)
-Image/Build/Profile/ARV4520PW=$(call Image/Build/$(1),$(1),ARV4520PW,BRNDANUBE,0x12345678,memsize=32)
-Image/Build/Profile/ARV4525PW=$(call Image/Build/$(1),$(1),ARV4525PW,BRNDTW502,0x12345678,memsize=32)
-Image/Build/Profile/ARV7525PW=$(call Image/Build/$(1),$(1),ARV7525PW)
-Image/Build/Profile/ARV452CPW=$(call Image/Build/$(1),$(1),ARV452CPW)
-Image/Build/Profile/ARV7518PW=$(call Image/Build/$(1),$(1),ARV7518PW,BRNDA7519,0x12345678,memsize=64)
-Image/Build/Profile/ARV752DPW=$(call Image/Build/$(1),$(1),ARV752DPW)
-Image/Build/Profile/ARV752DPW22=$(call Image/Build/$(1),$(1),ARV752DPW22)
-Image/Build/Profile/GIGASX76X=$(call Image/Build/$(1),$(1),GIGASX76X)
-Image/Build/Profile/BTHOMEHUBV2B=$(call Image/Build/$(1),$(1),BTHOMEHUBV2B)
-Image/Build/Profile/BTHOMEHUBV2BOPENRG=$(call Image/Build/$(1),$(1),BTHOMEHUBV2BOPENRG)
+ifeq ($(CONFIG_TARGET_lantiq_falcon),y)
 
-define Image/BuildKernel/Profile/Generic
-	$(call Image/BuildKernel/Template,NONE)
-endef
-
-define Image/Build/Profile/Generic
-	$(call Image/Build/$(1),$(1),NONE)
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
-endef
-endif
-
-ifeq ($(CONFIG_TARGET_lantiq_ar9),y)
-Image/BuildKernel/Profile/WBMR=$(call Image/BuildKernel/Template,WBMR,$(xway_cmdline))
-Image/BuildKernel/Profile/DGN3500B=$(call Image/BuildKernel/Template,DGN3500B,$(xway_cmdline))
-Image/BuildKernel/Profile/P2601HNFX=$(call Image/BuildKernel/Template,P2601HNFX,$(xway_cmdline))
-Image/BuildKernel/Profile/H201L=$(call Image/BuildKernel/Template,H201L,$(xway_cmdline))
-Image/BuildKernel/Profile/FRITZ7320=$(call Image/BuildKernelEVA/Template,FRITZ7320,$(xway_cmdline))
-
-Image/Build/Profile/WBMR=$(call Image/Build/$(1),$(1),WBMR)
-Image/Build/Profile/DGN3500B=$(call Image/Build/$(1),$(1),DGN3500B)
-Image/Build/Profile/P2601HNFX=$(call Image/Build/$(1),$(1),P2601HNFX)
-Image/Build/Profile/H201L=$(call Image/Build/$(1),$(1),H201L)
-Image/Build/Profile/FRITZ7320=$(call Image/BuildEVA/$(1),$(1),FRITZ7320)
+Image/BuildKernel/Profile/EASY98000=$(call Image/BuildKernel/Template,EASY98000)
+Image/Build/Profile/EASY98000=$(call Image/Build/$(1),$(1),EASY98000)
 
-define Image/BuildKernel/Profile/Generic
-	$(call Image/BuildKernel/Template,NONE)
-endef
+Image/BuildKernel/Profile/EASY98020=$(call Image/BuildKernel/Template,EASY98020)
+Image/Build/Profile/EASY98020=$(call Image/Build/$(1),$(1),EASY98020)
 
-define Image/Build/Profile/Generic
-	$(call Image/Build/$(1),$(1),NONE)
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
-endef
 endif
 
-ifeq ($(CONFIG_TARGET_lantiq_falcon)$(CONFIG_TARGET_lantiq_falcon_stable),y)
-
-Image/BuildKernel/Profile/EASY98000=$(call Image/BuildKernel/Template,EASY98000,$(falcon_cmdline))
-Image/BuildKernel/Profile/EASY98020=$(call Image/BuildKernel/Template,EASY98020,$(falcon_cmdline))
 
-Image/Build/Profile/EASY98000=$(call Image/Build/$(1),$(1),EASY98000)
-Image/Build/Profile/EASY98020=$(call Image/Build/$(1),$(1),EASY98020)
-
-define Image/BuildKernel/Profile/Generic
-	$(call Image/BuildKernel/Template,NONE)
-endef
-
-define Image/Build/Profile/Generic
-	$(call Image/Build/$(1),$(1),NONE)
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
-endef
-endif
 
 ifeq ($(CONFIG_TARGET_lantiq_ase),y)
 
@@ -196,99 +123,69 @@ Image/Build/Profile/DGN1000B=$(call Image/Build/$(1),$(1),DGN1000B)
 
 endif
 
-ifeq ($(CONFIG_TARGET_lantiq_xway),y)
 
-# VR9
-Image/BuildKernel/Profile/EASY80920-NAND=$(call Image/BuildKernel/Template,EASY80920-NAND)
-Image/Build/Profile/EASY80920-NAND=$(call Image/Build/$(1),$(1),EASY80920-NAND)
-Image/BuildKernel/Profile/EASY80920-NOR=$(call Image/BuildKernel/Template,EASY80920-NOR)
-Image/Build/Profile/EASY80920-NOR=$(call Image/Build/$(1),$(1),EASY80920-NOR)
+
+ifeq ($(CONFIG_TARGET_lantiq_xway),y)
 
 # Danube
+Image/BuildKernel/Profile/EASY50712=$(call Image/BuildKernel/Template,EASY50712)
+Image/Build/Profile/EASY50712=$(call Image/Build/$(1),$(1),EASY50712)
+
+Image/BuildKernel/Profile/ARV4510PW=$(call Image/BuildKernel/Template,ARV4510PW)
+Image/Build/Profile/ARV4510PW=$(call Image/Build/$(1),$(1),ARV4510PW)
+
+Image/BuildKernel/Profile/ARV4525PW=$(call Image/BuildKernel/Template,ARV4525PW)
+Image/Build/Profile/ARV4525PW=$(call Image/Build/$(1),$(1),ARV4525PW)
+
 Image/BuildKernel/Profile/ARV7525PW=$(call Image/BuildKernel/Template,ARV7525PW)
 Image/Build/Profile/ARV7525PW=$(call Image/Build/$(1),$(1),ARV7525PW)
 
+Image/BuildKernel/Profile/ARV4518PW=$(call Image/BuildKernel/Template,ARV4518PW)
+Image/Build/Profile/ARV4518PW=$(call Image/Build/$(1),$(1),ARV4518PW)
+
 Image/BuildKernel/Profile/ARV4520PW=$(call Image/BuildKernel/Template,ARV4520PW)
 Image/Build/Profile/ARV4520PW=$(call Image/Build/$(1),$(1),ARV4520PW)
 
+Image/BuildKernel/Profile/ARV452CQW=$(call Image/BuildKernel/Template,ARV452CQW)
+Image/Build/Profile/ARV452CQW=$(call Image/Build/$(1),$(1),ARV452CQW)
+
+Image/BuildKernel/Profile/ARV7518PW=$(call Image/BuildKernel/Template,ARV7518PW)
+Image/Build/Profile/ARV7518PW=$(call Image/Build/$(1),$(1),ARV7518PW)
+
 Image/BuildKernel/Profile/ARV752DPW=$(call Image/BuildKernel/Template,ARV752DPW)
 Image/Build/Profile/ARV752DPW=$(call Image/Build/$(1),$(1),ARV752DPW)
 
 Image/BuildKernel/Profile/ARV752DPW22=$(call Image/BuildKernel/Template,ARV752DPW22)
 Image/Build/Profile/ARV752DPW22=$(call Image/Build/$(1),$(1),ARV752DPW22)
 
-endif
-
-ifeq ($(CONFIG_TARGET_lantiq_vr9),y)
-define Image/BuildKernel/Profile/FRITZ3370
-	$(call Image/BuildKernel/Template,FRITZ3370,$(xway_cmdline))
-	$(call Image/BuildKernelEVA/Template,FRITZ3370,$(xway_cmdline))
-endef
-
-Image/Build/Profile/FRITZ3370=$(call Image/Build/$(1),$(1),FRITZ3370)
-
-define Image/BuildKernel/Profile/Generic
-	$(call Image/BuildKernel/Template,NONE)
-endef
-
-define Image/Build/Profile/Generic
-	$(call Image/Build/$(1),$(1),NONE)
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
-endef
-endif
 
-ifeq ($(CONFIG_TARGET_lantiq_svip_be),y)
-define Image/BuildKernel/Profile/EASY33016
-	$(call Image/BuildKernelGzip/Template,EASY33016,$(svip_cmdline))
-endef
+# AR9
+Image/BuildKernel/Profile/DGN3500B=$(call Image/BuildKernel/Template,DGN3500B)
+Image/Build/Profile/DGN3500B=$(call Image/Build/$(1),$(1),DGN3500B)
 
-define Image/Build/Profile/EASY33016
-	$(call Image/Build/$(1),$(1),EASY33016)
-endef
+Image/BuildKernel/Profile/FRITZ7320=$(call Image/BuildKernelEVA/Template,FRITZ7320)
+Image/Build/Profile/FRITZ7320=$(call Image/BuildEVA/$(1),$(1),FRITZ7320)
 
-define Image/BuildKernel/Profile/EASY336
-	$(call Image/BuildKernelGzip/Template,EASY33016,$(svip_cmdline))
-endef
 
-define Image/Build/Profile/EASY336
-	$(call Image/Build/$(1),$(1),EASY33016)
-endef
+# VR9
+Image/BuildKernel/Profile/EASY80920NAND=$(call Image/BuildKernel/Template,EASY80920NAND)
+Image/Build/Profile/EASY80920NAND=$(call Image/Build/$(1),$(1),EASY80920NAND)
 
-define Image/BuildKernel/Profile/Generic
-	$(call Image/BuildKernelGzip/Template,EASY33016,$(svip_cmdline))
-	$(call Image/BuildKernelGzip/Template,EASY336,$(svip_cmdline))
-	$(call Image/BuildKernelGzip/Template,NONE)
-endef
+Image/BuildKernel/Profile/EASY80920NOR=$(call Image/BuildKernel/Template,EASY80920NOR)
+Image/Build/Profile/EASY80920NOR=$(call Image/Build/$(1),$(1),EASY80920NOR)
 
-define Image/Build/Profile/Generic
-	$(call Image/Build/$(1),$(1),EASY33016)
-	$(call Image/Build/$(1),$(1),EASY336)
-	$(call Image/Build/$(1),$(1),NONE)
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
-endef
 endif
 
-ifeq ($(CONFIG_TARGET_lantiq_svip_le),y)
-define Image/BuildKernel/Profile/EASY336
-	$(call Image/BuildKernelGzip/Template,EASY33016,$(svip_cmdline))
-endef
 
-define Image/Build/Profile/EASY336
-	$(call Image/Build/$(1),$(1),EASY33016)
-endef
 
-define Image/BuildKernel/Profile/Generic
-	$(call Image/BuildKernelGzip/Template,EASY336,$(svip_cmdline))
-	$(call Image/BuildKernelGzip/Template,NONE)
-endef
+ifeq ($(CONFIG_TARGET_lantiq_svip_be),y)
+
+Image/BuildKernel/Profile/EASY33016=$(call Image/BuildKernelGzip/Template,EASY33016)
+Image/Build/Profile/EASY33016=$(call Image/Build/$(1),$(1),EASY33016)
 
-define Image/Build/Profile/Generic
-	$(call Image/Build/$(1),$(1),EASY336)
-	$(call Image/Build/$(1),$(1),NONE)
-	$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs
-endef
 endif
 
+
 define Image/BuildKernel
 	$(call Image/BuildKernel/Profile/$(PROFILE))
 endef
diff --git a/target/linux/lantiq/image/amazonse.dtsi b/target/linux/lantiq/image/amazonse.dtsi
index f8e6f594ed..13d3e73860 100644
--- a/target/linux/lantiq/image/amazonse.dtsi
+++ b/target/linux/lantiq/image/amazonse.dtsi
@@ -28,7 +28,7 @@
 		};
 
 		watchdog@803F0 {
-			compatible = "lantiq,wdt1";
+			compatible = "lantiq,wdt";
 			reg = <0x803F0 0x10>;
 		};
 	};
@@ -42,11 +42,10 @@
 
 		eiu0: eiu@101000 {
 			#interrupt-cells = <1>;
-			interrupt-controller;
-			interrupt-parent;
-			compatible = "lantiq,eiu";
+			compatible = "lantiq,eiu-xway";
 			reg = <0x101000 0x1000>;
-			lantiq,count = <3>;
+			interrupt-parent = <&icu0>;
+			interrupts = <29 30 31>;
 		};
 
 		pmu0: pmu@102000 {
@@ -73,11 +72,28 @@
 		ranges = <0x0 0x10000000 0xEEFFFFF>;
 		reg = <0x10000000 0xEF00000>;
 
+		spi@E100800 {
+			compatible = "lantiq,spi-xway";
+			reg = <0xE100800 0x100>;
+			interrupt-parent = <&icu0>;
+			interrupts = <24 25 26>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+		};
+
 		gptu@E100A00 {
 			compatible = "lantiq,gptu-xway";
 			reg = <0xE100A00 0x100>;
 			interrupt-parent = <&icu0>;
                         interrupts = <97 98 99 100 101 102>;
+			status = "disabled";
+		};
+
+		gpio: pinmux@E100B10 {
+			compatible = "lantiq,pinctrl-ase";
+			#gpio-cells = <2>;
+			gpio-controller;
+			reg = <0xE100B10 0xA0>;
 		};
 
 		serial@E100C00 {
@@ -87,11 +103,19 @@
 			interrupts = <72 74 75>;
 		};
 
-		hcd@E101000 {
-			compatible = "lantiq,hcd";
-			reg = <0xE101000 0x100>;
+		mei@E116000 {
+			compatible = "lantiq,mei-xway";
+			interrupt-parent = <&icu0>;
+			interrupts = <63>;
+		};
+
+		ifxhcd@E101000 {
+			compatible = "lantiq,ifxhcd-ase";
+			reg = <0xE101000 0x1000
+				0xE120000 0x3f000>;
 			interrupt-parent = <&icu0>;
 			interrupts = <39>;
+			status = "disabled";
 		};
 
 		dma0: dma@E104100 {
@@ -103,5 +127,22 @@
 			compatible = "lantiq,ebu-xway";
 			reg = <0xE105300 0x100>;
 		};
+
+		ppe@E234000 {
+			compatible = "lantiq,ppe-ase";
+			interrupt-parent = <&icu0>;
+			interrupts = <85>;
+		};
+
+		etop@E180000 {
+			compatible = "lantiq,etop-xway";
+			reg = <0xE180000 0x40000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <105 109>;
+		};
+	};
+
+	adsl {
+		compatible = "lantiq,adsl-ase";
 	};
 };
diff --git a/target/linux/lantiq/image/ar9.dtsi b/target/linux/lantiq/image/ar9.dtsi
new file mode 100644
index 0000000000..8046449f73
--- /dev/null
+++ b/target/linux/lantiq/image/ar9.dtsi
@@ -0,0 +1,179 @@
+/ {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	compatible = "lantiq,xway", "lantiq,ar9";
+
+	cpus {
+		cpu@0 {
+			compatible = "mips,mips34K";
+		};
+	};
+
+	biu@1F800000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,biu", "simple-bus";
+		reg = <0x1F800000 0x800000>;
+		ranges = <0x0 0x1F800000 0x7FFFFF>;
+
+		icu0: icu@80200 {
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			compatible = "lantiq,icu";
+			reg = <0x80200 0x28
+				0x80228 0x28
+				0x80250 0x28
+				0x80278 0x28
+				0x802a0 0x28>;
+		};
+
+		watchdog@803F0 {
+			compatible = "lantiq,wdt";
+			reg = <0x803F0 0x10>;
+		};
+	};
+
+	sram@1F000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,sram";
+		reg = <0x1F000000 0x800000>;
+		ranges = <0x0 0x1F000000 0x7FFFFF>;
+
+		eiu0: eiu@101000 {
+			#interrupt-cells = <1>;
+			interrupt-controller;
+			compatible = "lantiq,eiu-xway";
+			reg = <0x101000 0x1000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <166 135 66 40 41 42>;
+		};
+
+		pmu0: pmu@102000 {
+			compatible = "lantiq,pmu-xway";
+			reg = <0x102000 0x1000>;
+		};
+
+		cgu0: cgu@103000 {
+			compatible = "lantiq,cgu-xway";
+			reg = <0x103000 0x1000>;
+			#clock-cells = <1>;
+		};
+
+		rcu0: rcu@203000 {
+			compatible = "lantiq,rcu-xway";
+			reg = <0x203000 0x1000>;
+		};
+	};
+
+	fpi@10000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "lantiq,fpi", "simple-bus";
+		ranges = <0x0 0x10000000 0xEEFFFFF>;
+		reg = <0x10000000 0xEF00000>;
+
+		localbus@0 {
+			#address-cells = <2>;
+			#size-cells = <1>;
+			ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
+				1 0 0x4000000 0x4000010>; /* addsel1 */
+			compatible = "lantiq,localbus", "simple-bus";
+		};
+
+		gptu@E100A00 {
+			compatible = "lantiq,gptu-xway";
+			reg = <0xE100A00 0x100>;
+			interrupt-parent = <&icu0>;
+			interrupts = <126 127 128 129 130 131>;
+			status = "disabled";
+		};
+
+		asc0: serial@E100400 {
+			compatible = "lantiq,asc";
+			reg = <0xE100400 0x400>;
+			interrupt-parent = <&icu0>;
+			interrupts = <104 105 106>;
+			status = "disabled";
+		};
+
+		gpio: pinmux@E100B10 {
+			compatible = "lantiq,pinctrl-xr9";
+			#gpio-cells = <2>;
+			gpio-controller;
+			reg = <0xE100B10 0xA0>;
+		};
+
+		asc1: serial@E100C00 {
+			compatible = "lantiq,asc";
+			reg = <0xE100C00 0x400>;
+			interrupt-parent = <&icu0>;
+			interrupts = <112 113 114>;
+		};
+
+		ifxhcd@E101000 {
+			compatible = "lantiq,ifxhcd-arx100";
+			reg = <0xE101000 0x1000
+				0xE120000 0x3f000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <62 91>;
+			status = "disabled";
+		};
+
+		deu@E103100 {
+			compatible = "lantiq,deu-ar9";
+			reg = <0xE103100 0xf00>;
+		};
+
+		dma0: dma@E104100 {
+			compatible = "lantiq,dma-xway";
+			reg = <0xE104100 0x800>;
+		};
+
+		ebu0: ebu@E105300 {
+			compatible = "lantiq,ebu-xway";
+			reg = <0xE105300 0x100>;
+		};
+
+		mei@E116000 {
+			compatible = "lantiq,mei-xway";
+			interrupt-parent = <&icu0>;
+			interrupts = <63>;
+		};
+
+		etop@E180000 {
+			compatible = "lantiq,etop-xway";
+			reg = <0xE180000 0x40000
+				0xE108000 0x200>;
+			interrupt-parent = <&icu0>;
+			interrupts = <73 72>;
+		};
+
+		ppe@E234000 {
+			compatible = "lantiq,ppe-ar9";
+			interrupt-parent = <&icu0>;
+			interrupts = <96>;
+		};
+
+		pci0: pci@E105400 {
+			status = "disabled";
+			#address-cells = <3>;
+			#size-cells = <2>;
+			#interrupt-cells = <1>;
+			compatible = "lantiq,pci-xway";
+			bus-range = <0x0 0x0>;
+			ranges = <0x2000000 0 0x8000000 0x8000000 0 0x2000000	/* pci memory */
+				  0x1000000 0 0x00000000 0xAE00000 0 0x200000>;	/* io space */
+			reg = <0x7000000 0x8000		/* config space */
+				0xE105400 0x400>;	/* pci bridge */
+			lantiq,bus-clock = <33333333>;
+			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
+			interrupt-map = <0x7000 0 0 1 &icu0 30 1>;
+			req-mask = <0x1>;
+		};
+	};
+
+	adsl {
+		compatible = "lantiq,adsl-ar9";
+	};
+};
diff --git a/target/linux/lantiq/image/danube.dtsi b/target/linux/lantiq/image/danube.dtsi
index 9f0fae009c..67432b16b3 100644
--- a/target/linux/lantiq/image/danube.dtsi
+++ b/target/linux/lantiq/image/danube.dtsi
@@ -3,6 +3,10 @@
 	#size-cells = <1>;
 	compatible = "lantiq,xway", "lantiq,danube";
 
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
 	cpus {
 		cpu@0 {
 			compatible = "mips,mips24Kc";
@@ -36,16 +40,17 @@
 	sram@1F000000 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "lantiq,sram";
+		compatible = "lantiq,sram", "simple-bus";
 		reg = <0x1F000000 0x800000>;
 		ranges = <0x0 0x1F000000 0x7FFFFF>;
 
 		eiu0: eiu@101000 {
 			#interrupt-cells = <1>;
 			interrupt-controller;
-			interrupt-parent;
 			compatible = "lantiq,eiu-xway";
 			reg = <0x101000 0x1000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <166 135 66>;
 		};
 
 		pmu0: pmu@102000 {
@@ -59,6 +64,14 @@
 			#clock-cells = <1>;
 		};
 
+		vmmc@107000 {
+			status = "disabled";
+			compatible = "lantiq,vmmc";
+			reg = <0x103000 0x400>;
+			interrupt-parent = <&icu0>;
+			interrupts = <150 151 152 153 154 155>;
+		};
+
 		rcu0: rcu@203000 {
 			compatible = "lantiq,rcu-xway";
 			reg = <0x203000 0x1000>;
@@ -72,6 +85,14 @@
 		ranges = <0x0 0x10000000 0xEEFFFFF>;
 		reg = <0x10000000 0xEF00000>;
 
+		localbus@0 {
+			#address-cells = <2>;
+			#size-cells = <1>;
+			ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
+				1 0 0x4000000 0x4000010>; /* addsel1 */
+			compatible = "lantiq,localbus", "simple-bus";
+		};
+
 		gptu@E100A00 {
 			compatible = "lantiq,gptu-xway";
 			reg = <0xE100A00 0x100>;
@@ -79,13 +100,52 @@
 			interrupts = <126 127 128 129 130 131>;
 		};
 
-		serial@E100C00 {
+		gpios: stp@E100BB0 {
+			#gpio-cells = <2>;
+			compatible = "lantiq,gpio-stp-xway";
+			gpio-controller;
+			reg = <0xE100BB0 0x40>;
+			lantiq,shadow = <0xfff>;
+			lantiq,groups = <0x3>;
+			status = "disabled";
+		};
+
+		asc0: serial@E100400 {
+			compatible = "lantiq,asc";
+			reg = <0xE100400 0x400>;
+			interrupt-parent = <&icu0>;
+			interrupts = <104 105 106>;
+			status = "disabled";
+		};
+
+		gpio: pinmux@E100B10 {
+			compatible = "lantiq,pinctrl-xway";
+			#gpio-cells = <2>;
+			gpio-controller;
+			reg = <0xE100B10 0xA0>;
+		};
+
+		asc1: serial@E100C00 {
 			compatible = "lantiq,asc";
 			reg = <0xE100C00 0x400>;
 			interrupt-parent = <&icu0>;
 			interrupts = <112 113 114>;
 		};
 
+		ifxhcd@E101000 {
+			compatible = "lantiq,ifxhcd-danube";
+			reg = <0xE101000 0x1000
+				0xE120000 0x3f000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <62>;
+			status = "disabled";
+		};
+
+		deu@E103100 {
+			compatible = "lantiq,deu-danube";
+			reg = <0xE103100 0xf00>;
+		};
+
 		dma0: dma@E104100 {
 			compatible = "lantiq,dma-xway";
 			reg = <0xE104100 0x800>;
@@ -96,7 +156,28 @@
 			reg = <0xE105300 0x100>;
 		};
 
+		mei@E116000 {
+			compatible = "lantiq,mei-xway";
+			interrupt-parent = <&icu0>;
+			interrupts = <63>;
+		};
+
+		etop@E180000 {
+			compatible = "lantiq,etop-xway";
+			reg = <0xE180000 0x40000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <73 78>;
+		};
+
+		ppe@E234000 {
+			compatible = "lantiq,ppe-danube";
+			interrupt-parent = <&icu0>;
+			interrupts = <96>;
+		};
+
 		pci0: pci@E105400 {
+			status = "disabled";
+
 			#address-cells = <3>;
 			#size-cells = <2>;
 			#interrupt-cells = <1>;
@@ -106,6 +187,14 @@
 				  0x1000000 0 0x00000000 0xAE00000 0 0x200000>;	/* io space */
 			reg = <0x7000000 0x8000		/* config space */
 				0xE105400 0x400>;	/* pci bridge */
+			lantiq,bus-clock = <33333333>;
+			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
+			interrupt-map = <0x7000 0 0 1 &icu0 30 1>;
+			req-mask = <0x1>;
 		};
 	};
+
+	adsl {
+		compatible = "lantiq,adsl-danube";
+	};
 };
diff --git a/target/linux/lantiq/image/vr9.dtsi b/target/linux/lantiq/image/vr9.dtsi
index f82faad17a..4c1923be84 100644
--- a/target/linux/lantiq/image/vr9.dtsi
+++ b/target/linux/lantiq/image/vr9.dtsi
@@ -36,16 +36,17 @@
 	sram@1F000000 {
 		#address-cells = <1>;
 		#size-cells = <1>;
-		compatible = "lantiq,sram";
+		compatible = "lantiq,sram", "simple-bus";
 		reg = <0x1F000000 0x800000>;
 		ranges = <0x0 0x1F000000 0x7FFFFF>;
 
 		eiu0: eiu@101000 {
 			#interrupt-cells = <1>;
 			interrupt-controller;
-			interrupt-parent;
 			compatible = "lantiq,eiu-xway";
 			reg = <0x101000 0x1000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <166 135 66 40 41 42>;
 		};
 
 		pmu0: pmu@102000 {
@@ -56,11 +57,15 @@
 		cgu0: cgu@103000 {
 			compatible = "lantiq,cgu-xway";
 			reg = <0x103000 0x1000>;
-			#clock-cells = <1>;
+		};
+
+		dcdc@106a00 {
+			compatible = "lantiq,dcdc-xrx200";
+			reg = <0x106a00 0x200>;
 		};
 
 		rcu0: rcu@203000 {
-			compatible = "lantiq,rcu-xway";
+			compatible = "lantiq,rcu-xrx200";
 			reg = <0x203000 0x1000>;
 			/* irq for thermal sensor */
 			interrupt-parent = <&icu0>;
@@ -99,6 +104,27 @@
 			reg = <0xE105300 0x100>;
 		};
 
+		ifxhcd@E101000 {
+			status = "disabled";
+			compatible = "lantiq,ifxhcd-xrx200";
+			reg = <0xE101000 0x1000
+				0xE120000 0x3f000>;
+			interrupt-parent = <&icu0>;
+			interrupts = <62 91>;
+		};
+
+		ppe@E234000 {
+			compatible = "lantiq,atm-xrx200";
+			interrupt-parent = <&icu0>;
+			interrupts = <96>;
+		};
+
+		pcie@d900000 {
+			interrupt-parent = <&icu0>;
+			interrupts = <161 144>;
+			compatible = "lantiq,pcie-xrx200";
+		};
+
 		pci0: pci@E105400 {
 			#address-cells = <3>;
 			#size-cells = <2>;
-- 
2.30.2