aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/files/arch/mips
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/lantiq/files/arch/mips')
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ACMP252.dts114
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ALL0333CJ.dts116
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4510PW.dts230
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dts8
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dtsi206
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01A.dts12
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4519PW.dts203
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4520PW.dts228
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV4525PW.dts162
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV452CQW.dts246
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV7506PW11.dts164
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV7510PW22.dts209
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV7518PW.dts240
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV7519PW.dts229
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV7519RW22.dts254
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV7525PW.dts152
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW.dts246
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW22.dts268
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ARV8539PW22.dts192
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ASL56026.dts171
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV2B.dts263
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV3A.dts216
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV5A.dts300
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/DGN1000B.dts174
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dts8
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dtsi214
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/DGN3500B.dts8
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/DM200.dts217
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY50712.dts81
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY50810.dts87
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY80920.dtsi313
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NAND.dts65
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NOR.dts39
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY88388.dts93
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY88444.dts72
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98000-base.dtsi110
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NAND.dts40
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NOR.dts38
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98000SFLASH.dts16
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98020.dts91
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98020V18.dts68
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98021.dts81
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE.dts76
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE1588.dts76
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FALCON-MDU.dts53
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FALCON-SFP.dts76
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-HYNIX.dts38
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-MICRON.dts36
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2.dtsi306
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7312.dts182
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7320.dts172
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7360SL.dts82
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7362SL.dts135
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ736X.dtsi205
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7412.dts230
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/GIGASX76X.dts130
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/H201L.dts175
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/P2601HNFX.dts196
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF1.dts70
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF3.dts64
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUFX.dtsi298
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/TDW8970.dts8
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/TDW8980.dts33
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/TDW89X0.dtsi299
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VG3503J.dts165
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22.dtsi269
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22BRN.dts65
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22NOR.dts31
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VGV7519.dtsi314
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VGV7519BRN.dts70
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VGV7519NOR.dts29
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VR200.dts94
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VR200.dtsi219
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/VR200v.dts101
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/WBMR.dts200
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/WBMR300.dts330
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/amazonse.dtsi204
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/ar9.dtsi268
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/danube.dtsi252
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/falcon-sflash-16M.dtsi37
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/falcon.dtsi392
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/vr9.dtsi341
82 files changed, 12565 insertions, 0 deletions
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ACMP252.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ACMP252.dts
new file mode 100644
index 0000000000..5a2d867196
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ACMP252.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+/ {
+ compatible = "audiocodes,mp-252", "lantiq,xway", "lantiq,danube";
+ model = "AudioCodes MediaPack MP-252";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ 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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "uboot_env";
+ reg = <0x20000 0x20000>;
+ };
+
+ partition@40000 {
+ label = "boardconfig";
+ reg = <0x40000 0x60000>;
+ read-only;
+ };
+
+ partition@a0000 {
+ label = "firmware";
+ reg = <0xa0000 0xf20000>;
+ };
+
+ partition@fc0000 {
+ label = "sysconfig";
+ reg = <0xfc0000 0x40000>;
+ };
+
+ partition@0x1000000 {
+ label = "rootfs_data";
+ reg = <0x1000000 0x1000000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ALL0333CJ.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ALL0333CJ.dts
new file mode 100644
index 0000000000..df62ac2d92
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ALL0333CJ.dts
@@ -0,0 +1,116 @@
+/dts-v1/;
+
+#include "amazonse.dtsi"
+
+/ {
+ compatible = "allnet,all0333cj", "lantiq,xway", "lantiq,ase";
+ model = "Allnet ALL0333CJ DSL Modem";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &online_green;
+ };
+ };
+
+ memory@0 {
+ reg = <0x0 0x1000000>;
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ /* power led: red=off, green=on */
+ power: power {
+ label = "all0333cj:green:power";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ lan: lan {
+ label = "all0333cj:green:lan";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+
+ dsl: dsl {
+ label = "all0333cj:green:dsl";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+
+ online_green: online {
+ label = "all0333cj:green:online";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ online_red {
+ label = "all0333cj:red:online";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ asc {
+ lantiq,groups = "asc";
+ lantiq,function = "asc";
+ };
+ keys_in {
+ lantiq,pins = "io0",/* "io25", */"io29";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x400000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "firmware";
+ reg = <0x10000 0x3ef200>;
+ };
+
+ partition@3ff200 {
+ label = "uboot_env";
+ reg = <0x3ff200 0xc00>;
+ read-only;
+ };
+
+ partition@3ffe00 {
+ label = "dummy_bits";
+ reg = <0x3ffe00 0x200>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4510PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4510PW.dts
new file mode 100644
index 0000000000..6598a60f58
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4510PW.dts
@@ -0,0 +1,230 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv4510pw", "lantiq,xway", "lantiq,danube";
+ model = "Wippies, Elisa";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power2;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &adsl;
+ led-internet = &internet;
+ led-usb = &led_usb;
+ led-usb2 = &led_usb2;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "power";
+ gpios = <&gpios 21 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ power2: power2 {
+ label = "power2";
+ gpios = <&gpios 20 GPIO_ACTIVE_HIGH>;
+ };
+ lan1 {
+ label = "lan1";
+ gpios = <&gpios 19 GPIO_ACTIVE_HIGH>;
+ };
+ lan2 {
+ label = "lan2";
+ gpios = <&gpios 18 GPIO_ACTIVE_HIGH>;
+ };
+ lan3 {
+ label = "lan3";
+ gpios = <&gpios 17 GPIO_ACTIVE_HIGH>;
+ };
+ lan4 {
+ label = "lan4";
+ gpios = <&gpios 16 GPIO_ACTIVE_HIGH>;
+ };
+ wifi: wifi {
+ label = "wifi";
+ gpios = <&gpios 15 GPIO_ACTIVE_HIGH>;
+ };
+ adsl: adsl {
+ label = "adsl";
+ gpios = <&gpios 14 GPIO_ACTIVE_HIGH>;
+ };
+ internet: internet {
+ label = "internet";
+ gpios = <&gpios 13 GPIO_ACTIVE_HIGH>;
+ };
+ internet2 {
+ label = "internet2";
+ gpios = <&gpios 12 GPIO_ACTIVE_HIGH>;
+ };
+ voip {
+ label = "voip";
+ gpios = <&gpios 11 GPIO_ACTIVE_HIGH>;
+ };
+ phone {
+ label = "phone";
+ gpios = <&gpios 10 GPIO_ACTIVE_HIGH>;
+ };
+ phone2 {
+ label = "phone2";
+ gpios = <&gpios 9 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb: usb {
+ label = "usb";
+ gpios = <&gpios 8 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb2: usb2 {
+ label = "usb2";
+ gpios = <&gpios 7 GPIO_ACTIVE_HIGH>;
+ };
+ usb3 {
+ label = "usb3";
+ gpios = <&gpios 6 GPIO_ACTIVE_HIGH>;
+ };
+ unlabeled {
+ label = "unlabeled";
+ gpios = <&gpios 5 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ ebu {
+ lantiq,groups = "ebu a23";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ stp {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ exin {
+ lantiq,groups = "exin1", "exin2";
+ lantiq,function = "exin";
+ lantiq,output = <0>;
+ };
+ pci_in {
+ lantiq,groups = "req1", "req2";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ };
+ pci_out {
+ lantiq,groups = "gnt1", "gnt2";
+ lantiq,function = "pci";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ buttons {
+ lantiq,pins = "io3", "io14";
+ lantiq,pull = <2>;
+ lantiq,output = <0>;
+ };
+ };
+};
+
+&gpios {
+ status = "okay";
+ lantiq,groups = <0x7>;
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ lantiq,noxip;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0xfa0000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ interrupt-map = <
+ 0x6000 0 0 1 &icu0 135
+ 0x7800 0 0 1 &icu0 66
+ 0x7800 0 0 2 &icu0 66
+ 0x7800 0 0 3 &icu0 66
+ >;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ req-mask = <0x7>;
+};
+
+&vmmc {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dts
new file mode 100644
index 0000000000..34f868f484
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dts
@@ -0,0 +1,8 @@
+/dts-v1/;
+
+#include "ARV4518PWR01.dtsi"
+
+/ {
+ compatible = "arcadyan,arv4518pwr01", "lantiq,xway", "lantiq,danube";
+ model = "SMC7908A-ISP";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dtsi
new file mode 100644
index 0000000000..f29c416c06
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01.dtsi
@@ -0,0 +1,206 @@
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &online;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ ath5k_eep {
+ compatible = "ath5k,eeprom";
+ ath,eep-flash = <&boardconfig 0x400>;
+ ath,mac-offset = <0x16>;
+ ath,mac-increment = <1>;
+ ath,eep-swap;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "power";
+ gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "online";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "wifi";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ dsl2 {
+ label = "dsl2";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "voice";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "fxs1";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "fxs2";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "fxo";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+};
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x0>;
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@400000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ req-mask = <0xf>;
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01A.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01A.dts
new file mode 100644
index 0000000000..9617398bbc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4518PWR01A.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+
+#include "ARV4518PWR01.dtsi"
+
+/ {
+ compatible = "arcadyan,arv4518pwr01a", "lantiq,xway", "lantiq,danube";
+ model = "SMC7908A-ISP, Airties WAV-221";
+};
+
+&pci0 {
+ lantiq,external-clock;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4519PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4519PW.dts
new file mode 100644
index 0000000000..e307b381a9
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4519PW.dts
@@ -0,0 +1,203 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv4519pw", "lantiq,xway", "lantiq,danube";
+ model = "Vodafone Netfaster IAD 2, Pirelli P.RG A4201G";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &internet_green;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "arv4519pw:green:power";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "arv4519pw:red:power";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv4519pw:green:wlan";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "arv4519pw:green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: online {
+ label = "arv4519pw:green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "arv4519pw:red:internet";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "arv4519pw:green:usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ voip {
+ label = "arv4519pw:green:voip";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "arv4519pw:green:phone1";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "arv4519pw:green:phone2";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "arv4519pw:green:line";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "arv4519pw:green:wps";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "arv4519pw:orange:wps";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wps3 {
+ label = "arv4519pw:red:wps";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ ebu {
+ lantiq,groups = "ebu cs1";
+ lantiq,function = "ebu";
+ };
+ };
+};
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x400>;
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@3f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ req-mask = <0xf>;
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4520PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4520PW.dts
new file mode 100644
index 0000000000..cd76bf5799
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4520PW.dts
@@ -0,0 +1,228 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv4520pw", "lantiq,xway", "lantiq,danube";
+ model = "Easybox 800, WAV-281";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_blue;
+ led-failsafe = &power_red;
+ led-running = &power_blue;
+ led-upgrade = &power_blue;
+
+ led-dsl = &dsl;
+ led-internet = &internet_blue;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "wps";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_blue: power {
+ label = "arv4520pw:blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "arv4520pw:blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet_blue: internet {
+ label = "arv4520pw:blue:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power2 {
+ label = "arv4520pw:red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "arv4520pw:yellow:wps";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "arv4520pw:red:wps";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ /*
+ wps green is missing
+ */
+ fxs1 {
+ label = "arv4520pw:blue:telefon1";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "arv4520pw:blue:telefon2";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ isdn {
+ label = "arv4520pw:blue:isdn";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "arv4520pw:blue:line";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "arv4520pw:blue:sprache";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "arv4520pw:blue:usb";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv4520pw:blue:wifi";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "arv4520pw:red:internet";
+ gpios = <&gpiomm 9 GPIO_ACTIVE_LOW>;
+ };
+ /*
+ info is missing
+ */
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 28 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+};
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x400>;
+};
+
+&gsw {
+ /* gpiomm 10 - switch */
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x30000 0x3c0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH
+ &gpiomm 7 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV4525PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4525PW.dts
new file mode 100644
index 0000000000..b3904d37d5
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV4525PW.dts
@@ -0,0 +1,162 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv4525pw", "lantiq,xway", "lantiq,danube";
+ model = "Speedport W501V Typ A";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ /* we dont have a power led, lets use the online led */
+ led-boot = &online;
+ led-failsafe = &online;
+
+ led-dsl = &dsl;
+ led-internet = &online;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ ath5k_eep {
+ compatible = "ath5k,eeprom";
+ ath,eep-flash = <&boardconfig 0x400>;
+ ath,mac-offset = <0x0>;
+ ath,eep-swap;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ fxo {
+ label = "arv4525pw:green:festnetz";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ fxs {
+ label = "arv4525pw:green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "arv4525pw:green:t-dsl";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv4525pw:green:wlan";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "arv4525pw:green:online";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+};
+
+/* #define ARV4525PW_PHYRESET 13 */
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@400000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+/* #define ARV4525PW_RELAY 31 */
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV452CQW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV452CQW.dts
new file mode 100644
index 0000000000..203a30df5c
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV452CQW.dts
@@ -0,0 +1,246 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv452cqw", "lantiq,xway", "lantiq,danube";
+ model = "Arcor 801";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_blue;
+ led-failsafe = &power_red;
+ led-running = &power_blue;
+ led-upgrade = &power_blue;
+
+ led-dsl = &dsl_blue;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ ath5k_eep {
+ compatible = "ath5k,eeprom";
+ ath,eep-flash = <&boardconfig 0x400>;
+ ath,mac-offset = <0x0>;
+ ath,eep-swap;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power_blue: power0 {
+ label = "arv452cqw:blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl_blue: dsl {
+ label = "arv452cqw:blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ isdn {
+ label = "arv452cqw:blue:isdn";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power1 {
+ label = "arv452cqw:red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "arv452cqw:blue:wps";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wps1 {
+ label = "arv452cqw:yellow:wps";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "arv452cqw:blue:telefon1";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "arv452cqw:blue:telefon2";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "arv452cqw:red:wps";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "arv452cqw:blue:line";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "arv452cqw:blue:sprache";
+ gpios = <&gpiomm 4 1>;
+ };
+ led_usb: usb {
+ label = "arv452cqw:blue:usb";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv452cqw:blue:wlan";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ /*
+ internet blue and internet red are missing
+ dsl2 and dsl3 are not referenced in manual
+ */
+ dsl2 {
+ label = "arv452cqw:yellow:dsl";
+ gpios = <&gpiomm 8 GPIO_ACTIVE_LOW>;
+ };
+ dsl3 {
+ label = "arv452cqw:red:dsl";
+ gpios = <&gpiomm 9 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 28 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+};
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x77f>;
+};
+
+/*
+#define ARV452CPW_SWITCH_RESET 110
+*/
+&gsw {
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x400000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@3f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH
+ &gpiomm 7 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV7506PW11.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7506PW11.dts
new file mode 100644
index 0000000000..8fe22e9a44
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7506PW11.dts
@@ -0,0 +1,164 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv7506pw11", "lantiq,xway", "lantiq,danube";
+ model = "Alice/O2 IAD 4421";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power_red;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &internet;
+ led-wifi = &wlan;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ wlan: wlan {
+ label = "arv7506pw11:green:wlan";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ power: power {
+ label = "arv7506pw11:green:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "arv7506pw11:green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet: internet {
+ label = "arv7506pw11:green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power_red {
+ label = "arv7506pw11:red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ internet_red {
+ label = "arv7506pw11:red:internet";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ info {
+ label = "arv7506pw11:green:info";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ telefon {
+ label = "arv7506pw11:green:telefon";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ info_red {
+ label = "arv7506pw11:red:info";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ pci {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+/* GPIO 19: switch reset */
+&gsw {
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7a0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "board_config";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@1814,3592 {
+ compatible = "pci1814,3592";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ mtd-mac-address = <&boardconfig 0x16>;
+ mtd-mac-address-increment = <1>;
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV7510PW22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7510PW22.dts
new file mode 100644
index 0000000000..92d01b4dcc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7510PW22.dts
@@ -0,0 +1,209 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv7510pw22", "lantiq,xway", "lantiq,danube";
+ model = "Astoria Networks ARV7510PW22";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &internet;
+ led-usb = &umts;
+ led-wifi = &wlan;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "power";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ internet: internet {
+ label = "internet";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ wlan: wlan {
+ label = "wlan";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ umts: 3g {
+ label = "3g";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+ message {
+ label = "message";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ exin {
+ lantiq,groups = "exin1";
+ lantiq,function = "exin";
+ lantiq,pull = <2>;
+ lantiq,output = <0>;
+ };
+ 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>;
+ };
+ pins_out {
+ lantiq,pins = "io2", "io4", "io8", "io9", "io10", "io15", "io20";
+ lantiq,output = <1>;
+ };
+ pins_in {
+ lantiq,pins = "io11", "io12", "io28";
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ lantiq,output = <0>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gsw {
+ /* Switch reset 19 */
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0xf80000>;
+ };
+
+ boardconfig: partition@fe0000 {
+ label = "board_config";
+ reg = <0xfe0000 0x20000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ 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 GPIO_ACTIVE_HIGH>;
+ req-mask = <0x3>;
+
+ wifi@1814,3592 {
+ compatible = "pci1814,3592";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV7518PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7518PW.dts
new file mode 100644
index 0000000000..72f3a686b5
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7518PW.dts
@@ -0,0 +1,240 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv7518pw", "lantiq,xway", "lantiq,danube";
+ model = "Astoria Networks ARV7518PW";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &online_green;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power_green: power {
+ label = "arv7518pw:green:power";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "arv7518pw:green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ online_green: online {
+ label = "arv7518pw:green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv7518pw:green:wlan";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power2 {
+ label = "arv7518pw:red:power";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "arv7518pw:red:internet";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "arv7518pw:green:usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "arv7518pw:green:voip";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "arv7518pw:green:phone1";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "arv7518pw:green:phone2";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ unlabeled {
+ label = "arv7518pw:amber:unlabeled";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "arv7518pw:amber:wps";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "arv7518pw:green:wps";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wps3 {
+ label = "arv7518pw:red:wps";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ 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,pull = <0>;
+ lantiq,output = <1>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ leds {
+ lantiq,pins = "io2", "io4", "io5", "io6", "io7", "io8", "io19";
+ lantiq,output = <1>;
+ };
+ keys {
+ lantiq,pins = "io28", "io30";
+ lantiq,output = <0>;
+ lantiq,pull = <2>;
+ lantiq,open-drain = <1>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x0>;
+};
+
+/*
+#define SWITCH_RESET 13
+*/
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x7d0000>;
+ };
+
+ boardconfig: partition@400000 {
+ label = "boardconfig";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ lantiq,external-clock;
+ req-mask = <0xf>;
+
+ wifi@168c,0029 {
+ compatible = "pci168c,0029";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ mtd-mac-address = <&boardconfig 0x16>;
+ mtd-mac-address-increment = <1>;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV7519PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7519PW.dts
new file mode 100644
index 0000000000..bcb3b502af
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7519PW.dts
@@ -0,0 +1,229 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv7519pw", "lantiq,xway", "lantiq,danube";
+ model = "Astoria Networks ARV7519PW";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power2;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &online;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "power";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power2: power2 {
+ label = "power2";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "online";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "online2";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "wifi";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ wifi2 {
+ label = "wifi2";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ wifi3 {
+ label = "wifi3";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "voice";
+ gpios = <&gpio 31 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "wps2";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wps3 {
+ label = "wps3";
+ gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ lan {
+ label = "lan";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+ tv {
+ label = "tv";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ upgrade {
+ label = "upgrade";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ /* is there another way to "reserve" the GPIO? */
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ switch {
+ gpio-export,name = "switch";
+ gpio-export,output = <1>;
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gpio {
+ 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,pull = <0>;
+ lantiq,output = <1>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ switch_rst {
+ lantiq,pins = "io19";
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x20000>;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0xf80000>;
+ };
+
+ boardconfig: partition@fe0000 {
+ label = "board_config";
+ reg = <0xfe0000 0x20000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ req-mask = <0xf>;
+
+ wifi@0,0 {
+ compatible = "pci0,0";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+/* warning: passive port only works with active devices */
+&usb {
+ status = "okay";
+};
+
+&vmmc {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV7519RW22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7519RW22.dts
new file mode 100644
index 0000000000..baa9adcc9c
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7519RW22.dts
@@ -0,0 +1,254 @@
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "arcadyan,arv7519rw22", "lantiq,xway", "lantiq,vr9";
+ model = "Orange Livebox 2.1";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_green;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &internet_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x8000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 33 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ lan_green {
+ label = "arv7519rw22:green:lan";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ internet_red {
+ label = "arv7519rw22:red:internet";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power_green {
+ label = "arv7519rw22:green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ alarm_blue {
+ label = "arv7519rw22:blue:alarm";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+ internet_orange {
+ label = "arv7519rw22:orange:internet";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: internet_green {
+ label = "arv7519rw22:green:internet";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ };
+ voice_green {
+ label = "arv7519rw22:green:voice";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 32 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&boardconfig 0x16>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "mii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "mii";
+ phy-handle = <&phy14>;
+ };
+ ethernet@3 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "mii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <3>;
+ phy-mode = "mii";
+ phy-handle = <&phy12>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy12: ethernet-phy@12 {
+ reg = <0x12>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy14: ethernet-phy@14 {
+ reg = <0x14>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ pcie-rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x60000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "uboot-env";
+ reg = <0x60000 0x20000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "firmware";
+ reg = <0x80000 0x1f00000>;
+ };
+
+ boardconfig: partition@1f80000 {
+ label = "boardconfig";
+ reg = <0x1f80000 0x80000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pcie0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV7525PW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7525PW.dts
new file mode 100644
index 0000000000..a395d4ff45
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV7525PW.dts
@@ -0,0 +1,152 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv7525pw", "lantiq,xway", "lantiq,danube";
+ model = "Speedport W303V Typ A";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &power_green;
+ led-internet = &online;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power_green: power {
+ label = "arv7525pw:green:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power1 {
+ label = "arv7525pw:red:power";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "arv7525pw:green:online";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "arv7525pw:green:telefonie";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ voice2 {
+ label = "arv7525pw:red:telefonie";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv7525pw:green:wlan";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ 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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@400000 {
+ label = "board_config";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ interrupt-map = <0x7000 0 0 1 &icu0 135 1>;
+
+ wifi@0,0 {
+ compatible = "pci0,0";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ };
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW.dts
new file mode 100644
index 0000000000..5f877723f6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW.dts
@@ -0,0 +1,246 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv752dpw", "lantiq,xway", "lantiq,danube";
+ model = "Arcor 802";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_red;
+ led-failsafe = &power_blue;
+ led-running = &power_red;
+ led-upgrade = &power_red;
+
+ led-dsl = &internet_red;
+ led-usb = &umts;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+ dsl {
+ label = "dsl";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power_blue: power1 {
+ label = "arv752dpw:blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ internet_red: internet {
+ label = "arv752dpw:red:internet";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ message {
+ label = "arv752dpw:red:message";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power {
+ label = "arv752dpw:red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice1 {
+ label = "arv752dpw:red:voice";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ umts: umts {
+ label = "arv752dpw:red:umts";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv752dpw:red:wifi";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "arv752dpw:green:tae-n";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "arv752dpw:green:tae-u";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "arv752dpw:green:isdn";
+ gpios = <&gpiomm 7 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "arv752dpw:blue:internet";
+ gpios = <&gpiomm 8 GPIO_ACTIVE_LOW>;
+ };
+ voice2 {
+ label = "arv752dpw:blue:voice";
+ gpios = <&gpiomm 9 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ 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_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>;
+ };
+ 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>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpiomm 0 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x3>;
+};
+
+&gsw {
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x7d0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "board_config";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ interrupt-map = <0x7000 0 0 1 &icu0 135>;
+ req-mask = <0x3>;
+
+ wifi@1814,0601 {
+ compatible = "pci1814,0601";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW22.dts
new file mode 100644
index 0000000000..1d4d662ab3
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV752DPW22.dts
@@ -0,0 +1,268 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv752dpw22", "lantiq,xway", "lantiq,danube";
+ model = "Arcor 803";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_red;
+ led-failsafe = &power_blue;
+ led-running = &power_red;
+ led-upgrade = &power_red;
+
+ led-dsl = &internet_red;
+ led-usb = &umts;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+ dsl {
+ label = "dsl";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power_blue: power1 {
+ label = "arv752dpw22:blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ internet_red: internet {
+ label = "arv752dpw22:red:internet";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ message {
+ label = "arv752dpw22:red:message";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power {
+ label = "arv752dpw22:red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice1 {
+ label = "arv752dpw22:red:voice";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ umts: umts {
+ label = "arv752dpw22:red:umts";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "arv752dpw22:red:wifi";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "arv752dpw22:green:tae-n";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "arv752dpw22:green:tae-u";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "arv752dpw22:green:isdn";
+ gpios = <&gpiomm 7 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "arv752dpw22:blue:internet";
+ gpios = <&gpiomm 8 GPIO_ACTIVE_LOW>;
+ };
+ voice2 {
+ label = "arv752dpw22:blue:voice";
+ gpios = <&gpiomm 9 GPIO_ACTIVE_LOW>;
+ };
+ eth1 {
+ label = "arv752dpw22:green:lan1";
+ gpios = <&gpiomm 11 GPIO_ACTIVE_LOW>;
+ };
+ eth2 {
+ label = "arv752dpw22:green:lan2";
+ gpios = <&gpiomm 12 GPIO_ACTIVE_LOW>;
+ };
+ eth3 {
+ label = "arv752dpw22:green:lan3";
+ gpios = <&gpiomm 13 GPIO_ACTIVE_LOW>;
+ };
+ eth4 {
+ label = "arv752dpw22:green:lan4";
+ gpios = <&gpiomm 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpiomm 0 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ 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_in {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,pull = <2>;
+ lantiq,output = <0>;
+ };
+ pci_out {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,open-drain = <1>;
+ lantiq,output = <1>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <1>;
+ lantiq,output = <1>;
+ };
+ leds {
+ lantiq,pins = "io3", "io5", "io6", "io8";
+ lantiq,open-drain = <1>;
+ lantiq,output = <1>;
+ };
+ buttons {
+ lantiq,pins = "io11", "io12", "io13", "io28";
+ lantiq,pull = <2>;
+ lantiq,output = <0>;
+ };
+ };
+};
+
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <3>;
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x30000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "uboot_env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x40000 0x7b0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "board_config";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ 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 GPIO_ACTIVE_HIGH>;
+ req-mask = <0x3>;
+
+ wifi@1814,3592 {
+ compatible = "pci1814,3592";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ mtd-mac-address = <&boardconfig 0x16>;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ARV8539PW22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ARV8539PW22.dts
new file mode 100644
index 0000000000..1e55d81590
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ARV8539PW22.dts
@@ -0,0 +1,192 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "arcadyan,arv8539pw22", "lantiq,xway", "lantiq,danube";
+ model = "Speedport W 504V Typ A";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl_green;
+ led-internet = &online_green;
+ led-wifi = &wireless_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wlan {
+ label = "wlan";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ /* key DECT is missing */
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green: power-green {
+ label = "arv8539pw22:green:power";
+ gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power-red {
+ label = "arv8539pw22:red:power";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ dsl_green: dsl-green {
+ label = "arv8539pw22:green:dsl";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+
+ online_green: online-green {
+ label = "arv8539pw22:green:online";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ wireless_green: wireless-green {
+ label = "arv8539pw22:green:wlan";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ /*
+ telefonie green is missing
+ */
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&art 0x16>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x30000>; /* 192 KiB */
+ read-only;
+ };
+
+ partition@30000 {
+ label = "uboot";
+ reg = <0x30000 0x10000>; /* 64 KiB */
+ read-only;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x7B0000>; /* 7872 KiB */
+ };
+
+ art: partition@7F0000 {
+ label = "art";
+ reg = <0x7F0000 0x10000>; /* 64 KiB*/
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@168c,0029 {
+ compatible = "pci168c,0029";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ mtd-mac-address = <&art 0x16>;
+ mtd-mac-address-increment = <1>;
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/ASL56026.dts b/target/linux/lantiq/files/arch/mips/boot/dts/ASL56026.dts
new file mode 100644
index 0000000000..90bfcabcb5
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ASL56026.dts
@@ -0,0 +1,171 @@
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "alphanetworks,asl56026", "lantiq,xway", "lantiq,vr9";
+ model = "BT OpenReach VDSL Modem";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl: dsl {
+ label = "asl56026:green:dsl";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ /* power-* is a bicolour led */
+ power_green: power_green {
+ label = "asl56026:green:power";
+ gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ power_red: power_red {
+ label = "asl56026:red:power";
+ gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ power_led_blink {
+ gpio-export,name = "power_led_blink";
+ gpio-export,output = <0>;
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ lantiq,switch;
+
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "mii";
+ phy-handle = <&phy11>;
+ };
+
+ ethernet@3 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <3>;
+ phy-mode = "mii";
+ phy-handle = <&phy14>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+
+ phy14: ethernet-phy@14 {
+ reg = <0x14>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x0800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "uboot_env";
+ reg = <0x30000 0x10000>;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x750000>;
+ };
+
+ partition@790000 {
+ label = "ddrconfig";
+ reg = <0x790000 0x70000>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV2B.dts b/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV2B.dts
new file mode 100644
index 0000000000..e126065ea6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV2B.dts
@@ -0,0 +1,263 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "bt,homehub-v2b", "lantiq,xway", "lantiq,danube";
+ model = "BT Home Hub 2B"; /* SoC: Lantiq Danube-S PSB 50712 @ 333MHz V1.3/1.5 */
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_orange;
+ led-failsafe = &power_red;
+ led-running = &power_blue;
+ led-upgrade = &power_blue;
+
+ led-dsl = &broadband_blue;
+ led-wifi = &wireless_blue;
+ };
+
+ memory@0 { /* RAM: Samsung K4H511638F-LC 64MB */
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ findhandset {
+ label = "findhandset";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ upgrading-orange {
+ label = "bthomehubv2b:orange:upgrading";
+ gpios = <&gpios 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ phone-orange {
+ label = "bthomehubv2b:orange:phone";
+ gpios = <&gpios 6 GPIO_ACTIVE_HIGH>;
+ };
+ phone-blue {
+ label = "bthomehubv2b:blue:phone";
+ gpios = <&gpios 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ wireless-orange {
+ label = "bthomehubv2b:orange:wireless";
+ gpios = <&gpios 8 GPIO_ACTIVE_HIGH>;
+ };
+ wireless_blue: wireless-blue {
+ label = "bthomehubv2b:blue:wireless";
+ gpios = <&gpios 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ broadband-red {
+ label = "bthomehubv2b:red:broadband";
+ gpios = <&gpios 10 GPIO_ACTIVE_HIGH>;
+ };
+ broadband-orange {
+ label = "bthomehubv2b:orange:broadband";
+ gpios = <&gpios 11 GPIO_ACTIVE_HIGH>;
+ };
+ broadband_blue: broadband-blue {
+ label = "bthomehubv2b:blue:broadband";
+ gpios = <&gpios 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ power_red: power-red {
+ label = "bthomehubv2b:red:power";
+ gpios = <&gpios 13 GPIO_ACTIVE_HIGH>;
+ };
+ power_orange: power-orange {
+ label = "bthomehubv2b:orange:power";
+ gpios = <&gpios 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ power_blue: power-blue {
+ label = "bthomehubv2b:blue:power";
+ gpios = <&gpios 15 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ nand_out {
+ lantiq,groups = "nand cle", "nand ale";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ nand_cs1 {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ exin {
+ lantiq,groups = "exin1";
+ lantiq,function = "exin";
+ };
+ pci_in {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ pci_out {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ };
+
+ btn_in {
+ lantiq,pins = "io2", "io15", "io22";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+};
+
+&gpios {
+ status = "okay";
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 { /* NOR Flash: Spansion S29AL004D 512KB */
+ compatible = "lantiq,nor"; /* "AMD AM29LV400BB" compatible on 3.3.8 */
+ lantiq,cs = <0>;
+ bank-width = <2>;
+ reg = <0 0x0 0x80000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>; /* 256KB */
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x10000>; /* 64KB */
+ };
+
+ partition@50000 {
+ label = "rg_conf_1";
+ reg = <0x50000 0x10000>;
+ };
+
+ partition@60000 {
+ label = "rg_conf_2";
+ reg = <0x60000 0x10000>;
+ };
+
+ partition@70000 {
+ label = "rg_conf_factory";
+ reg = <0x70000 0x10000>;
+ };
+ };
+ };
+
+ nand@1 { /* NAND Flash: Samsung K9F5608U0D-JIB0 32MB */
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ req-mask = <0x1>; /* PCI request lines to mask during NAND access */
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ ath9k_cal: partition@0 {
+ label = "art"; /* Atheros 9160 wifi b/g/n radio EEPROM */
+ reg = <0x00000 0x4000>;
+ read-only;
+ };
+
+ partition@4000 {
+ label = "kernel";
+ reg = <0x4000 0x200000>;
+ };
+
+ partition@164000 {
+ label = "ubi";
+ reg = <0x204000 0x1DFC000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@168c,0027 {
+ compatible = "pci168c,0027";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 31 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV3A.dts b/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV3A.dts
new file mode 100644
index 0000000000..b854ac0a99
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV3A.dts
@@ -0,0 +1,216 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "bt,homehub-v3a", "lantiq,xway", "lantiq,ar9";
+ model = "BT Home Hub 3A"; /* SoC: Lantiq ar9 @ 333MHz */
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_orange;
+ led-failsafe = &power_red;
+ led-running = &power_blue;
+ led-upgrade = &power_blue;
+
+ led-dsl = &broadband_blue;
+ led-wifi = &wireless_blue;
+ };
+
+ memory@0 { /* RAM: Samsung K4H511638F-LC 64MB */
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 54 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio 52 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 53 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wireless-red {
+ label = "bthomehubv3a:red:wireless";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ wireless-orange {
+ label = "bthomehubv3a:orange:wireless";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wireless_blue: wireless-blue {
+ label = "bthomehubv3a:blue:wireless";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+
+ broadband-red {
+ label = "bthomehubv3a:red:broadband";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+ broadband-orange {
+ label = "bthomehubv3a:orange:broadband";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+ broadband_blue: broadband-blue {
+ label = "bthomehubv3a:blue:broadband";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+
+ power_red: power-red {
+ label = "bthomehubv3a:red:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ power_orange: power-orange {
+ label = "bthomehubv3a:orange:power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_blue: power-blue {
+ label = "bthomehubv3a:blue:power";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ nand_out {
+ lantiq,groups = "nand cle", "nand ale";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ nand_cs1 {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+
+ pci_in {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ pci_out {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rgmii";
+};
+
+&localbus {
+ nand@1 { /* NAND Flash: Samsung K9F5608U0D-JIB0 32MB */
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ req-mask = <0x1>; /* PCI request lines to mask during NAND access */
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "preboot";
+ reg = <0x00000 0x8000>;
+ read-only;
+ };
+ partition@8000 {
+ label = "u-boot";
+ reg = <0x8000 0x05c000>;
+ read-only;
+ };
+ partition@64000 {
+ label = "uboot_env";
+ reg = <0x64000 0x004000>;
+ };
+ ath9k_cal: partition@68000 {
+ label = "art-copy";
+ reg = <0x68000 0x004000>;
+ };
+ partition@6c000 {
+ label = "kernel";
+ reg = <0x6c000 0x200000>;
+ };
+ partition@26c000 {
+ label = "ubi";
+ reg = <0x26c000 0x1d94000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ ath9k@7000 {
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV5A.dts b/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV5A.dts
new file mode 100644
index 0000000000..166eec3419
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/BTHOMEHUBV5A.dts
@@ -0,0 +1,300 @@
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "bt,homehub-v5a", "lantiq,xway", "lantiq,vr9";
+ model = "BT Home Hub 5A";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_blue;
+ led-upgrade = &power_blue;
+
+ led-dsl = &broadband_blue;
+ led-wifi = &wireless_blue;
+ };
+
+ memory@0 {
+ reg = <0x0 0x8000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ restart {
+ label = "restart";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER2>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ /* broadband-* is a single RGB led */
+ broadband-red {
+ label = "bthomehubv5a:red:broadband";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+ broadband-green {
+ label = "bthomehubv5a:green:broadband";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ broadband_blue: broadband-blue {
+ label = "bthomehubv5a:blue:broadband";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ /* wireless-* is a single RGB led */
+ wireless-red {
+ label = "bthomehubv5a:red:wireless";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ wireless-green {
+ label = "bthomehubv5a:green:wireless";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ wireless_blue: wireless-blue {
+ label = "bthomehubv5a:blue:wireless";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+
+ /* power-* is a single RGB led */
+ power_red: power-red {
+ label = "bthomehubv5a:red:power";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power-green {
+ label = "bthomehubv5a:green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_blue: power-blue {
+ label = "bthomehubv5a:blue:power";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ dimmed {
+ label = "dimmed";
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain;
+ };
+ pcie_rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ lantiq,open-drain;
+ };
+ usb_vbus {
+ lantiq,pins = "io33";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ nand_out {
+ lantiq,groups = "nand cle", "nand ale";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ nand_cs1 {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+};
+
+&localbus {
+ nand@1 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0x1 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ nand-on-flash-bbt;
+ nand-ecc-strength = <3>;
+ nand-ecc-step-size = <256>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0xa0000>;
+ read-only;
+ };
+ partition@a0000 {
+ label = "uboot-env";
+ reg = <0xa0000 0x20000>;
+ read-only;
+ };
+ partition@c0000 {
+ label = "unused";
+ reg = <0xc0000 0x40000>;
+ };
+ partition@100000 {
+ label = "ubi";
+ reg = <0x100000 0x7e80000>;
+ };
+ /*
+ * last 512 KiB are for the bad block table, not writable
+ */
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@168c,002d {
+ compatible = "pci168c,002d";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ qca,disable-5ghz;
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/DGN1000B.dts b/target/linux/lantiq/files/arch/mips/boot/dts/DGN1000B.dts
new file mode 100644
index 0000000000..8c61e1b743
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/DGN1000B.dts
@@ -0,0 +1,174 @@
+/dts-v1/;
+
+#include "amazonse.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "netgear,dgn1000b", "lantiq,xway", "lantiq,ase";
+ model = "Netgear DGN1000B";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &online_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x1000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ dsl: dsl {
+ label = "dgn1000b:green:dsl";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ online_green: online {
+ label = "dgn1000b:green:online";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ online2 {
+ label = "dgn1000b:red:online";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ wps {
+ label = "dgn1000b:green:wps";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ power: power {
+ label = "dgn1000b:green:power";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ /*
+ power red is missing
+ */
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ asc {
+ lantiq,groups = "asc";
+ lantiq,function = "asc";
+ };
+ keys_in {
+ lantiq,pins = "io0",/* "io25", */"io29";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <1>;
+ };
+ };
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs1";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mac-address = [ 00 11 22 33 44 55 ];
+};
+
+&spi {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@1 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <1 0>;
+ spi-max-frequency = <5000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x20000>;
+ label = "SPI (RO) U-Boot Image";
+ read-only;
+ };
+
+ 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";
+ };
+ };
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dts b/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dts
new file mode 100644
index 0000000000..98a2ebd98e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dts
@@ -0,0 +1,8 @@
+/dts-v1/;
+
+#include "DGN3500.dtsi"
+
+/ {
+ compatible = "netgear,dgn3500", "lantiq,xway", "lantiq,ar9";
+ model = "Netgear DGN3500";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dtsi
new file mode 100644
index 0000000000..b0facb4107
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500.dtsi
@@ -0,0 +1,214 @@
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ chosen {
+ bootargs = "root= console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &internet;
+ led-usb = &led_usb;
+ led-wifi = &wifi_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ rtl8366rb {
+ compatible = "realtek,rtl8366rb";
+ gpio-sda = <&gpio 35 GPIO_ACTIVE_HIGH>;
+ gpio-sck = <&gpio 37 GPIO_ACTIVE_HIGH>;
+
+ realtek,initvals = <
+ 0x0000 0x0830
+ 0x0400 0x8130
+ 0x000A 0x83ED
+ 0x0F51 0x0017
+ 0x02F5 0x0048
+ 0x02FA 0xFFDF
+ 0x02FB 0xFFE0
+ 0x0450 0x0000
+ 0x0401 0x0000
+ 0x0431 0x0960
+ >;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 54 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 53 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ internet: internet {
+ label = "dgn3500:green:internet";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "dgn3500:red:internet";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "dgn3500:green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "dgn3500:green:usb";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power {
+ label = "dgn3500:green:power";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "dgn3500:red:power";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ };
+ wifi_green: wifi {
+ label = "dgn3500:green:wireless";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ wifi2 {
+ label = "dgn3500:amber:wireless";
+ gpios = <&gpio 51 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "dgn3500:green:wps";
+ gpios = <&gpio 52 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@168c,0029 {
+ compatible = "pci168c,0029";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ };
+};
+
+&spi {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <20000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x10000>;
+ label = "uboot";
+ read-only;
+ };
+
+ partition@10000 {
+ reg = <0x10000 0x10000>;
+ label = "uboot-env";
+ read-only;
+ };
+
+ ath9k_cal: partition@20000 {
+ reg = <0x20000 0x10000>;
+ label = "calibration";
+ read-only;
+ };
+
+ partition@50000 {
+ reg = <0x50000 0xfa0000>;
+ label = "firmware";
+ };
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500B.dts b/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500B.dts
new file mode 100644
index 0000000000..d1d788cc7d
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/DGN3500B.dts
@@ -0,0 +1,8 @@
+/dts-v1/;
+
+#include "DGN3500.dtsi"
+
+/ {
+ compatible = "netgear,dgn3500b", "lantiq,xway", "lantiq,ar9";
+ model = "Netgear DGN3500B";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/DM200.dts b/target/linux/lantiq/files/arch/mips/boot/dts/DM200.dts
new file mode 100644
index 0000000000..8cf3456ee2
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/DM200.dts
@@ -0,0 +1,217 @@
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "netgear,dm200", "lantiq,xway", "lantiq,vr9";
+ model = "Netgear DM200";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_amber;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ annexa {
+ gpio-export,name = "annexa";
+ gpio-export,output = <0>;
+ gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+ };
+ annexb {
+ gpio-export,name = "annexb";
+ gpio-export,output = <0>;
+ gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_amber: power_amber {
+ label = "dm200:amber:power";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ };
+ power_green: power_green {
+ label = "dm200:green:power";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan_amber {
+ label = "dm200:amber:lan";
+ gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ };
+ lan_green {
+ label = "dm200:green:lan";
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ };
+
+ dsl_amber {
+ label = "dm200:amber:dsl";
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ };
+ dsl_green: dsl_green {
+ label = "dm200:green:dsl";
+ gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&eth0 {
+ lantiq,phys = <&gphy1>;
+
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "mii";
+ phy-handle = <&phy13>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk", "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&pcie0 {
+ status = "disabled";
+};
+
+&spi {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <10000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x20000>;
+ label = "uboot";
+ read-only;
+ };
+
+ partition@20000 {
+ reg = <0x20000 0x10000>;
+ label = "gphyfirmware";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x30000 0x7b0000>;
+ label = "firmware";
+ };
+
+ partition@7e0000 {
+ reg = <0x7e0000 0x10000>;
+ label = "sysconfig";
+ read-only;
+ };
+
+ partition@7f0000 {
+ reg = <0x7f0000 0x2000>;
+ label = "ubootconfig";
+ read-only;
+ };
+
+ partition@7f2000 {
+ reg = <0x7f2000 0x1000>;
+ label = "ART";
+ read-only;
+ };
+
+ partition@7f3000 {
+ reg = <0x7f3000 0x1000>;
+ label = "pot";
+ read-only;
+ };
+
+ partition@7f4000 {
+ reg = <0x7f4000 0xc000>;
+ label = "ret";
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY50712.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY50712.dts
new file mode 100644
index 0000000000..ec287ab40b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY50712.dts
@@ -0,0 +1,81 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+/ {
+ compatible = "lantiq,easy50712", "lantiq,xway", "lantiq,danube";
+ model = "Intel EASY50712 Nand";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ 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>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ partition@400000 {
+ label = "rootfs";
+ reg = <0x400000 0x400000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY50810.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY50810.dts
new file mode 100644
index 0000000000..21562dce21
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY50810.dts
@@ -0,0 +1,87 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+/ {
+ compatible = "lantiq,easy50810", "lantiq,xway", "lantiq,ar9";
+ model = "Lantiq EASY50810";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ 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>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ partition@400000 {
+ label = "rootfs";
+ reg = <0x400000 0x400000>;
+ };
+ };
+ };
+};
+
+&stp {
+ status = "okay";
+ lantiq,shadow = <0xfff>;
+ lantiq,groups = <0x3>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920.dtsi
new file mode 100644
index 0000000000..781cdfdb5b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920.dtsi
@@ -0,0 +1,313 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "lantiq,easy80920", "lantiq,xway", "lantiq,vr9";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-usb = &led_usb1;
+ led-usb2 = &led_usb2;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+/* reset {
+ label = "reset";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };*/
+ paging {
+ label = "paging";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power: power {
+ label = "easy80920:green:power";
+ gpios = <&stp 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ warning {
+ label = "easy80920:green:warning";
+ gpios = <&stp 22 GPIO_ACTIVE_HIGH>;
+ };
+ fxs1 {
+ label = "easy80920:green:fxs1";
+ gpios = <&stp 21 GPIO_ACTIVE_HIGH>;
+ };
+ fxs2 {
+ label = "easy80920:green:fxs2";
+ gpios = <&stp 20 GPIO_ACTIVE_HIGH>;
+ };
+ fxo {
+ label = "easy80920:green:fxo";
+ gpios = <&stp 19 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb1: usb1 {
+ label = "easy80920:green:usb1";
+ gpios = <&stp 18 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb2: usb2 {
+ label = "easy80920:green:usb2";
+ gpios = <&stp 15 GPIO_ACTIVE_HIGH>;
+ };
+ sd {
+ label = "easy80920:green:sd";
+ gpios = <&stp 14 GPIO_ACTIVE_HIGH>;
+ };
+ wps {
+ label = "easy80920:green:wps";
+ gpios = <&stp 12 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ lantiq,switch;
+
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+ };
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ };
+
+ wan: interface@1 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+ lantiq,wan;
+
+ ethernet@5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ exin3 {
+ lantiq,groups = "exin3";
+ lantiq,function = "exin";
+ };
+ stp {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ };
+ nand {
+ lantiq,groups = "nand cle", "nand ale",
+ "nand rd", "nand rdy";
+ lantiq,function = "ebu";
+ };
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ pci {
+ lantiq,groups = "gnt1", "req1";
+ lantiq,function = "pci";
+ };
+ conf_out {
+ lantiq,pins = "io24", "io13", "io49", /* nand cle, ale and rd */
+ "io4", "io5", "io6", /* stp */
+ "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 */
+ "io48"; /* nand rdy */
+ lantiq,pull = <2>;
+ };
+ };
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&spi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ status = "okay";
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <1000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x20000>;
+ label = "SPI (RO) U-Boot Image";
+ read-only;
+ };
+
+ 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";
+ };
+ };
+ };
+};
+
+&stp {
+ status = "okay";
+
+ lantiq,shadow = <0xffff>;
+ lantiq,groups = <0x7>;
+ lantiq,dsl = <0x3>;
+ lantiq,phy1 = <0x7>;
+ lantiq,phy2 = <0x7>;
+ /* lantiq,rising; */
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NAND.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NAND.dts
new file mode 100644
index 0000000000..0134a7c177
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NAND.dts
@@ -0,0 +1,65 @@
+/dts-v1/;
+
+
+#include "EASY80920.dtsi"
+
+/ {
+ compatible = "lantiq,easy80920-nand", "lantiq,easy80920", "lantiq,xway", "lantiq,vr9";
+ model = "Intel EASY80920 Nand";
+
+ chosen {
+ bootargs = "ubi.mtd=ubi ubi.block=0,rootfsA root=/dev/ubiblock0_1";
+ };
+};
+
+&localbus {
+ nand@0 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x100000>; /* 1024 KB */
+ };
+
+ partition@100000 {
+ label = "uboot_env";
+ reg = <0x100000 0x40000>; /* 256 KB */
+ };
+
+ partition@140000 {
+ label = "ubootconfigB";
+ reg = <0x140000 0x40000>; /* 256 KB */
+ };
+
+ partition@180000 {
+ label = "gphyfirmware";
+ reg = <0x180000 0x40000>; /* 256 KB */
+ };
+
+ partition@1c0000 {
+ label = "ubi";
+ reg = <0x1c0000 0xc800000>;
+ };
+
+ partition@c9c0000 {
+ label = "calibration";
+ reg = <0xc9c0000 0x100000>;
+ };
+
+ partition@cac0000 {
+ label = "res";
+ reg = <0xcac0000 0x13540000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NOR.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NOR.dts
new file mode 100644
index 0000000000..9adc0b4f92
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY80920NOR.dts
@@ -0,0 +1,39 @@
+/dts-v1/;
+
+#include "EASY80920.dtsi"
+
+/ {
+ compatible = "lantiq,easy80920-nor", "lantiq,easy80920", "lantiq,xway", "lantiq,vr9";
+ model = "Intel EASY80920 Nor";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ };
+
+ partition@10000 {
+ label = "uboot_env";
+ reg = <0x10000 0x10000>;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x7e0000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY88388.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY88388.dts
new file mode 100644
index 0000000000..86f3b47c6b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY88388.dts
@@ -0,0 +1,93 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon FTTDP8 Reference Board";
+ compatible = "lantiq,easy88388", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pinctrl {
+ led_pins: led-pins {
+ lantiq,pins = "io34", "io35", "io36", "io37", "io38",
+ "io39", "io40", "io41";
+ lantiq,function = "gpio";
+ };
+ };
+
+ easy88388-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "easy88388:green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ };
+ TEST {
+ label = "easy88388:green:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ };
+ STATUS {
+ label = "easy88388:green:status";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+ ERROR {
+ label = "easy88388:red:error";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ DSL1 {
+ label = "easy88388:dsl:1";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ };
+ DSL2 {
+ label = "easy88388:dsl:2";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ };
+ DSL3 {
+ label = "easy88388:dsl:3";
+ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ };
+ DSL4 {
+ label = "easy88388:dsl:4";
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+ };
+ DSL5 {
+ label = "easy88388:dsl:5";
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ };
+ DSL6 {
+ label = "easy88388:dsl:6";
+ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+ };
+ DSL7 {
+ label = "easy88388:dsl:7";
+ gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+ };
+ DSL8 {
+ label = "easy88388:dsl:8";
+ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY88444.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY88444.dts
new file mode 100644
index 0000000000..e1a934fc47
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY88444.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon FTTdp G.FAST Reference Board";
+ compatible = "lantiq,easy88444", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pinctrl {
+ led_pins: led-pins {
+ lantiq,pins = "io34", "io35", "io37";
+ lantiq,function = "gpio";
+ };
+ };
+
+ easy88444-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "easy88444:green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ };
+ TEST {
+ label = "easy88444:green:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ };
+ STATUS {
+ label = "easy88444:green:status";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ GFAST1 {
+ label = "easy88444:gfast:1";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ };
+ GFAST2 {
+ label = "easy88444:gfast:2";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ };
+ GFAST3 {
+ label = "easy88444:gfast:3";
+ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ };
+ GFAST4 {
+ label = "easy88444:gfast:4";
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000-base.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000-base.dtsi
new file mode 100644
index 0000000000..cfe1140ac1
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000-base.dtsi
@@ -0,0 +1,110 @@
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ compatible = "lantiq,easy98000", "lantiq,falcon";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ easy98000-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bootled_pins>;
+
+ LED_0 {
+ label = "easy98000:green:gpon";
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_1 {
+ label = "easy98000:red:gpon";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_2 {
+ label = "easy98000:green:gpon_tx";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_3 {
+ label = "easy98000:green:gpon_rx";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_4 {
+ label = "easy98000:green:voice";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_5 {
+ label = "easy98000:green:status";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
+
+&ebu_cs1 {
+ eth0: ethernet@0000000 {
+ compatible = "davicom,dm9000";
+ device_type = "network";
+ reg = <0x0000003 0x1>, <0x0000001 0x1>;
+ reg-names = "addr", "data";
+ interrupt-parent = <&gpio1>;
+ #interrupt-cells = <2>;
+ interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+ local-mac-address = [ 00 00 00 00 00 00 ];
+ };
+
+ cpld@3c00000 {
+ compatible = "lantiq,easy98000_addon";
+ reg = <0x3c00000 0x2>;
+ };
+
+ cpld@3c0000c {
+ compatible = "lantiq,easy98000_cpld_led";
+ reg = <0x3c0000c 0x2>, <0x3c00012 0x2>;
+ };
+};
+
+/* // enable this for second uart:
+&serial1 {
+ status = "okay";
+};*/
+
+&spi {
+ status = "okay";
+
+ eeprom@1 {
+ compatible = "atmel,at25", "atmel,at25160n";
+ reg = <2>;
+ spi-max-frequency = <1000000>;
+ spi-cpha;
+ spi-cpol;
+
+ pagesize = <32>;
+ size = <2048>;
+ address-width = <16>;
+ };
+};
+
+&i2c {
+ status = "okay";
+
+ clock-frequency = <100000>;
+
+ /* eeprom-emulation by OMU */
+ eeprom@50 {
+ compatible = "at,24c02";
+ reg = <0x50>;
+ };
+ eeprom@51 {
+ compatible = "at,24c02";
+ reg = <0x51>;
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NAND.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NAND.dts
new file mode 100644
index 0000000000..a40cef3931
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NAND.dts
@@ -0,0 +1,40 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "EASY98000-base.dtsi"
+
+/ {
+ model = "Lantiq Falcon (NAND)";
+ compatible = "lantiq,easy98000-nand", "lantiq,easy98000", "lantiq,falcon";
+
+ aliases {
+ spi0 = &spi;
+ };
+};
+
+&ebu_cs0 {
+ gen_nand@0 {
+ compatible = "gen_nand", "lantiq,nand-falcon";
+ bank-width = <1>;
+ reg = <0x0 0x40000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ linux,mtd-name = "gen_nand";
+ bbt-use-flash;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ };
+
+ partition@10000 {
+ label = "uboot_env";
+ reg = <0x40000 0x40000>;
+ };
+
+ partition@20000 {
+ label = "linux";
+ reg = <0x80000 0x3d0000>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NOR.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NOR.dts
new file mode 100644
index 0000000000..ad53bf96e9
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000NOR.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "EASY98000-base.dtsi"
+
+/ {
+ model = "Lantiq Falcon (NOR)";
+ compatible = "lantiq,easy98000-nor", "lantiq,easy98000", "lantiq,falcon";
+
+ aliases {
+ spi0 = &spi;
+ };
+};
+
+&ebu_cs0 {
+ cfi@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0x0 0x4000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ };
+
+ partition@10000 {
+ label = "uboot_env";
+ reg = <0x40000 0x40000>;
+ };
+
+ partition@20000 {
+ label = "linux";
+ reg = <0x80000 0x3d0000>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000SFLASH.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000SFLASH.dts
new file mode 100644
index 0000000000..bbe524e94e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98000SFLASH.dts
@@ -0,0 +1,16 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "EASY98000-base.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon (SFLASH)";
+ compatible = "lantiq,easy98000-sflash", "lantiq,easy98000", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ spi1 = &spi;
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98020.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98020.dts
new file mode 100644
index 0000000000..b66786a2ce
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98020.dts
@@ -0,0 +1,91 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon Reference Board";
+ compatible = "lantiq,easy98020", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pinctrl {
+ led_pins: phy-led-pins {
+ lantiq,pins = "io42", "io41", "io38", "io37";
+ lantiq,function = "gpio";
+ };
+ };
+
+ easy98020-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bootled_pins>;
+
+ GPON {
+ label = "easy98020:green:gpon";
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ TEST {
+ label = "easy98020:green:test";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ ETH {
+ label = "easy98020:green:status";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VOICE {
+ label = "easy98020:green:voice";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VIDEO {
+ label = "easy98020:green:video";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+
+ easy98020-phy-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins>;
+
+ GE0_ACT {
+ label = "easy98020:ge0_act";
+ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+ };
+ GE0_LINK {
+ label = "easy98020:ge0_link";
+ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+ };
+ GE1_ACT {
+ label = "easy98020:ge1_act";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ };
+ GE1_LINK {
+ label = "easy98020:ge1_link";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98020V18.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98020V18.dts
new file mode 100644
index 0000000000..9aa1be91ed
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98020V18.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon Reference Board V1.8";
+ compatible = "lantiq,easy98020-v18", "lantiq,easy98020", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,code = <0x198>;
+ };
+ };
+
+ pinctrl {
+ led_pins: led-pins {
+ lantiq,pins = "io11", "io14", "io36", "io37", "io38";
+ lantiq,function = "gpio";
+ };
+ };
+
+ easy98020-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "easy98020:green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ TEST {
+ label = "easy98020:green:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ ETH {
+ label = "easy98020:green:status";
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VOICE {
+ label = "easy98020:green:voice";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VIDEO {
+ label = "easy98020:green:video";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98021.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98021.dts
new file mode 100644
index 0000000000..38154d6f1c
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98021.dts
@@ -0,0 +1,81 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon HGU Reference Board";
+ compatible = "lantiq,easy98021", "lantiq,easy98020", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-mmc {
+ /* Place-holder for SIM-Card connector,
+ to list the used GPIOs, no official binding */
+ compatible = "gpio-mmc";
+ gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>,
+ <&gpio0 3 GPIO_ACTIVE_HIGH>,
+ <&gpio0 2 GPIO_ACTIVE_HIGH>,
+ <0>; /* no CS */
+ gpio-names = "di", "do", "clk", "cs";
+ reset-gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl {
+ led_pins: led-pins {
+ lantiq,pins = "io11", "io14", "io36", "io37", "io38";
+ lantiq,function = "gpio";
+ };
+ };
+
+ easy98021-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "easy98021:green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ TEST {
+ label = "easy98021:red:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ ETH {
+ label = "easy98021:green:status";
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VOICE {
+ label = "easy98021:green:voice";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ SIMCARD {
+ label = "easy98021:green:simcard";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE.dts
new file mode 100644
index 0000000000..df941cdb67
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE.dts
@@ -0,0 +1,76 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon SFP Stick with SyncE";
+ compatible = "lantiq,easy98035synce", "lantiq,falcon-sfp", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ pinctrl {
+ compatible = "lantiq,pinctrl-falcon";
+
+ asc0_func1: func1 {
+ func1_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ func1_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <0>;
+ };
+ };
+ asc0_func2: func2 {
+ func2_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <0>;
+ };
+ func2_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ };
+ asc0_func3: func3 {
+ func3_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ func3_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ };
+ };
+
+ pinselect-asc0 {
+ compatible = "lantiq,pinselect-asc0";
+ pinctrl-names = "asc0", "func1", "func2", "func3";
+ pinctrl-0 = <&asc0_pins>;
+ pinctrl-1 = <&asc0_func1>;
+ pinctrl-2 = <&asc0_func2>;
+ pinctrl-3 = <&asc0_func3>;
+ };
+};
+
+&serial0 {
+ pinctrl-names = "default";
+ /* use "empty" pinctrl to leave setting from u-boot enabled */
+ pinctrl-0 = < >;
+};
+
+&i2c {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE1588.dts b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE1588.dts
new file mode 100644
index 0000000000..a3abc6e707
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/EASY98035SYNCE1588.dts
@@ -0,0 +1,76 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon SFP Stick with SyncE/1588";
+ compatible = "lantiq,easy98035synce1588", "lantiq,falcon-sfp", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ pinctrl {
+ compatible = "lantiq,pinctrl-falcon";
+
+ asc0_func1: func1 {
+ func1_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ func1_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <0>;
+ };
+ };
+ asc0_func2: func2 {
+ func2_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <0>;
+ };
+ func2_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ };
+ asc0_func3: func3 {
+ func3_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ func3_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ };
+ };
+
+ pinselect-asc0 {
+ compatible = "lantiq,pinselect-asc0";
+ pinctrl-names = "asc0", "func1", "func2", "func3";
+ pinctrl-0 = <&asc0_pins>;
+ pinctrl-1 = <&asc0_func1>;
+ pinctrl-2 = <&asc0_func2>;
+ pinctrl-3 = <&asc0_func3>;
+ };
+};
+
+&serial0 {
+ pinctrl-names = "default";
+ /* use "empty" pinctrl to leave setting from u-boot enabled */
+ pinctrl-0 = < >;
+};
+
+&i2c {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FALCON-MDU.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FALCON-MDU.dts
new file mode 100644
index 0000000000..6710bbe98e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FALCON-MDU.dts
@@ -0,0 +1,53 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon / Vinax MDU Board";
+ compatible = "lantiq,falcon-mdu", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ mdu-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bootled_pins>;
+
+ LED_0 {
+ label = "mdu:green:gpon";
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_1 {
+ label = "mdu:green:status";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_2 {
+ label = "mdu:green:2";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_3 {
+ label = "mdu:green:3";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_4 {
+ label = "mdu:green:4";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FALCON-SFP.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FALCON-SFP.dts
new file mode 100644
index 0000000000..8d45de4ebe
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FALCON-SFP.dts
@@ -0,0 +1,76 @@
+/dts-v1/;
+
+#include "falcon.dtsi"
+#include "falcon-sflash-16M.dtsi"
+
+/ {
+ model = "Lantiq Falcon SFP Stick";
+ compatible = "lantiq,falcon-sfp", "lantiq,falcon";
+
+ aliases {
+ spi0 = &ebu_cs0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>; // 64M at 0x0
+ };
+
+ pinctrl {
+ compatible = "lantiq,pinctrl-falcon";
+
+ asc0_func1: func1 {
+ func1_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <1>;
+ lantiq,output = <0>;
+ };
+ func1_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <0>;
+ };
+ };
+ asc0_func2: func2 {
+ func2_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <0>;
+ };
+ func2_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ };
+ asc0_func3: func3 {
+ func3_tx {
+ lantiq,pins = "io32";
+ lantiq,mux = <1>;
+ lantiq,output = <0>;
+ };
+ func3_rx {
+ lantiq,pins = "io33";
+ lantiq,mux = <1>;
+ lantiq,input = <0>;
+ };
+ };
+ };
+
+ pinselect-asc0 {
+ compatible = "lantiq,pinselect-asc0";
+ pinctrl-names = "asc0", "func1", "func2", "func3";
+ pinctrl-0 = <&asc0_pins>;
+ pinctrl-1 = <&asc0_func1>;
+ pinctrl-2 = <&asc0_func2>;
+ pinctrl-3 = <&asc0_func3>;
+ };
+};
+
+&serial0 {
+ pinctrl-names = "default";
+ /* use "empty" pinctrl to leave setting from u-boot enabled */
+ pinctrl-0 = < >;
+};
+
+&i2c {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-HYNIX.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-HYNIX.dts
new file mode 100644
index 0000000000..ebd6f6e4c8
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-HYNIX.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+
+#include "FRITZ3370-REV2.dtsi"
+
+/ {
+ compatible = "avm,fritz3370-rev2-hynix", "avm,fritz3370-rev2", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 3370 Rev. 2 (Hynix NAND)";
+};
+
+&localbus {
+ nand@1 {
+ compatible = "lantiq,nand-xway";
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ nand-ecc-mode = "soft";
+ nand-ecc-strength = <3>;
+ nand-ecc-step-size = <256>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "kernel";
+ reg = <0x0 0x400000>;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x400000 0x7c00000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-MICRON.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-MICRON.dts
new file mode 100644
index 0000000000..dcc97d2808
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2-MICRON.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "FRITZ3370-REV2.dtsi"
+
+/ {
+ compatible = "avm,fritz3370-rev2-micron", "avm,fritz3370-rev2", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 3370 Rev. 2 (Micron NAND)";
+};
+
+&localbus {
+ nand@1 {
+ compatible = "lantiq,nand-xway";
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ nand-ecc-mode = "on-die";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "kernel";
+ reg = <0x0 0x400000>;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x400000 0x7c00000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2.dtsi
new file mode 100644
index 0000000000..9a0359d1cc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ3370-REV2.dtsi
@@ -0,0 +1,306 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "avm,fritz3370-rev2", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 3370 Rev. 2";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &info_green;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x8000000>;
+ };
+
+ gpio-poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ power {
+ label = "power";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_POWER>;
+ };
+
+ wifi {
+ label = "wlan";
+ gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_WLAN>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "fritz3370:green:power";
+ gpios = <&gpio 32 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ power_red: power2 {
+ label = "fritz3370:red:power";
+ gpios = <&gpio 33 GPIO_ACTIVE_LOW>;
+ };
+
+ info_red {
+ label = "fritz3370:red:info";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ label = "fritz3370:green:wlan";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+
+ dsl: dsl {
+ label = "fritz3370:green:dsl";
+ gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+ };
+
+ lan {
+ label = "fritz3370:green:lan";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+
+ info_green: info_green {
+ label = "fritz3370:green:info";
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb0_vbus: regulator-usb0-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB0_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ usb1_vbus: regulator-usb1-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB1_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 5 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+ };
+
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+ gpios = <&gpio 44 GPIO_ACTIVE_HIGH>;
+ };
+
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+
+ ethernet@4 {
+ 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";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+
+ nand {
+ lantiq,groups = "nand cle", "nand ale",
+ "nand rd", "nand cs1", "nand rdy";
+ lantiq,function = "ebu";
+ lantiq,pull = <1>;
+ };
+
+ phy-rst {
+ lantiq,pins = "io37", "io44";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+
+ pcie-rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&pcie0 {
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ pcie@0 {
+ reg = <0 0 0 0 0>;
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+ device_type = "pci";
+
+ wifi@0,0 {
+ compatible = "pci0,0";
+ reg = <0 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <1000000>;
+
+ urlader: partition@0 {
+ reg = <0x0 0x20000>;
+ label = "urlader";
+ read-only;
+ };
+
+ partition@20000 {
+ reg = <0x20000 0x10000>;
+ label = "tffs (1)";
+ read-only;
+ };
+
+ partition@30000 {
+ reg = <0x30000 0x10000>;
+ label = "tffs (2)";
+ read-only;
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb0_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb1_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7312.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7312.dts
new file mode 100644
index 0000000000..796b941ede
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7312.dts
@@ -0,0 +1,182 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "avm,fritz7312", "lantiq,xway", "lantiq,ar9";
+ model = "AVM FRITZ!Box 7312";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-internet = &info_green;
+ led-dsl = &power;
+ led-wifi = &wlan;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wlan {
+ label = "wlan";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ dect {
+ label = "dect";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power: power {
+ label = "fritz7312:green:power";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice {
+ label = "fritz7312:green:fon";
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+ dect {
+ label = "fritz7312:green:dect";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+ wlan: wlan {
+ label = "fritz7312:green:wlan";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ info_green: info_green {
+ label = "fritz7312:green:info";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ pci {
+ lantiq,groups = "gnt1", "req1", "req2", "req4", "gnt2", "gnt3", "gnt4";
+ lantiq,function = "pci";
+ };
+ pci-in {
+ lantiq,groups = "req1", "req2", "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>;
+ };
+ ar8030-intr {
+ lantiq,groups = "exin3";
+ lantiq,function = "exin";
+ lantiq,pull = <2>;
+ lantiq,output = <0>;
+ };
+ ar8030-clk {
+ lantiq,groups = "clkout2";
+ lantiq,output = <1>;
+ lantiq,open-drain;
+ };
+ ar8030-rst {
+ lantiq,pins = "io34";
+ lantiq,output = <1>;
+ lantiq,pull = <2>;
+ lantiq,open-drain;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+ phy-handle = <&phy0>;
+ mtd-mac-address = <&ath9k_cal 0xa91>;
+ mtd-mac-address-increment = <(-2)>;
+
+ mdio-bus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ reset-gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ ath9k_cal: partition@0 {
+ label = "urlader";
+ reg = <0x00000 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0xf60000>;
+ };
+
+ partition@f80000 {
+ label = "tffs (1)";
+ reg = <0xf80000 0x40000>;
+ read-only;
+ };
+
+ partition@fc0000 {
+ label = "tffs (2)";
+ reg = <0xfc0000 0x40000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ req-mask = <0xf>;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_LOW>;
+
+ wifi@0,0 {
+ compatible = "pci0,0";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7320.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7320.dts
new file mode 100644
index 0000000000..a4afca11fa
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7320.dts
@@ -0,0 +1,172 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "avm,fritz7320", "lantiq,xway", "lantiq,ar9";
+ model = "AVM FRITZ!Box 7320";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-internet = &info_green;
+ led-dsl = &power;
+ led-wifi = &wlan;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ dect {
+ label = "dect";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "fritz7320:green:power";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice {
+ label = "fritz7320:green:fon";
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+ dect {
+ label = "fritz7320:green:dect";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+ wlan: wlan {
+ label = "fritz7320:green:wlan";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ info_green: info_green {
+ label = "fritz7320:green:info";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ info_red {
+ label = "fritz7320:red:info";
+ gpios = <&gpio 45 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ 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>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&ath9k_cal 0xa91>;
+ mtd-mac-address-increment = <(-2)>;
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ ath9k_cal: partition@0 {
+ label = "urlader";
+ reg = <0x00000 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0xf60000>;
+ };
+
+ partition@f80000 {
+ label = "tffs (1)";
+ reg = <0xf80000 0x40000>;
+ read-only;
+ };
+
+ partition@fc0000 {
+ label = "tffs (2)";
+ reg = <0xfc0000 0x40000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ req-mask = <0xf>;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@0,0 {
+ compatible = "pci0,0";
+ reg = <0x7000 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&usb1 {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7360SL.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7360SL.dts
new file mode 100644
index 0000000000..599b20a460
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7360SL.dts
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "FRITZ736X.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "avm,fritz7360sl", "avm,fritz736x", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 7360 SL";
+};
+
+&power_green {
+ label = "fritz7360sl:green:power";
+};
+
+&power_red {
+ label = "fritz7360sl:red:power";
+};
+
+&info_green {
+ label = "fritz7360sl:green:info";
+};
+
+&wifi {
+ label = "fritz7360sl:green:wlan";
+};
+
+&info_red {
+ label = "fritz7360sl:red:info";
+};
+
+&dect {
+ label = "fritz7360sl:green:dect";
+};
+
+&state_default {
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ urlader: partition@0 {
+ label = "urlader";
+ reg = <0x00000 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0xf60000>;
+ };
+
+ partition@f80000 {
+ label = "tffs (1)";
+ reg = <0xf80000 0x40000>;
+ read-only;
+ };
+
+ partition@fc0000 {
+ label = "tffs (2)";
+ reg = <0xfc0000 0x40000>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7362SL.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7362SL.dts
new file mode 100644
index 0000000000..7a6272b988
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7362SL.dts
@@ -0,0 +1,135 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "FRITZ736X.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "avm,fritz7362sl", "avm,fritz736x", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 7362 SL";
+};
+
+&power_green {
+ label = "fritz7362sl:green:power";
+};
+
+&power_red {
+ label = "fritz7362sl:red:power";
+};
+
+&info_green {
+ label = "fritz7362sl:green:info";
+};
+
+&wifi {
+ label = "fritz7362sl:green:wlan";
+};
+
+&info_red {
+ label = "fritz7362sl:red:info";
+};
+
+&dect {
+ label = "fritz7362sl:green:dect";
+};
+
+&gpio {
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&state_default {
+ nand {
+ lantiq,groups = "nand ale", "nand cle",
+ "nand cs1", "nand rd", "nand rdy";
+ lantiq,function = "ebu";
+ };
+
+ pcie-rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <1>;
+ lantiq,output = <1>;
+ };
+};
+
+&spi {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ flash@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <1000000>;
+
+ urlader: partition@0 {
+ reg = <0x0 0x40000>;
+ label = "urlader";
+ read-only;
+ };
+
+ partition@40000 {
+ reg = <0x40000 0x60000>;
+ label = "tffs (1)";
+ read-only;
+ };
+
+ partition@A0000 {
+ reg = <0xA0000 0x60000>;
+ label = "tffs (2)";
+ read-only;
+ };
+ };
+};
+
+&localbus {
+ nand@1 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs1 = <1>;
+ bank-width = <1>;
+ reg = <1 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ nand-ecc-mode = "on-die";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "kernel";
+ reg = <0x0 0x400000>;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x400000 0x7c00000>;
+ };
+ };
+ };
+};
+
+&pcie0 {
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_LOW>;
+
+ pcie@0 {
+ #size-cells = <1>;
+ #address-cells = <2>;
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ736X.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ736X.dtsi
new file mode 100644
index 0000000000..9c1d2db8fa
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ736X.dtsi
@@ -0,0 +1,205 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "avm,fritz736x", "lantiq,xway", "lantiq,vr9";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+ led-dsl = &info_green;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x8000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ dect {
+ label = "dect";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_PHONE>;
+ };
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_WLAN>;
+ };
+ };
+
+ leds: leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ gpios = <&gpio 32 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ power_red: power2 {
+ gpios = <&gpio 33 GPIO_ACTIVE_LOW>;
+ };
+
+ info_green: info_green {
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+ };
+
+ info_red: info_red {
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+
+ dect: dect {
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&urlader 0xa91>;
+ mtd-mac-address-increment = <(-2)>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rmii";
+ phy-handle = <&phy0>;
+ };
+
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <1>;
+ phy-mode = "rmii";
+ phy-handle = <&phy1>;
+ };
+
+ 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";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x00>;
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reset-gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+
+ phy1: ethernet-phy@1 {
+ reg = <0x01>;
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+
+ phy-rst {
+ lantiq,pins = "io37", "io44";
+ lantiq,pull = <0>;
+ lantiq,open-drain;
+ lantiq,output = <1>;
+ };
+ };
+
+};
+
+&pcie0 {
+ status = "okay";
+
+ pcie@0 {
+ reg = <0 0 0 0 0>;
+ #interrupt-cells = <1>;
+ #size-cells = <1>;
+ #address-cells = <2>;
+ device_type = "pci";
+
+ wifi@168c,002e {
+ compatible = "pci168c,002e";
+ reg = <0 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&usb1 {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7412.dts b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7412.dts
new file mode 100644
index 0000000000..3059c12858
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/FRITZ7412.dts
@@ -0,0 +1,230 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "avm,fritz7412", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 7412";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 mem=126M vpe1_load_addr=0x87e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+
+ led-dsl = &info;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x8000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ dect {
+ label = "dect";
+ gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power_green {
+ label = "fritz7412:green:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ power_red: power_red {
+ label = "fritz7412:red:power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+
+ fon {
+ label = "fritz7412:green:fon";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+
+ dect {
+ label = "fritz7412:green:dect";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ label = "fritz7412:green:wifi";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+
+ info: info {
+ label = "fritz7412:green:info";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&localbus {
+ nand@0 {
+ compatible = "lantiq,nand-xway";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ lantiq,cs = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "urlader";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "nand-tffs";
+ reg = <0x40000 0x400000>;
+ read-only;
+ };
+
+ partition@440000 {
+ label = "kernel";
+ reg = <0x440000 0x400000>;
+ };
+
+ partition@840000 {
+ label = "ubi";
+ reg = <0x840000 0x3000000>;
+ };
+
+ partition@3840000 {
+ label = "reserved-kernel";
+ reg = <0x3840000 0x400000>;
+ read-only;
+ };
+
+ partition@3c40000 {
+ label = "reserved-filesystem";
+ reg = <0x3c40000 0x3000000>;
+ read-only;
+ };
+
+ partition@6c40000 {
+ label = "config";
+ reg = <0x6c40000 0x400000>;
+ read-only;
+ };
+
+ partition@6e40000 {
+ label = "nand-filesystem";
+ reg = <0x6e40000 0x400000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pcie0 {
+ status = "okay";
+ gpio-reset = <&gpio 11 GPIO_ACTIVE_HIGH>;
+
+ pcie@0 {
+ reg = <0 0 0 0 0>;
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+ device_type = "pci";
+
+ wifi@168c,002e {
+ compatible = "pci168c,002e";
+ reg = <0 0 0 0 0>;
+ qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ pcie-rst {
+ lantiq,pins = "io11";
+ lantiq,open-drain = <1>;
+ lantiq,output = <1>;
+ };
+ nand-mux {
+ lantiq,groups = "nand cle", "nand ale",
+ "nand rd", "nand cs1",
+ "nand rdy";
+ lantiq,function = "ebu";
+ };
+ nand-pins {
+ lantiq,pins = "io13", "io24", "io49";
+ lantiq,pull = <1>;
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&eth0 {
+ lantiq,phys = <&gphy0>;
+
+ interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mac-address = [ 00 11 22 33 44 55 ];
+ lantiq,switch;
+
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&vmmc {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/GIGASX76X.dts b/target/linux/lantiq/files/arch/mips/boot/dts/GIGASX76X.dts
new file mode 100644
index 0000000000..36b82515dc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/GIGASX76X.dts
@@ -0,0 +1,130 @@
+/dts-v1/;
+
+#include "danube.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "siemens,gigaset-sx76x", "lantiq,xway", "lantiq,danube";
+ model = "Gigaset SX761,SX762,SX763";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ switch {
+ gpio-export,name = "switch";
+ gpio-export,output = <1>;
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 29 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ stp {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ };
+ };
+};
+
+
+&gpiomm {
+ status = "okay";
+ lantiq,shadow = <0x3>;
+};
+
+&gpios {
+ status = "okay";
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@10000 {
+ label = "uboot_env";
+ reg = <0x30000 0x10000>;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x7c0000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/H201L.dts b/target/linux/lantiq/files/arch/mips/boot/dts/H201L.dts
new file mode 100644
index 0000000000..46cae21a58
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/H201L.dts
@@ -0,0 +1,175 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "zte,h201l", "lantiq,xway", "lantiq,ar9";
+ model = "ZTE H210L";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_green;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &online;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 53 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 54 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 55 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "h201l:green:power";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ online: online {
+ label = "h201l:green:internet";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "h201l:green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ phone {
+ label = "h201l:green:phone";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "h201l:green:wps";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "h201l:green:wlan";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "h201l:green:usb";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ switch {
+ gpio-export,name = "switch";
+ gpio-export,output = <1>;
+ gpios = <&gpio 38 GPIO_ACTIVE_HIGH>;
+ };
+ usb {
+ gpio-export,name = "usb";
+ gpio-export,output = <1>;
+ gpios = <&gpio 28 GPIO_ACTIVE_HIGH>;
+ };
+ wifi {
+ gpio-export,name = "wifi";
+ gpio-export,output = <1>;
+ gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 36 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ };
+};
+
+&gsw {
+ phy-mode = "rgmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #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 = "firmware";
+ reg = <0x30000 0x7d0000>;
+ };
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/P2601HNFX.dts b/target/linux/lantiq/files/arch/mips/boot/dts/P2601HNFX.dts
new file mode 100644
index 0000000000..5606eb6e8b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/P2601HNFX.dts
@@ -0,0 +1,196 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "zyxel,p-2601hn", "lantiq,xway", "lantiq,ar9";
+ model = "ZyXEL P-2601HN-Fx";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &online;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 53 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 54 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "p2601hnfx:green:power";
+ gpios = <&stp 11 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "p2601hnfx:red:power";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "p2601hnfx:green:internet";
+ gpios = <&stp 13 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "p2601hnfx:red:internet";
+ gpios = <&stp 12 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "p2601hnfx:green:dsl";
+ gpios = <&stp 14 GPIO_ACTIVE_LOW>;
+ };
+ phone {
+ label = "p2601hnfx:green:phone";
+ gpios = <&stp 9 GPIO_ACTIVE_LOW>;
+ };
+ phone2 {
+ label = "p2601hnfx:orange:phone";
+ gpios = <&stp 8 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "p2601hnfx:green:wireless";
+ gpios = <&stp 15 GPIO_ACTIVE_LOW>;
+ };
+ wifi2 {
+ label = "p2601hnfx:orange:wireless";
+ gpios = <&stp 10 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_export {
+ compatible = "gpio-export";
+ #size-cells = <0>;
+
+ switch {
+ gpio-export,name = "switch";
+ gpio-export,output = <1>;
+ gpios = <&gpio 50 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ stp {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ exin {
+ lantiq,groups = "exin1";
+ lantiq,function = "exin";
+ };
+ pci {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ };
+ conf_out {
+ lantiq,pins = "io4", "io5", "io6";
+ lantiq,open-drain;
+ lantiq,pull = <0>;
+ };
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 9 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0xfa0000>;
+ };
+ };
+ };
+};
+
+&stp {
+ status = "okay";
+ lantiq,shadow = <0xfff>;
+ lantiq,groups = <0x3>;
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF1.dts b/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF1.dts
new file mode 100644
index 0000000000..d907d64c8c
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF1.dts
@@ -0,0 +1,70 @@
+/dts-v1/;
+
+#include "P2812HNUFX.dtsi"
+
+/ {
+ compatible = "zyxel,p-2812hnu-f1", "zyxel,p-2812hnu", "lantiq,xway", "lantiq,vr9";
+ model = "ZyXEL P-2812HNU-F1";
+
+ aliases {
+ led-usb = &led_usb1;
+ led-usb2 = &led_usb2;
+ };
+
+ gpio-leds {
+ led_usb1: usb1 {
+ label = "p2812hnuf1:green:usb1";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+ led_usb2: usb2 {
+ label = "p2812hnuf1:green:usb2";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&localbus {
+ nand@0 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ };
+ partition@40000 {
+ label = "uboot-env";
+ reg = <0x40000 0x20000>;
+ };
+ partition@60000 {
+ label = "kernel";
+ reg = <0x60000 0x300000>;
+ };
+ partition@360000 {
+ label = "ubi";
+ reg = <0x360000 0x7ca0000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ wifi@1814,3062 {
+ compatible = "pci1814,3062";
+ reg = <0x7000 0 0 0 0>;
+ ralink,eeprom = "RT3062.eeprom";
+ };
+};
+
+&pcie0 {
+ status = "disabled";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF3.dts b/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF3.dts
new file mode 100644
index 0000000000..202226aa86
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUF3.dts
@@ -0,0 +1,64 @@
+/dts-v1/;
+
+#include "P2812HNUFX.dtsi"
+
+/ {
+ compatible = "zyxel,p-2812hnu-f3", "zyxel,p-2812hnu", "lantiq,xway", "lantiq,vr9";
+ model = "ZyXEL P-2812HNU-F3";
+};
+
+&pci0 {
+ wifi@1814,3092 {
+ compatible = "pci1814,3092";
+ reg = <0x7000 0 0 0 0>;
+ ralink,eeprom = "RT3092.eeprom";
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x50000>;
+ read-only;
+ };
+ partition@50000 {
+ label = "uboot-env";
+ reg = <0x50000 0x10000>;
+ };
+ partition@60000 {
+ label = "unused";
+ reg = <0x60000 0x7a0000>;
+ };
+ };
+ };
+
+ nand@1 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "kernel";
+ reg = <0x0 0x200000>;
+ };
+ partition@200000 {
+ label = "ubi";
+ reg = <0x200000 0x7e00000>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUFX.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUFX.dtsi
new file mode 100644
index 0000000000..65424e3eff
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/P2812HNUFX.dtsi
@@ -0,0 +1,298 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "zyxel,p-2812hnu", "lantiq,xway", "lantiq,vr9";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl_green;
+ led-internet = &internet_green;
+ led-wifi = &wireless_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x8000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ internet_red {
+ label = "p2812hnufx:red:internet";
+ gpios = <&stp 16 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: internet_green {
+ label = "p2812hnufx:green:internet";
+ gpios = <&stp 17 GPIO_ACTIVE_LOW>;
+ };
+ dsl_green: dsl_green {
+ label = "p2812hnufx:green:dsl";
+ gpios = <&stp 18 GPIO_ACTIVE_LOW>;
+ };
+ dsl_orange {
+ label = "p2812hnufx:orange:dsl";
+ gpios = <&stp 19 GPIO_ACTIVE_LOW>;
+ };
+ wireless_orange {
+ label = "p2812hnufx:orange:wlan";
+ gpios = <&stp 20 GPIO_ACTIVE_LOW>;
+ };
+ wireless_green: wireless_green {
+ label = "p2812hnufx:green:wlan";
+ gpios = <&stp 21 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power {
+ label = "p2812hnufx:red:power";
+ gpios = <&stp 22 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power2 {
+ label = "p2812hnufx:green:power";
+ gpios = <&stp 23 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ phone1 {
+ label = "p2812hnufx:green:phone";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+ phone1warn {
+ label = "p2812hnufx:orange:phone";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ phone2warn {
+ label = "p2812hnufx:orange:phone2";
+ gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
+ };
+ phone2 {
+ label = "p2812hnufx:green:phone2";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mac-address = [ 00 11 22 33 44 55 ];
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ exin3 {
+ lantiq,groups = "exin3";
+ lantiq,function = "exin";
+ };
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ gphy-leds {
+ lantiq,groups = "gphy0 led1", "gphy1 led1",
+ "gphy0 led2", "gphy1 led2";
+ lantiq,function = "gphy";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ stp {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ pci-in {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ pci-out {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ };
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ ifxhcd-rst {
+ lantiq,pins = "io33";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ nand_out {
+ lantiq,groups = "nand cle", "nand ale";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ nand_cs1 {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&stp {
+ status = "okay";
+
+ lantiq,shadow = <0xffffff>;
+ lantiq,groups = <0x7>;
+ lantiq,dsl = <0x0>;
+ lantiq,phy1 = <0x0>;
+ lantiq,phy2 = <0x0>;
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/TDW8970.dts b/target/linux/lantiq/files/arch/mips/boot/dts/TDW8970.dts
new file mode 100644
index 0000000000..25eb3dac67
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/TDW8970.dts
@@ -0,0 +1,8 @@
+/dts-v1/;
+
+#include "TDW89X0.dtsi"
+
+/ {
+ compatible = "tplink,tdw8970", "tplink,tdw89x0", "lantiq,xway", "lantiq,vr9";
+ model = "TP-LINK TD-W8970";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/TDW8980.dts b/target/linux/lantiq/files/arch/mips/boot/dts/TDW8980.dts
new file mode 100644
index 0000000000..76875e735d
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/TDW8980.dts
@@ -0,0 +1,33 @@
+/dts-v1/;
+
+#include "TDW89X0.dtsi"
+
+/ {
+ compatible = "tplink,tdw8980", "tplink,tdw89x0", "lantiq,xway", "lantiq,vr9";
+ model = "TP-LINK TD-W8980";
+
+ gpio-leds {
+ wifi2 {
+ label = "tdw8980:green:wlan5ghz";
+ gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ state_default: pinmux {
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain;
+ };
+ };
+};
+
+&pci0 {
+ 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 GPIO_ACTIVE_HIGH>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/TDW89X0.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/TDW89X0.dtsi
new file mode 100644
index 0000000000..71e051a316
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/TDW89X0.dtsi
@@ -0,0 +1,299 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "tplink,tdw89x0", "lantiq,xway", "lantiq,vr9";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ /* the power led can't be controlled, use the wps led instead */
+ led-boot = &wps;
+ led-failsafe = &wps;
+
+ led-dsl = &dsl;
+ led-internet = &internet;
+ led-wifi = &wifi;
+ led-usb = &led_usb0;
+ led-usb2 = &led_usb2;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_RFKILL>;
+ linux,input-type = <EV_SW>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ /*
+ power is not controllable via gpio
+ */
+ dsl: dsl {
+ label = "tdw89x0:green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+ };
+ internet: internet {
+ label = "tdw89x0:green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_usb0: usb0 {
+ label = "tdw89x0:green:usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb2: usb2 {
+ label = "tdw89x0:green:usb2";
+ gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+ };
+ wps: wps {
+ label = "tdw89x0:green:wps";
+ gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ wifi-leds {
+ compatible = "gpio-leds";
+
+ wifi: wifi {
+ label = "tdw89x0:green:wifi";
+ gpios = <&ath9k 0 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ 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 GPIO_ACTIVE_LOW>;
+ };
+ 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";
+ reg = <0>;
+
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ 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>;
+ };
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&pcie0 {
+ pcie@0 {
+ reg = <0 0 0 0 0>;
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+ device_type = "pci";
+
+ ath9k: wifi@168c,002e {
+ compatible = "pci168c,002e";
+ reg = <0 0 0 0 0>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ qca,no-eeprom;
+ qca,disable-5ghz;
+ mtd-mac-address = <&ath9k_cal 0xf100>;
+ mtd-mac-address-increment = <2>;
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <33250000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x20000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@20000 {
+ reg = <0x20000 0x7a0000>;
+ label = "firmware";
+ };
+
+ partition@7c0000 {
+ reg = <0x7c0000 0x10000>;
+ label = "config";
+ read-only;
+ };
+
+ ath9k_cal: partition@7d0000 {
+ reg = <0x7d0000 0x30000>;
+ label = "boardconfig";
+ read-only;
+ };
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VG3503J.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VG3503J.dts
new file mode 100644
index 0000000000..9735b2e011
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VG3503J.dts
@@ -0,0 +1,165 @@
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "arcadyan,vg3503j", "lantiq,xway", "lantiq,vr9";
+ model = "BT OpenReach VDSL Modem";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_red: power2 {
+ label = "vg3503j:red:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "vg3503j:green:dsl";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power {
+ label = "vg3503j:green:power";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ };
+};
+
+&eth0 {
+ interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ lantiq,switch;
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "mii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "mii";
+ phy-handle = <&phy13>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ lantiq,led1h = <0x70>;
+ lantiq,led1l = <0x00>;
+ lantiq,led2h = <0x00>;
+ lantiq,led2l = <0x03>;
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ lantiq,led1h = <0x70>;
+ lantiq,led1l = <0x00>;
+ lantiq,led2h = <0x00>;
+ lantiq,led2l = <0x03>;
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ gphy-leds {
+ lantiq,groups = "gphy0 led0", "gphy0 led1",
+ "gphy0 led2", "gphy1 led0",
+ "gphy1 led1", "gphy1 led2";
+ lantiq,function = "gphy";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x20000>;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x7d0000>;
+ };
+
+ partition@7f0000 {
+ label = "uboot-env";
+ reg = <0x7f0000 0x10000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22.dtsi
new file mode 100644
index 0000000000..811f39d08b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22.dtsi
@@ -0,0 +1,269 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "arcadyan,vgv7510kw22", "lantiq,xway", "lantiq,vr9";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 mem=62M vpe1_load_addr=0x83e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &internet_green;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl: dsl {
+ label = "vgv7510kw22:green:dsl";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+
+ internet_red {
+ label = "vgv7510kw22:red:internet";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+
+ info_red {
+ label = "vgv7510kw22:red:info";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+
+ power_green: power {
+ label = "vgv7510kw22:green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ info_green {
+ label = "vgv7510kw22:green:info";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ internet_green: internet_green {
+ label = "vgv7510kw22:green:internet";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ label = "vgv7510kw22:green:wlan";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+
+ power_red: power2 {
+ label = "vgv7510kw22:red:power";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ };
+
+ phone {
+ label = "vgv7510kw22:green:telefon";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 47 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&boardconfig 0x16>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "mii";
+ phy-handle = <&phy1>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "mii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@3 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <3>;
+ phy-mode = "mii";
+ phy-handle = <&phy12>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "mii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "mii";
+ phy-handle = <&phy14>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ compatible = "ethernet-phy-ieee802.3-c22";
+ };
+
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy12: ethernet-phy@12 {
+ reg = <0x12>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy14: ethernet-phy@14 {
+ reg = <0x14>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ gphy-leds {
+ lantiq,groups = "gphy0 led0", "gphy0 led1",
+ "gphy1 led0", "gphy1 led1";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ pci-rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ boardconfig: partition@fe0000 {
+ label = "board_config";
+ reg = <0xfe0000 0x20000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@1814,3592 {
+ compatible = "pci1814,3592";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ mtd-mac-address = <&boardconfig 0x16>;
+ mtd-mac-address-increment = <1>;
+ };
+};
+
+&pcie0 {
+ status = "disabled";
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 30 GPIO_ACTIVE_HIGH //fxs relay
+ &gpio 31 GPIO_ACTIVE_HIGH //still unknown
+ &gpio 3 GPIO_ACTIVE_HIGH>; //reset_slic?
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22BRN.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22BRN.dts
new file mode 100644
index 0000000000..94b96d74d9
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22BRN.dts
@@ -0,0 +1,65 @@
+/dts-v1/;
+
+#include "VGV7510KW22.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7510kw22-brn", "arcadyan,vgv7510kw22", "lantiq,xway", "lantiq,vr9";
+ model = "o2 Box 6431";
+
+ sram@1f000000 {
+ cgu@103000 {
+ lantiq,phy-clk-src = <0x2>;
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ partitions {
+ partition@0 {
+ label = "Boot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "Configuration";
+ reg = <0x40000 0x40000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "Certificate";
+ reg = <0x80000 0x20000>;
+ read-only;
+ };
+
+ partition@a0000 {
+ label = "Special_Area";
+ reg = <0xa0000 0x20000>;
+ read-only;
+ };
+
+ partition@c0000 {
+ compatible = "brnboot,root-selector";
+ label = "Primary_Setting";
+ reg = <0xc0000 0x20000>;
+ read-only;
+ };
+
+ partition@e0000 {
+ label = "Code_Image_0";
+ reg = <0xe0000 0x780000>;
+ brnboot,root-id = <0x00>;
+ read-only;
+ };
+
+ partition@860000 {
+ label = "Code_Image_1";
+ reg = <0x860000 0x780000>;
+ brnboot,root-id = <0x01>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22NOR.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22NOR.dts
new file mode 100644
index 0000000000..cc84c63f2e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7510KW22NOR.dts
@@ -0,0 +1,31 @@
+/dts-v1/;
+
+#include "VGV7510KW22.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7510kw22-nor", "arcadyan,vgv7510kw22", "lantiq,xway", "lantiq,vr9";
+ model = "o2 Box 6431";
+};
+
+&localbus {
+ nor@0 {
+ partitions {
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x60000>; /* 384 KiB */
+ read-only;
+ };
+
+ partition@60000 {
+ label = "uboot-env";
+ reg = <0x60000 0x20000>; /* 128 KiB */
+ read-only;
+ };
+
+ partition@80000 {
+ label = "firmware";
+ reg = <0x80000 0xf60000>; /* 15744 KiB */
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519.dtsi
new file mode 100644
index 0000000000..f69b302bcd
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519.dtsi
@@ -0,0 +1,314 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "arcadyan,vgv7519", "lantiq,xway", "lantiq,vr9";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 mem=62M vpe1_load_addr=0x83e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &broadband_green;
+ led-internet = &internet_green;
+ led-wifi = &wireless_green;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ eco {
+ label = "eco";
+ gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ };
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 45 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ eco {
+ label = "vgv7519:blue:eco";
+ gpios = <&stp 2 GPIO_ACTIVE_LOW>;
+ };
+ wps_red {
+ label = "vgv7519:red:wps";
+ gpios = <&stp 3 GPIO_ACTIVE_LOW>;
+ };
+ wps_green {
+ label = "vgv7519:green:wps";
+ gpios = <&stp 4 GPIO_ACTIVE_LOW>;
+ };
+ upgrade {
+ label = "vgv7519:blue:upgrade";
+ gpios = <&stp 5 GPIO_ACTIVE_LOW>;
+ };
+ tv {
+ label = "vgv7519:green:tv";
+ gpios = <&stp 6 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: internet_green {
+ label = "vgv7519:green:internet";
+ gpios = <&stp 7 GPIO_ACTIVE_LOW>;
+ };
+ internet_red {
+ label = "vgv7519:red:internet";
+ gpios = <&stp 8 GPIO_ACTIVE_LOW>;
+ };
+ broadband_red {
+ label = "vgv7519:red:broadband";
+ gpios = <&stp 9 GPIO_ACTIVE_LOW>;
+ };
+ broadband_green: broadband_green {
+ label = "vgv7519:green:broadband";
+ gpios = <&stp 10 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "vgv7519:green:voice";
+ gpios = <&stp 11 GPIO_ACTIVE_LOW>;
+ };
+ wireless_red {
+ label = "vgv7519:red:wireless";
+ gpios = <&stp 12 GPIO_ACTIVE_LOW>;
+ };
+ wireless_green: wireless_green {
+ label = "vgv7519:green:wireless";
+ gpios = <&stp 13 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power2 {
+ label = "vgv7519:green:power";
+ gpios = <&stp 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power {
+ label = "vgv7519:red:power";
+ gpios = <&stp 15 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 32 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&boardconfig 0x16>;
+ mtd-mac-address-increment = <1>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy1>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "gmii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@5 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy5>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ stp {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ lantiq,pull = <0>;
+ };
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ pci-rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ gphy-leds {
+ lantiq,groups = "gphy0 led1", "gphy1 led0";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>, <1 0x800000 0x800000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ boardconfig: partition@40000 {
+ label = "board_config";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@1814,3091 {
+ compatible = "pci1814,3091";
+ reg = <0x7000 0 0 0 0>;
+ ralink,mtd-eeprom = <&boardconfig 0x410>;
+ ralink,mtd-eeprom-swap;
+ mtd-mac-address = <&boardconfig 0x16>;
+ mtd-mac-address-increment = <1>;
+ };
+};
+
+&pcie0 {
+ status = "disabled";
+};
+
+&stp {
+ status = "okay";
+ lantiq,shadow = <0xffff>;
+ lantiq,groups = <0x3>;
+ lantiq,dsl = <0x0>;
+ lantiq,phy1 = <0x0>;
+ lantiq,phy2 = <0x0>;
+ /* lantiq,rising; */
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 30 GPIO_ACTIVE_HIGH //fxs relay
+ &gpio 31 GPIO_ACTIVE_HIGH //still unknown
+ &gpio 3 GPIO_ACTIVE_HIGH>; //reset_slic?
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519BRN.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519BRN.dts
new file mode 100644
index 0000000000..1e6a65ebb0
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519BRN.dts
@@ -0,0 +1,70 @@
+/dts-v1/;
+
+#include "VGV7519.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7519-brn", "arcadyan,vgv7519", "lantiq,xway", "lantiq,vr9";
+ model = "KPN Experiabox V8";
+};
+
+&localbus {
+ nor@0 {
+ partitions {
+ partition@0 {
+ label = "Boot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "Certificate";
+ reg = <0x50000 0x10000>;
+ read-only;
+ };
+ partition@60000 {
+ label = "Special_Area";
+ reg = <0x60000 0x10000>;
+ read-only;
+ };
+
+ partition@70000 {
+ label = " Reserve_0";
+ reg = <0x70000 0x10000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "Code_Image_0";
+ reg = <0x80000 0x780000>;
+ brnboot,root-id = <0x00>;
+ read-only;
+ };
+
+ partition@4000000 {
+ compatible = "brnboot,root-selector";
+ label = "Primary_Setting";
+ reg = <0x4000000 0x10000>;
+ read-only;
+ };
+
+ partition@4010000 {
+ label = "Configuration";
+ reg = <0x4010000 0x60000>;
+ read-only;
+ };
+
+ partition@4070000 {
+ label = " Reserve_1";
+ reg = <0x4070000 0x10000>;
+ read-only;
+ };
+
+ partition@4080000 {
+ label = "Code_Image_1";
+ reg = <0x4080000 0x780000>;
+ brnboot,root-id = <0x01>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519NOR.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519NOR.dts
new file mode 100644
index 0000000000..4bdf0bc753
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VGV7519NOR.dts
@@ -0,0 +1,29 @@
+/dts-v1/;
+
+#include "VGV7519.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7519-nor", "arcadyan,vgv7519", "lantiq,xway", "lantiq,vr9";
+ model = "KPN Experiabox V8";
+};
+
+&localbus {
+ nor@0 {
+ partitions {
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+ partition@60000 {
+ label = "uboot_env";
+ reg = <0x60000 0x10000>;
+ read-only;
+ };
+ partition@80000 {
+ label = "firmware";
+ reg = <0x80000 0xf80000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VR200.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VR200.dts
new file mode 100644
index 0000000000..74f666ddfd
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VR200.dts
@@ -0,0 +1,94 @@
+/dts-v1/;
+
+#include "VR200.dtsi"
+
+/ {
+ compatible = "tplink,vr200", "lantiq,xway", "lantiq,vr9";
+ model = "TP-LINK Archer VR200";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &internet;
+ led-wifi = &wlan5g;
+
+ led-usb = &led_usb;
+ led-usb2 = &led_usb;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_RFKILL>;
+ linux,input-type = <EV_SW>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ led {
+ label = "led";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_LIGHTS_TOGGLE>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "vr200:blue:power";
+ gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "vr200:blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet: internet {
+ label = "vr200:blue:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "vr200:blue:usb";
+ gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+ };
+ eth {
+ label = "vr200:blue:lan";
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ };
+ wlan {
+ label = "vr200:blue:wlan";
+ gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+ };
+ wlan5g: wifi {
+ label = "vr200:blue:wlan5g";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ led_wps {
+ label = "vr200:blue:wps";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VR200.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/VR200.dtsi
new file mode 100644
index 0000000000..dcfa86125d
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VR200.dtsi
@@ -0,0 +1,219 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ memory@0 {
+ reg = <0x0 0x7f00000>;
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mtd-mac-address = <&romfile 0xf100>;
+ lantiq,switch;
+
+ ethernet@0 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <0>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ // gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+ };
+ 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";
+ reg = <0>;
+
+ 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";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ 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>;
+ };
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&spi {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <33250000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x20000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@20000 {
+ reg = <0x20000 0xf90000>;
+ label = "firmware";
+ };
+
+ partition@fb0000 {
+ reg = <0xfb0000 0x10000>;
+ label = "radioDECT";
+ read-only;
+ };
+
+ partition@fc0000 {
+ reg = <0xfc0000 0x10000>;
+ label = "config";
+ read-only;
+ };
+
+ romfile: partition@fd0000 {
+ reg = <0xfd0000 0x10000>;
+ label = "romfile";
+ read-only;
+ };
+
+ partition@fe0000 {
+ reg = <0xfe0000 0x10000>;
+ label = "rom";
+ read-only;
+ };
+
+ partition@ff0000 {
+ reg = <0xff0000 0x10000>;
+ label = "radio";
+ read-only;
+ };
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/VR200v.dts b/target/linux/lantiq/files/arch/mips/boot/dts/VR200v.dts
new file mode 100644
index 0000000000..dc65dbfc36
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/VR200v.dts
@@ -0,0 +1,101 @@
+/dts-v1/;
+
+#include "VR200.dtsi"
+
+/ {
+ compatible = "tplink,vr200v", "lantiq,xway", "lantiq,vr9";
+ model = "TP-LINK Archer VR200v";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 mem=126M vpe1_load_addr=0x87e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";
+ };
+
+ aliases {
+ led-boot = &power;
+ led-failsafe = &power;
+ led-running = &power;
+ led-upgrade = &power;
+
+ led-dsl = &dsl;
+ led-internet = &internet;
+ led-wifi = &wlan5g;
+
+ led-usb = &led_usb;
+ led-usb2 = &led_usb;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_RFKILL>;
+ linux,input-type = <EV_SW>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ dect_paging {
+ label = "dect_paging";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "vr200v:blue:power";
+ gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "vr200v:blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet: internet {
+ label = "vr200v:blue:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "vr200v:blue:usb";
+ gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+ };
+ eth {
+ label = "vr200v:blue:lan";
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ };
+ wlan {
+ label = "vr200v:blue:wlan";
+ gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+ };
+ wlan5g: wifi {
+ label = "vr200v:blue:wlan5g";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ phone {
+ label = "vr200v:blue:phone";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 30 GPIO_ACTIVE_HIGH //fxs relay
+ &gpio 31 GPIO_ACTIVE_HIGH //still unknown
+ &gpio 3 GPIO_ACTIVE_HIGH>; //reset_slic?
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/WBMR.dts b/target/linux/lantiq/files/arch/mips/boot/dts/WBMR.dts
new file mode 100644
index 0000000000..9759b311b7
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/WBMR.dts
@@ -0,0 +1,200 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "buffalo,wbmr-hp-g300h", "lantiq,xway", "lantiq,ar9";
+ model = "Buffalo WBMR-HP-G300H";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+
+ led-dsl = &dsl;
+ led-internet = &online_green;
+ led-usb = &led_usb;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ eject {
+ label = "eject";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_EJECTCD>;
+ };
+ movie {
+ label = "movie";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VIDEO>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "wbmr:green:power";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "wbmr:red:power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ security {
+ label = "wbmr:yellow:security";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "wbmr:green:wireless";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "wbmr:green:dsl";
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ };
+ online_green: online {
+ label = "wbmr:green:internet";
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "wbmr:red:internet";
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ };
+ movie {
+ label = "wbmr:blue:movie";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "wbmr:green:usb";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 36 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ 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>;
+ };
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rgmii";
+ mtd-mac-address = <&boardconfig 0x10024>;
+};
+
+&pci0 {
+ status = "okay";
+};
+
+&localbus {
+ nor@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "uboot_env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x60000 0x1f20000>;
+ };
+
+ boardconfig: partition@1fc0000 {
+ label = "board";
+ reg = <0x1fc0000 0x20000>;
+ read-only;
+ };
+
+ partition@1fe0000 {
+ label = "calibration";
+ reg = <0x1fe0000 0x20000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/WBMR300.dts b/target/linux/lantiq/files/arch/mips/boot/dts/WBMR300.dts
new file mode 100644
index 0000000000..5dcf13912e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/WBMR300.dts
@@ -0,0 +1,330 @@
+/dts-v1/;
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "buffalo,wbmr-300hpd", "lantiq,xway", "lantiq,vr9";
+ model = "Buffalo WBMR-300HPD";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ aliases {
+ led-boot = &power_g;
+ led-failsafe = &diag_r;
+ led-running = &power_g;
+ led-upgrade = &power_g;
+
+ led-dsl = &dsl;
+ led-internet = &router_g;
+ led-wifi = &wifi_g;
+ };
+
+ memory@0 {
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio_poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ power {
+ label = "power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 31 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ auto {
+ label = "auto";
+ gpios = <&gpio 48 GPIO_ACTIVE_HIGH>;
+ linux,code = <BTN_0>;
+ linux,input-type = <EV_SW>;
+ };
+
+ router {
+ label = "router";
+ gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+ linux,code = <BTN_1>;
+ linux,input-type = <EV_SW>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ diag_r: diag_r {
+ label = "wbmr300:red:diag";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ default_state = "off";
+ };
+
+ wifi_g: wifi_g {
+ label = "wbmr300:green:wifi";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ dsl: dsl {
+ label = "dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ router_y: router_y {
+ label = "wbmr300:yellow:router";
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ wifi_y: wifi_y {
+ label = "wbmr300:yellow:wifi";
+ gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan1: lan1 {
+ label = "wbmr300:green:lan1";
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ };
+
+ wan: wan {
+ label = "wbmr300:green:wan";
+ gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan3: lan3 {
+ label = "wbmr300:green:lan3";
+ gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan2: lan2 {
+ label = "wbmr300:green:lan2";
+ gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ };
+
+ internet_g: internet_g {
+ label = "wbmr300:green:internet";
+ gpios = <&gpio 34 GPIO_ACTIVE_HIGH>;
+ };
+
+ internet_y: internet_y {
+ label = "wbmr300:yellow:internet";
+ gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
+ };
+
+ router_g: router_g {
+ label = "wbmr300:green:router";
+ gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
+ };
+
+ power_g: power_g {
+ label = "wbmr300:green:power";
+ gpios = <&gpio 49 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&eth0 {
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ lantiq,switch;
+
+ ethernet@1 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "mii";
+ phy-handle = <&phy13>;
+ };
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <5>;
+ phy-mode = "mii";
+ phy-handle = <&phy14>;
+ };
+ ethernet@3 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "mii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <3>;
+ phy-mode = "mii";
+ phy-handle = <&phy12>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ reg = <0>;
+
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy12: ethernet-phy@12 {
+ reg = <0x12>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ phy14: ethernet-phy@14 {
+ reg = <0x14>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ phy-rst {
+ lantiq,pins = "io42";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ pins_spi_default: pins_spi_default {
+ spi_in {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ spi_out {
+ lantiq,groups = "spi_do", "spi_clk",
+ "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pins_spi_default>;
+
+ m25p80@4 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <4 0>;
+ spi-max-frequency = <20000000>;
+
+ partition@0 {
+ reg = <0x0 0x10000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@10000 {
+ reg = <0x10000 0x10000>;
+ label = "gphyfirmware";
+ read-only;
+ };
+
+ partition@20000 {
+ reg = <0x20000 0x80000>;
+ label = "dsl_fw";
+ };
+
+ partition@de0000 {
+ reg = <0xa0000 0xf40000>;
+ label = "firmware";
+ };
+
+ partition@fe0000 {
+ reg = <0xfe0000 0x10000>;
+ label = "sysconfig";
+ read-only;
+ };
+
+ partition@ff0000 {
+ reg = <0xff0000 0x2000>;
+ label = "ubootconfig";
+ };
+
+ partition@ff3000 {
+ reg = <0xff3000 0x2000>;
+ label = "board_config";
+ read-only;
+ };
+ };
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/amazonse.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/amazonse.dtsi
new file mode 100644
index 0000000000..f216adf36f
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/amazonse.dtsi
@@ -0,0 +1,204 @@
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,xway", "lantiq,ase";
+
+ aliases {
+ serial0 = &asc1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips4Kc";
+ };
+ };
+
+ memory@0 {
+ device_type = "memory";
+ };
+
+ 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", "simple-bus";
+ 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>;
+ lantiq,eiu-irqs = <29 30 31>;
+ };
+
+ 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,ase-rcu", "simple-mfd", "syscon";
+ reg = <0x203000 0x1000>;
+ ranges = <0x0 0x203000 0x100>;
+ big-endian;
+
+ reset: reset-controller@10 {
+ compatible = "lantiq,danube-reset";
+ reg = <0x10 4>, <0x14 4>;
+
+ #reset-cells = <2>;
+ };
+
+ usb_phy: usb2-phy@18 {
+ compatible = "lantiq,ase-usb2-phy";
+ reg = <0x18 4>;
+ status = "disabled";
+
+ resets = <&reset 4 4>;
+ reset-names = "ctrl";
+ #phy-cells = <0>;
+ };
+
+ reboot@10 {
+ compatible = "syscon-reboot";
+ reg = <0x10 4>;
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0x40000000>;
+ };
+ };
+ };
+
+ fpi@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,fpi", "simple-bus";
+ ranges = <0x0 0x10000000 0xeefffff>;
+ reg = <0x10000000 0xef00000>;
+
+ localbus: localbus@0 {
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
+ 1 0 0x4000000 0x4000010>; /* addsel1 */
+ compatible = "lantiq,localbus", "simple-bus";
+ };
+
+ spi: spi@e100800 {
+ compatible = "lantiq,ase-spi";
+ reg = <0xe100800 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <24 25 26>;
+ interrupt-names = "spi_rx", "spi_tx", "spi_err",
+ "spi_frm";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+ };
+
+ gptu@e100a00 {
+ compatible = "lantiq,gptu-xway";
+ reg = <0xe100a00 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <33 34 35 36 37 38>;
+ };
+
+ gpio: pinmux@e100b10 {
+ compatible = "lantiq,ase-pinctrl";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0xe100b10 0xa0>;
+ };
+
+ asc1: serial@e100c00 {
+ compatible = "lantiq,asc";
+ reg = <0xe100c00 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <72 74 75>;
+ };
+
+ mei@e116000 {
+ compatible = "lantiq,mei-xway";
+ interrupt-parent = <&icu0>;
+ interrupts = <81>;
+ };
+
+ usb: usb@e101000 {
+ compatible = "lantiq,ase-usb";
+ reg = <0xe101000 0x1000
+ 0xe120000 0x3f000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <39>;
+ dr_mode = "host";
+ phys = <&usb_phy>;
+ phy-names = "usb2-phy";
+ status = "disabled";
+ };
+
+ dma0: dma@e104100 {
+ compatible = "lantiq,dma-xway";
+ reg = <0xe104100 0x800>;
+ };
+
+ ebu0: ebu@e105300 {
+ compatible = "lantiq,ebu-xway";
+ reg = <0xe105300 0x100>;
+ };
+
+ ppe@e234000 {
+ compatible = "lantiq,ppe-ase";
+ interrupt-parent = <&icu0>;
+ interrupts = <85>;
+ };
+
+ gsw: 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/files/arch/mips/boot/dts/ar9.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/ar9.dtsi
new file mode 100644
index 0000000000..48e0d95d63
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/ar9.dtsi
@@ -0,0 +1,268 @@
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,xway", "lantiq,ar9";
+
+ aliases {
+ serial0 = &asc1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips34K";
+ };
+ };
+
+ memory@0 {
+ device_type = "memory";
+ };
+
+ 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,xrx100-wdt", "lantiq,xrx100-wdt";
+ reg = <0x803f0 0x10>;
+
+ regmap = <&rcu0>;
+ };
+ };
+
+ sram@1f000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,sram", "simple-bus";
+ 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>;
+ lantiq,eiu-irqs = <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,xrx100-rcu", "simple-mfd", "syscon";
+ reg = <0x203000 0x1000>;
+ ranges = <0x0 0x203000 0x100>;
+ big-endian;
+
+ reset: reset-controller@10 {
+ compatible = "lantiq,xrx100-reset", "lantiq,danube-reset";
+ reg = <0x10 4>, <0x14 4>;
+
+ #reset-cells = <2>;
+ };
+
+ usb_phy0: usb2-phy@18 {
+ compatible = "lantiq,xrx100-usb2-phy";
+ reg = <0x18 4>;
+ status = "disabled";
+
+ resets = <&reset 4 4>;
+ reset-names = "ctrl";
+ #phy-cells = <0>;
+ };
+
+ usb_phy1: usb2-phy@34 {
+ compatible = "lantiq,xrx100-usb2-phy";
+ reg = <0x34 4>;
+ status = "disabled";
+
+ resets = <&reset 28 28>;
+ reset-names = "ctrl";
+ #phy-cells = <0>;
+ };
+
+ reboot@10 {
+ compatible = "syscon-reboot";
+ reg = <0x10 4>;
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0x40000000>;
+ };
+ };
+ };
+
+ fpi@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,fpi", "simple-bus";
+ ranges = <0x0 0x10000000 0xeefffff>;
+ reg = <0x10000000 0xef00000>;
+
+ localbus: 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>;
+ };
+
+ asc0: serial@e100400 {
+ compatible = "lantiq,asc";
+ reg = <0xe100400 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <104 105 106>;
+ status = "disabled";
+ };
+
+ spi: spi@e100800 {
+ compatible = "lantiq,xrx100-spi";
+ reg = <0xe100800 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <22 23 24>;
+ interrupt-names = "spi_rx", "spi_tx", "spi_err",
+ "spi_frm";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+ };
+
+ gpio: pinmux@e100b10 {
+ compatible = "lantiq,xrx100-pinctrl";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0xe100b10 0xa0>;
+ };
+
+ stp: stp@e100bb0 {
+ #gpio-cells = <2>;
+ compatible = "lantiq,gpio-stp-xway";
+ gpio-controller;
+ reg = <0xe100bb0 0x40>;
+ status = "disabled";
+ };
+
+ asc1: serial@e100c00 {
+ compatible = "lantiq,asc";
+ reg = <0xe100c00 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <112 113 114>;
+ };
+
+ usb0: usb@e101000 {
+ compatible = "lantiq,arx100-usb";
+ reg = <0xe101000 0x1000
+ 0xe120000 0x3f000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <62 91>;
+ dr_mode = "host";
+ phys = <&usb_phy0>;
+ phy-names = "usb2-phy";
+ status = "disabled";
+ };
+
+ usb1: usb@e106000 {
+ compatible = "lantiq,arx100-usb";
+ reg = <0xe106000 0x1000
+ 0xe1e0000 0x3f000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <91>;
+ dr_mode = "host";
+ phys = <&usb_phy1>;
+ phy-names = "usb2-phy";
+ status = "disabled";
+ };
+
+ deu@e103100 {
+ compatible = "lantiq,deu-arx100";
+ 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>;
+ };
+
+ gsw: etop@e180000 {
+ compatible = "lantiq,etop-xway";
+ reg = <0xe180000 0x40000
+ 0xe108000 0x200>;
+ interrupt-parent = <&icu0>;
+ interrupts = <73 72>;
+ mac-address = [ 00 11 22 33 44 55 ];
+ };
+
+ ppe@e234000 {
+ compatible = "lantiq,ppe-arx100";
+ 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-arx100";
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/danube.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/danube.dtsi
new file mode 100644
index 0000000000..af4c795af2
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/danube.dtsi
@@ -0,0 +1,252 @@
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,xway", "lantiq,danube";
+
+ aliases {
+ serial0 = &asc1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips24Kc";
+ };
+ };
+
+ memory@0 {
+ device_type = "memory";
+ };
+
+ 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", "simple-bus";
+ 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>;
+ lantiq,eiu-irqs = <166 135 66>;
+ };
+
+ pmu0: pmu@102000 {
+ compatible = "lantiq,pmu-xway";
+ reg = <0x102000 0x1000>;
+ };
+
+ cgu0: cgu@103000 {
+ compatible = "lantiq,cgu-xway";
+ reg = <0x103000 0x1000>;
+ #clock-cells = <1>;
+ };
+
+ vmmc: vmmc@107000 {
+ status = "disabled";
+ compatible = "lantiq,vmmc-xway";
+ reg = <0x103000 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <150 151 152 153 154 155>;
+ };
+
+ rcu0: rcu@203000 {
+ compatible = "lantiq,danube-rcu", "simple-mfd", "syscon";
+ reg = <0x203000 0x1000>;
+ ranges = <0x0 0x203000 0x100>;
+ big-endian;
+
+ reset: reset-controller@10 {
+ compatible = "lantiq,danube-reset";
+ reg = <0x10 4>, <0x14 4>;
+
+ #reset-cells = <2>;
+ };
+
+ usb_phy: usb2-phy@18 {
+ compatible = "lantiq,danube-usb2-phy";
+ reg = <0x18 4>;
+ status = "disabled";
+
+ resets = <&reset 4 4>;
+ reset-names = "ctrl";
+ #phy-cells = <0>;
+ };
+
+ reboot@10 {
+ compatible = "syscon-reboot";
+ reg = <0x10 4>;
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0x40000000>;
+ };
+ };
+ };
+
+ fpi@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,fpi", "simple-bus";
+ ranges = <0x0 0x10000000 0xeefffff>;
+ reg = <0x10000000 0xef00000>;
+
+ localbus: localbus@0 {
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
+ 1 0 0x4000000 0x4000010>; /* addsel1 */
+ compatible = "lantiq,localbus", "simple-bus";
+
+ gpiomm: gpiomm@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ status = "disabled";
+ };
+ };
+
+ gptu@e100a00 {
+ compatible = "lantiq,gptu-xway";
+ reg = <0xe100a00 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <126 127 128 129 130 131>;
+ };
+
+ 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,danube-pinctrl";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0xe100b10 0xa0>;
+ };
+
+ asc1: serial@e100c00 {
+ compatible = "lantiq,asc";
+ reg = <0xe100c00 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <112 113 114>;
+ };
+
+ usb: usb@e101000 {
+ compatible = "lantiq,danube-usb";
+ reg = <0xe101000 0x1000
+ 0xe120000 0x3f000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <62>;
+ dr_mode = "host";
+ phys = <&usb_phy>;
+ phy-names = "usb2-phy";
+ status = "disabled";
+ };
+
+ deu@e103100 {
+ compatible = "lantiq,deu-danube";
+ 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>;
+ };
+
+ gsw: etop@e180000 {
+ compatible = "lantiq,etop-xway";
+ reg = <0xe180000 0x40000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <73 78>;
+ mac-address = [ 00 11 22 33 44 55 ];
+ };
+
+ 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>;
+ 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>; /* slot 14, irq 30 */
+ req-mask = <0x1>; /* GNT1 */
+ };
+ };
+
+ adsl {
+ compatible = "lantiq,adsl-danube";
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/falcon-sflash-16M.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/falcon-sflash-16M.dtsi
new file mode 100644
index 0000000000..d95acc21ef
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/falcon-sflash-16M.dtsi
@@ -0,0 +1,37 @@
+
+&ebu_cs0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,sflash-falcon", "simple-bus";
+
+ flash@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spansion,s25fl129p0", "spansion,s25fl129p1";
+ reg = <0 0>;
+ linux,mtd-name = "sflash";
+ spi-max-frequency = <80000000>;
+ m25p,fast-read;
+
+ partition@0 {
+ reg = <0x0 0x40000>;
+ label = "uboot";
+ read-only;
+ };
+
+ partition@40000 {
+ reg = <0x40000 0x80000>;
+ label = "uboot_env";
+ };
+
+ partition@C0000 {
+ reg = <0xC0000 0x740000>;
+ label = "image0";
+ };
+
+ partition@800000 {
+ reg = <0x800000 0x800000>;
+ label = "image1";
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/falcon.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/falcon.dtsi
new file mode 100644
index 0000000000..98f71819a2
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/falcon.dtsi
@@ -0,0 +1,392 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,falcon";
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips34kc";
+ };
+ };
+
+ aliases {
+ serial0 = &serial0;
+ serial1 = &serial1;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ gpio2 = &gpio2;
+ gpio3 = &gpio3;
+ gpio4 = &gpio4;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ clocks {
+ compatible = "simple-bus";
+
+ cpu_clk: cpu {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <400000000>;
+ clock-output-names = "cpu";
+ };
+
+ io_clk: io {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <200000000>;
+ clock-output-names = "io";
+ };
+
+ fpi_clk: fpi {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <100000000>;
+ clock-output-names = "fpi";
+ };
+ };
+
+ ebu_cs0: localbus@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,localbus", "simple-bus";
+ reg = <0x10000000 0x4000000>;
+ ranges = <0x0 0x10000000 0x4000000>;
+ };
+ ebu_cs1: localbus@14000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,localbus", "simple-bus";
+ reg = <0x14000000 0x4000000>;
+ ranges = <0x0 0x14000000 0x4000000>;
+ };
+
+ ebu@18000000 {
+ compatible = "lantiq,ebu-falcon";
+ reg = <0x18000000 0x100>;
+ };
+
+ sbs2@1D000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,sysb2", "simple-bus";
+ reg = <0x1D000000 0x1000000>;
+ ranges = <0x0 0x1D000000 0x1000000>;
+
+ clock_sysgpe: clock-controller@700000 {
+ compatible = "lantiq,sysgpe-falcon";
+ reg = <0x700000 0x100>;
+ #clock-cells = <1>;
+ };
+
+ mps@4000 {
+ compatible = "lantiq,mps-falcon", "lantiq,mps-xrx100";
+ reg = <0x4000 0x1000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <154 155>;
+ lantiq,mbx = <&mpsmbx>;
+ };
+
+ gpio0: gpio@810000 {
+ compatible = "lantiq,falcon-gpio";
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&icu0>;
+ interrupts = <44>;
+ reg = <0x810000 0x80>;
+ clocks = <&clock_syseth 16>;
+ };
+
+ gpio2: gpio@810100 {
+ compatible = "lantiq,falcon-gpio";
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&icu0>;
+ interrupts = <46>;
+ reg = <0x810100 0x80>;
+ clocks = <&clock_syseth 17>;
+ };
+
+ clock_syseth: clock-controller@B00000 {
+ compatible = "lantiq,syseth-falcon";
+ reg = <0xB00000 0x100>;
+ #clock-cells = <1>;
+ };
+
+ pad@B01000 {
+ compatible = "lantiq,pad-falcon";
+ reg = <0xB01000 0x100>;
+ lantiq,bank = <0>;
+ clocks = <&clock_syseth 20>;
+ };
+
+ pad@B02000 {
+ compatible = "lantiq,pad-falcon";
+ reg = <0xB02000 0x100>;
+ lantiq,bank = <2>;
+ clocks = <&clock_syseth 21>;
+ };
+ };
+
+ fpi@1E000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,fpi", "simple-bus";
+ reg = <0x1E000000 0x1000000>;
+ ranges = <0x0 0x1E000000 0x1000000>;
+
+ serial1: serial@100B00 {
+ status = "disabled";
+ compatible = "lantiq,asc";
+ reg = <0x100B00 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <112 113 114>;
+ line = <1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&asc1_pins>;
+ clocks = <&clock_sys1 11>;
+ };
+
+ serial0: serial@100C00 {
+ compatible = "lantiq,asc";
+ reg = <0x100C00 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <104 105 106>;
+ line = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&asc0_pins>;
+ clocks = <&clock_sys1 12>;
+ };
+
+ spi: spi@100D00 {
+ status = "disabled";
+ compatible = "lantiq,falcon-spi", "lantiq,xrx100-spi", "lantiq,spi-lantiq-ssc";
+ interrupts = <22 23 24 25>;
+ interrupt-names = "spi_tx", "spi_rx", "spi_err", "spi_frm";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x100D00 0x100>;
+ interrupt-parent = <&icu0>;
+ clocks = <&clock_sys1 13>;
+ base_cs = <1>;
+ num_cs = <2>;
+ };
+
+ gptc@100E00 {
+ compatible = "lantiq,gptc-falcon";
+ reg = <0x100E00 0x100>;
+ };
+
+ i2c: i2c@200000 {
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,lantiq-i2c";
+ reg = <0x200000 0x10000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <18 19 20 21>;
+ gpios = <&gpio1 7 0 &gpio1 8 0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c_pins>;
+ clocks = <&clock_sys1 14>;
+ };
+
+ gpio1: gpio@800100 {
+ compatible = "lantiq,falcon-gpio";
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&icu0>;
+ interrupts = <45>;
+ reg = <0x800100 0x100>;
+ clocks = <&clock_sys1 16>;
+ };
+
+ gpio3: gpio@800200 {
+ compatible = "lantiq,falcon-gpio";
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&icu0>;
+ interrupts = <47>;
+ reg = <0x800200 0x100>;
+ clocks = <&clock_sys1 17>;
+ };
+
+ gpio4: gpio@800300 {
+ compatible = "lantiq,falcon-gpio";
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&icu0>;
+ interrupts = <48>;
+ reg = <0x800300 0x100>;
+ clocks = <&clock_sys1 18>;
+ };
+
+ pad@800400 {
+ compatible = "lantiq,pad-falcon";
+ reg = <0x800400 0x100>;
+ lantiq,bank = <1>;
+ clocks = <&clock_sys1 20>;
+ };
+
+ pad@800500 {
+ compatible = "lantiq,pad-falcon";
+ reg = <0x800500 0x100>;
+ lantiq,bank = <3>;
+ clocks = <&clock_sys1 21>;
+ };
+
+ pad@800600 {
+ compatible = "lantiq,pad-falcon";
+ reg = <0x800600 0x100>;
+ lantiq,bank = <4>;
+ clocks = <&clock_sys1 22>;
+ };
+
+ status@802000 {
+ compatible = "lantiq,status-falcon";
+ reg = <0x802000 0x80>;
+ };
+
+ clock_sys1: clock-controller@F00000 {
+ compatible = "lantiq,sys1-falcon";
+ reg = <0xF00000 0x100>;
+ #clock-cells = <1>;
+ };
+ };
+
+ sbs0@1F000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "simple-bus";
+ reg = <0x1F000000 0x400000>;
+ ranges = <0x0 0x1F000000 0x400000>;
+
+ mpsmbx: mpsmbx@200000 {
+ reg = <0x200000 0x200>;
+ };
+ };
+
+ sbs1@1F700000 {
+
+ };
+
+ biu@1F800000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,biu", "simple-bus";
+ reg = <0x1F800000 0x800000>;
+ ranges = <0x0 0x1F800000 0x800000>;
+
+ 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>;
+ clocks = <&io_clk>; /* currently no effect */
+ };
+ };
+
+ pinctrl {
+ compatible = "lantiq,pinctrl-falcon";
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinctrl0 {
+ /*ntr {
+ lantiq,groups = "ntr8k";
+ lantiq,function = "ntr";
+ };*/
+ hrst {
+ lantiq,groups = "hrst";
+ lantiq,function = "rst";
+ };
+ };
+
+ asc0_pins: asc0 {
+ asc0 {
+ lantiq,groups = "asc0";
+ lantiq,function = "asc";
+ };
+ };
+ asc1_pins: asc1 {
+ asc1 {
+ lantiq,groups = "asc1";
+ lantiq,function = "asc";
+ };
+ };
+ i2c_pins: i2c {
+ i2c {
+ lantiq,groups = "i2c";
+ lantiq,function = "i2c";
+ };
+ };
+ bootled_pins: bootled {
+ bootled {
+ lantiq,groups = "bootled";
+ lantiq,function = "led";
+ };
+ };
+ ntr_ntr8k: ntr8k {
+ ntr8k {
+ lantiq,groups = "ntr8k";
+ lantiq,function = "ntr";
+ };
+ };
+ ntr_pps: pps {
+ pps {
+ lantiq,groups = "pps";
+ lantiq,function = "ntr";
+ };
+ };
+ ntr_gpio: gpio {
+ gpio {
+ lantiq,pins = "io5";
+ lantiq,mux = <1>;
+ lantiq,output = <0>;
+ };
+ };
+ slic_pins: slic {
+ slic {
+ lantiq,groups = "slic";
+ lantiq,function = "slic";
+ };
+ };
+ };
+
+ pinselect-ntr {
+ compatible = "lantiq,onu-ntr","lantiq,pinselect-ntr";
+ pinctrl-names = "ntr8k", "pps", "gpio";
+ pinctrl-0 = <&ntr_ntr8k>;
+ pinctrl-1 = <&ntr_pps>;
+ pinctrl-2 = <&ntr_gpio>;
+ };
+
+ pinselect-asc1 {
+ compatible = "lantiq,onu-asc1","lantiq,pinselect-asc1";
+ pinctrl-names = "default", "asc1";
+ pinctrl-0 = <&slic_pins>;
+ pinctrl-1 = <&asc1_pins>;
+ };
+
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/vr9.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/vr9.dtsi
new file mode 100644
index 0000000000..6e8f0d1300
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/vr9.dtsi
@@ -0,0 +1,341 @@
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,xway", "lantiq,vr9";
+
+ aliases {
+ serial0 = &asc1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ cpus {
+ cpu@0 {
+ compatible = "mips,mips34Kc";
+ };
+ };
+
+ memory@0 {
+ device_type = "memory";
+ };
+
+ cputemp@0 {
+ compatible = "lantiq,cputemp";
+ };
+
+ 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,xrx100-wdt", "lantiq,xrx100-wdt";
+ reg = <0x803f0 0x10>;
+
+ regmap = <&rcu0>;
+ };
+ };
+
+ sram@1f000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,sram", "simple-bus";
+ 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>;
+ lantiq,eiu-irqs = <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>;
+ };
+
+ dcdc@106a00 {
+ compatible = "lantiq,dcdc-xrx200";
+ reg = <0x106a00 0x200>;
+ };
+
+ vmmc: vmmc@103000 {
+ status = "disabled";
+ compatible = "lantiq,vmmc-xway";
+ reg = <0x103000 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <150 151 152 153 154 155>;
+ };
+
+ rcu0: rcu@203000 {
+ compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
+ reg = <0x203000 0x100>;
+ ranges = <0x0 0x203000 0x100>;
+ big-endian;
+
+ gphy0: gphy@20 {
+ compatible = "lantiq,xrx200-gphy";
+ reg = <0x20 0x4>;
+
+ resets = <&reset0 31 30>, <&reset1 7 7>;
+ reset-names = "gphy", "gphy2";
+ };
+
+ gphy1: gphy@68 {
+ compatible = "lantiq,xrx200-gphy";
+ reg = <0x68 0x4>;
+
+ resets = <&reset0 29 28>, <&reset1 6 6>;
+ reset-names = "gphy", "gphy2";
+ };
+
+ reset0: reset-controller@10 {
+ compatible = "lantiq,xrx200-reset";
+ reg = <0x10 4>, <0x14 4>;
+
+ #reset-cells = <2>;
+ };
+
+ reset1: reset-controller@48 {
+ compatible = "lantiq,xrx200-reset";
+ reg = <0x48 4>, <0x24 4>;
+
+ #reset-cells = <2>;
+ };
+
+ usb_phy0: usb2-phy@18 {
+ compatible = "lantiq,xrx200-usb2-phy";
+ reg = <0x18 4>, <0x38 4>;
+ status = "disabled";
+
+ resets = <&reset1 4 4>, <&reset0 4 4>;
+ reset-names = "phy", "ctrl";
+ #phy-cells = <0>;
+ };
+
+ usb_phy1: usb2-phy@34 {
+ compatible = "lantiq,xrx200-usb2-phy";
+ reg = <0x34 4>, <0x3c 4>;
+ status = "disabled";
+
+ resets = <&reset1 5 5>, <&reset0 4 4>;
+ reset-names = "phy", "ctrl";
+ #phy-cells = <0>;
+ };
+
+ reboot@10 {
+ compatible = "syscon-reboot";
+ reg = <0x10 4>;
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0xe0000000>;
+ };
+ };
+ };
+
+ fpi@10000000 {
+ compatible = "lantiq,xrx200-fpi", "simple-bus";
+ ranges = <0x0 0x10000000 0xf000000>;
+ reg = <0x1f400000 0x1000>,
+ <0x10000000 0xf000000>;
+ regmap = <&rcu0>;
+ offset-endianness = <0x4c>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ localbus: 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>;
+ };
+
+ usif: usif@da00000 {
+ compatible = "lantiq,usif";
+ reg = <0xda00000 0x1000000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <29 125 107 108 109 110>;
+ status = "disabled";
+ };
+
+ spi: spi@e100800 {
+ compatible = "lantiq,xrx200-spi", "lantiq,xrx100-spi";
+ reg = <0xe100800 0x100>;
+ interrupt-parent = <&icu0>;
+ interrupts = <22 23 24>;
+ interrupt-names = "spi_rx", "spi_tx", "spi_err",
+ "spi_frm";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+ };
+
+ gpio: pinmux@e100b10 {
+ compatible = "lantiq,xrx200-pinctrl";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0xe100b10 0xa0>;
+ };
+
+ stp: stp@e100bb0 {
+ status = "disabled";
+ compatible = "lantiq,gpio-stp-xway";
+ reg = <0xe100bb0 0x40>;
+ #gpio-cells = <2>;
+ gpio-controller;
+
+ lantiq,shadow = <0xffffff>;
+ lantiq,groups = <0x7>;
+ lantiq,dsl = <0x0>;
+ lantiq,phy1 = <0x0>;
+ lantiq,phy2 = <0x0>;
+ };
+
+ asc1: serial@e100c00 {
+ compatible = "lantiq,asc";
+ reg = <0xe100c00 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <112 113 114>;
+ };
+
+ deu@e103100 {
+ compatible = "lantiq,deu-xrx200";
+ reg = <0xe103100 0xf00>;
+ };
+
+ dma0: dma@e104100 {
+ compatible = "lantiq,dma-xway";
+ reg = <0xe104100 0x800>;
+ };
+
+ ebu0: ebu@e105300 {
+ compatible = "lantiq,ebu-xway";
+ reg = <0xe105300 0x100>;
+ };
+
+ usb0: usb@e101000 {
+ status = "disabled";
+ compatible = "lantiq,xrx200-usb";
+ reg = <0xe101000 0x1000
+ 0xe120000 0x3f000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <62 91>;
+ dr_mode = "host";
+ phys = <&usb_phy0>;
+ phy-names = "usb2-phy";
+ };
+
+ usb1: usb@e106000 {
+ status = "disabled";
+ compatible = "lantiq,xrx200-usb";
+ reg = <0xe106000 0x1000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <91>;
+ dr_mode = "host";
+ phys = <&usb_phy1>;
+ phy-names = "usb2-phy";
+ };
+
+ eth0: 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 = <75 73 72>;
+ resets = <&reset0 21 16>, <&reset0 8 8>;
+ reset-names = "switch", "ppe";
+ lantiq,phys = <&gphy0>, <&gphy1>;
+ };
+
+ mei@e116000 {
+ compatible = "lantiq,mei-xrx200";
+ reg = <0xe116000 0x9c>;
+ interrupt-parent = <&icu0>;
+ interrupts = <63>;
+ };
+
+ ppe@e234000 {
+ compatible = "lantiq,ppe-xrx200";
+ interrupt-parent = <&icu0>;
+ interrupts = <96>;
+ resets = <&reset0 3 3>, <&reset0 11 11>, <&reset0 23 23>;
+ reset-names = "dsp", "dfe", "tc";
+ };
+
+ pcie0: pcie@d900000 {
+ compatible = "lantiq,pcie-xrx200";
+
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+
+ interrupt-parent = <&icu0>;
+ interrupts = <161 144>;
+
+ device_type = "pci";
+
+ gpio-reset = <&gpio 38 GPIO_ACTIVE_HIGH>;
+ };
+
+ 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>; /* slot 14, irq 30 */
+ req-mask = <0x1>; /* GNT1 */
+ };
+ };
+
+ vdsl {
+ compatible = "lantiq,vdsl-vrx200";
+ };
+};