aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/files
diff options
context:
space:
mode:
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-10-19 15:57:40 +0200
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-10-19 15:57:40 +0200
commit21cf17bb4ce5cb0cacb15d3659a544c215590001 (patch)
tree83e0149d930001faa1bc984f143417a314b1a77f /target/linux/lantiq/files
parentf47cb405cafd57a25fceb7630af969e08b2f671c (diff)
downloadupstream-21cf17bb4ce5cb0cacb15d3659a544c215590001.tar.gz
upstream-21cf17bb4ce5cb0cacb15d3659a544c215590001.tar.bz2
upstream-21cf17bb4ce5cb0cacb15d3659a544c215590001.zip
lantiq: remove support for kernel 4.19
The target uses 5.4 as default kernel since 06/2020. Kernel 4.19 support is not really maintained anymore, it does not seem to be needed and upcoming changes (mainly DSA) will break backward-compatibility anyway. Thus, make maintaining of old stuff and reviewing of new stuff easier by removing support for kernel 4.19. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Diffstat (limited to 'target/linux/lantiq/files')
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse.dtsi245
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_allnet_all0333cj.dts109
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_netgear_dgn1000b.dts151
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9.dtsi421
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts168
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts149
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_bt_homehub-v3a.dts189
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_buffalo_wbmr-hp-g300h.dts195
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dts6
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dtsi185
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500b.dts6
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zte_h201l.dts170
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zyxel_p-2601hn.dts176
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi327
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4510pw.dts212
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dts6
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dtsi200
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01a.dts10
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4519pw.dts203
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4520pw.dts220
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4525pw.dts149
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv452cqw.dts238
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7506pw11.dts160
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7510pw22.dts196
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7518pw.dts231
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7519pw.dts215
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7525pw.dts147
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw.dts241
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw22.dts259
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv8539pw22.dts179
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_audiocodes_mp-252.dts110
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_bt_homehub-v2b.dts236
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_lantiq_easy50712.dts70
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_siemens_gigaset-sx76x.dts117
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon.dtsi365
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88388.dts92
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88444.dts71
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nand.dts36
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nor.dts39
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-sflash.dts12
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000.dtsi110
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020-v18.dts66
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020.dts83
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98021.dts79
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce.dts74
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce1588.dts74
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-mdu.dts51
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-sfp.dts74
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_sflash-16m.dtsi40
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi514
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts153
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts244
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vg3503j.dts142
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-brn.dts63
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-nor.dts29
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi258
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519-brn.dts68
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519-nor.dts27
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi295
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2-hynix.dts37
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2-micron.dts35
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi279
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts53
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts53
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts85
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi206
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7412.dts213
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts281
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts310
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nand.dts63
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nor.dts35
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi279
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts184
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw8970.dts6
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw8980.dts31
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi277
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dts25
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dtsi291
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200v.dts32
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-f1.dts69
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-f3.dts63
-rw-r--r--target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi259
82 files changed, 12121 insertions, 0 deletions
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse.dtsi
new file mode 100644
index 0000000000..c477473a06
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse.dtsi
@@ -0,0 +1,245 @@
+/dts-v1/;
+
+#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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "mips,mips4Kc";
+ reg = <0>;
+ };
+ };
+
+ reboot {
+ compatible = "syscon-reboot";
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0x40000000>;
+ };
+
+ 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 0xc8>;
+ };
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ 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>;
+ };
+ };
+ };
+
+ 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 = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>, <&spi_cs4_pins>;
+ 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>;
+
+ asc_pins: asc-pins {
+ mux {
+ lantiq,groups = "asc";
+ lantiq,function = "asc";
+ };
+ };
+
+ mdio_pins: mdio {
+ mux {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+
+ spi_pins: spi {
+ mux-0 {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ mux-1 {
+ lantiq,groups = "spi_do", "spi_clk";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+
+ spi_cs4_pins: spi-cs4 {
+ mux {
+ lantiq,groups = "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+ };
+
+ asc1: serial@e100c00 {
+ compatible = "lantiq,asc";
+ reg = <0xe100c00 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <72 74 75>;
+ pinctrl-0 = <&asc_pins>;
+ pinctrl-names = "default";
+ };
+
+ mei@e116000 {
+ compatible = "lantiq,mei-xway";
+ reg = <0xe116000 0x400>;
+ 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";
+ reg = <0xe234000 0x40000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <85>;
+ };
+
+ gsw: etop@e180000 {
+ compatible = "lantiq,etop-xway";
+ reg = <0xe180000 0x40000>;
+ interrupt-parent = <&icu0>;
+ interrupts = <105 109>;
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ };
+ };
+
+ adsl {
+ compatible = "lantiq,adsl-ase";
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_allnet_all0333cj.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_allnet_all0333cj.dts
new file mode 100644
index 0000000000..67c6e87bcd
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_allnet_all0333cj.dts
@@ -0,0 +1,109 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x1000000>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ /* power led: red=off, green=on */
+ power: power {
+ label = "green:power";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ lan: lan {
+ label = "green:lan";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+
+ online_green: online {
+ label = "green:online";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ online_red {
+ label = "red:online";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ keys_in {
+ lantiq,pins = "io0",/* "io25", */"io29";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x400000>;
+
+ 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 = "u-boot-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/lantiq/amazonse_netgear_dgn1000b.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_netgear_dgn1000b.dts
new file mode 100644
index 0000000000..144667ffb6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/amazonse_netgear_dgn1000b.dts
@@ -0,0 +1,151 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x1000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ online_green: online {
+ label = "green:online";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ online2 {
+ label = "red:online";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ wps {
+ label = "green:wps";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ power: power {
+ label = "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 {
+ keys_in {
+ lantiq,pins = "io0",/* "io25", */"io29";
+ lantiq,pull = <2>;
+ lantiq,open-drain = <1>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mac-address = [ 00 11 22 33 44 55 ];
+};
+
+&spi {
+ status = "okay";
+
+ flash@1 {
+ compatible = "jedec,spi-nor";
+ reg = <1>;
+ 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@50000 {
+ reg = <0x50000 0x3a0000>;
+ label = "kernel";
+ };
+ };
+ };
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9.dtsi
new file mode 100644
index 0000000000..362ecaa90c
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9.dtsi
@@ -0,0 +1,421 @@
+/dts-v1/;
+
+#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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "mips,mips34K";
+ reg = <0>;
+ };
+ };
+
+ reboot {
+ compatible = "syscon-reboot";
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0x40000000>;
+ };
+
+ 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";
+ /* TODO: AR9 should have ICU1 (like VR9) too */
+ reg = <0x80200 0xc8>;
+ };
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ 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>;
+ };
+ };
+ };
+
+ 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 = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>, <&spi_cs4_pins>;
+ status = "disabled";
+ };
+
+ gpio: pinmux@e100b10 {
+ compatible = "lantiq,xrx100-pinctrl";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0xe100b10 0xa0>;
+
+ mdio_pins: mdio {
+ mux {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+
+ nand_pins: nand {
+ mux-0 {
+ lantiq,groups = "nand cle", "nand ale",
+ "nand rd";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ mux-1 {
+ lantiq,groups = "nand rdy";
+ lantiq,function = "ebu";
+ lantiq,output = <0>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ nand_cs1_pins: nand-cs1 {
+ mux {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt1_pins: pci-gnt1 {
+ mux {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt2_pins: pci-gnt2 {
+ mux {
+ lantiq,groups = "gnt2";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt3_pins: pci-gnt3 {
+ mux {
+ lantiq,groups = "gnt3";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt4_pins: pci-gnt4 {
+ mux {
+ lantiq,groups = "gnt4";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_req1_pins: pci-req1 {
+ mux {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ pci_req2_pins: pci-req2 {
+ mux {
+ lantiq,groups = "req2";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ pci_req3_pins: pci-req3 {
+ mux {
+ lantiq,groups = "req3";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ pci_req4_pins: pci-req4 {
+ mux {
+ lantiq,groups = "req4";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ spi_pins: spi {
+ mux-0 {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ mux-1 {
+ lantiq,groups = "spi_do", "spi_clk";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+
+ spi_cs4_pins: spi-cs4 {
+ mux {
+ lantiq,groups = "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+
+ stp_pins: stp {
+ mux {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ };
+
+ stp: stp@e100bb0 {
+ #gpio-cells = <2>;
+ compatible = "lantiq,gpio-stp-xway";
+ gpio-controller;
+ reg = <0xe100bb0 0x40>;
+
+ pinctrl-0 = <&stp_pins>;
+ pinctrl-names = "default";
+
+ 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";
+ reg = <0xe116000 0x9c>;
+ 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 ];
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ };
+
+ ppe@e234000 {
+ compatible = "lantiq,ppe-arx100";
+ reg = <0xe234000 0x3ffd>;
+ 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/lantiq/ar9_avm_fritz7312.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts
new file mode 100644
index 0000000000..4a4a06514f
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7312.dts
@@ -0,0 +1,168 @@
+#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-dsl = &info_green;
+ led-wifi = &wlan;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power: power {
+ label = "green:power";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice {
+ label = "green:fon";
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+ dect {
+ label = "green:dect";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+ wlan: wlan {
+ label = "green:wlan";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ info_green: info_green {
+ label = "green:info";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ 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>;
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+ reset-gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ max-speed = <100>;
+ };
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+
+ 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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_gnt2_pins>,
+ <&pci_gnt3_pins>, <&pci_gnt4_pins>,
+ <&pci_req1_pins>, <&pci_req2_pins>,
+ <&pci_req4_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/ar9_avm_fritz7320.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts
new file mode 100644
index 0000000000..9fbac6fa12
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_avm_fritz7320.dts
@@ -0,0 +1,149 @@
+#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-dsl = &info_green;
+ led-wifi = &wlan;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ power: power {
+ label = "green:power";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice {
+ label = "green:fon";
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+ dect {
+ label = "green:dect";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+ wlan: wlan {
+ label = "green:wlan";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ info_green: info_green {
+ label = "green:info";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ info_red {
+ label = "red:info";
+ gpios = <&gpio 45 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&ath9k_cal 0xa91>;
+ mtd-mac-address-increment = <(-2)>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+
+ 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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_gnt2_pins>,
+ <&pci_gnt3_pins>, <&pci_gnt4_pins>,
+ <&pci_req1_pins>, <&pci_req2_pins>,
+ <&pci_req3_pins>, <&pci_req4_pins>;
+
+ 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/lantiq/ar9_bt_homehub-v3a.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_bt_homehub-v3a.dts
new file mode 100644
index 0000000000..61a39f9955
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_bt_homehub-v3a.dts
@@ -0,0 +1,189 @@
+#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 */
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ wireless-red {
+ label = "red:wireless";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ wireless-orange {
+ label = "orange:wireless";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wireless_blue: wireless-blue {
+ label = "blue:wireless";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+
+ broadband-red {
+ label = "red:broadband";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+ broadband-orange {
+ label = "orange:broadband";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+ broadband_blue: broadband-blue {
+ label = "blue:broadband";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+
+ power_red: power-red {
+ label = "red:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ power_orange: power-orange {
+ label = "orange:power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_blue: power-blue {
+ label = "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 {
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rgmii";
+};
+
+&localbus {
+ flash@1 { /* NAND Flash: Samsung K9F5608U0D-JIB0 32MB */
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000 >;
+ req-mask = <0x1>; /* PCI request lines to mask during NAND access */
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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 = "u-boot-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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ wifi@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/lantiq/ar9_buffalo_wbmr-hp-g300h.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_buffalo_wbmr-hp-g300h.dts
new file mode 100644
index 0000000000..e240f0c576
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_buffalo_wbmr-hp-g300h.dts
@@ -0,0 +1,195 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ security {
+ label = "yellow:security";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "green:wireless";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+ };
+ online_green: online {
+ label = "green:internet";
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "red:internet";
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ };
+ movie {
+ label = "blue:movie";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "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 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-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/lantiq/ar9_netgear_dgn3500.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dts
new file mode 100644
index 0000000000..b4fc4e4bde
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dts
@@ -0,0 +1,6 @@
+#include "ar9_netgear_dgn3500.dtsi"
+
+/ {
+ compatible = "netgear,dgn3500", "lantiq,xway", "lantiq,ar9";
+ model = "Netgear DGN3500";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dtsi
new file mode 100644
index 0000000000..18168230b6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500.dtsi
@@ -0,0 +1,185 @@
+#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 {
+ device_type = "memory";
+ 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
+ >;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ internet: internet {
+ label = "green:internet";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "red:internet";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "green:usb";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ };
+ wifi_green: wifi {
+ label = "green:wireless";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ wifi2 {
+ label = "amber:wireless";
+ gpios = <&gpio 51 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ 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 = "u-boot-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/lantiq/ar9_netgear_dgn3500b.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500b.dts
new file mode 100644
index 0000000000..e071f02bc0
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_netgear_dgn3500b.dts
@@ -0,0 +1,6 @@
+#include "ar9_netgear_dgn3500.dtsi"
+
+/ {
+ compatible = "netgear,dgn3500b", "lantiq,xway", "lantiq,ar9";
+ model = "Netgear DGN3500B";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zte_h201l.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zte_h201l.dts
new file mode 100644
index 0000000000..486261d742
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zte_h201l.dts
@@ -0,0 +1,170 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ online: online {
+ label = "green:internet";
+ gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ phone {
+ label = "green:phone";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "green:wps";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "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 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "u-boot-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/lantiq/ar9_zyxel_p-2601hn.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zyxel_p-2601hn.dts
new file mode 100644
index 0000000000..2177726d81
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/ar9_zyxel_p-2601hn.dts
@@ -0,0 +1,176 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "green:power";
+ gpios = <&stp 11 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "green:internet";
+ gpios = <&stp 13 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "red:internet";
+ gpios = <&stp 12 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&stp 14 GPIO_ACTIVE_LOW>;
+ };
+ phone {
+ label = "green:phone";
+ gpios = <&stp 9 GPIO_ACTIVE_LOW>;
+ };
+ phone2 {
+ label = "orange:phone";
+ gpios = <&stp 8 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "green:wireless";
+ gpios = <&stp 15 GPIO_ACTIVE_LOW>;
+ };
+ wifi2 {
+ label = "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>;
+ };
+ };
+
+ 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;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ exin {
+ lantiq,groups = "exin1";
+ lantiq,function = "exin";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0xfa0000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+};
+
+&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/lantiq/danube.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi
new file mode 100644
index 0000000000..ced3e3bcb4
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube.dtsi
@@ -0,0 +1,327 @@
+/dts-v1/;
+
+#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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "mips,mips24Kc";
+ reg = <0>;
+ };
+ };
+
+ reboot {
+ compatible = "syscon-reboot";
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0x40000000>;
+ };
+
+ 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";
+ /*
+ * There is a second ICU, but the SoC is not SMP
+ * capable.
+ */
+ reg = <0x80200 0xc8>;
+ };
+
+ 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 = <0x107000 0x400>;
+ interrupt-parent = <&icu0>;
+ interrupts = <150 151 152 153 154 155>;
+ };
+
+ rcu0: rcu@203000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ 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>;
+ };
+ };
+ };
+
+ 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>;
+ };
+
+ gpios: stp@e100bb0 {
+ #gpio-cells = <2>;
+ compatible = "lantiq,gpio-stp-xway";
+ gpio-controller;
+ reg = <0xe100bb0 0x40>;
+
+ pinctrl-0 = <&stp_pins>;
+ pinctrl-names = "default";
+
+ 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>;
+
+ nand_pins: nand {
+ mux-0 {
+ lantiq,groups = "nand cle", "nand ale",
+ "nand rd";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ mux-1 {
+ lantiq,groups = "nand rdy";
+ lantiq,function = "ebu";
+ lantiq,output = <0>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ nand_cs1_pins: nand-cs1 {
+ mux {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt1_pins: pci-gnt1 {
+ mux {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt2_pins: pci-gnt2 {
+ mux {
+ lantiq,groups = "gnt2";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_req1_pins: pci-req1 {
+ mux {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ pci_req2_pins: pci-req2 {
+ mux {
+ lantiq,groups = "req2";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ stp_pins: stp {
+ mux {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ };
+
+ 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";
+ reg = <0xe116000 0x400>;
+ 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";
+ reg = <0xe234000 0x40000>;
+ 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/lantiq/danube_arcadyan_arv4510pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4510pw.dts
new file mode 100644
index 0000000000..a6a8b93a24
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4510pw.dts
@@ -0,0 +1,212 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ 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>;
+ };
+ exin {
+ lantiq,groups = "exin1", "exin2";
+ lantiq,function = "exin";
+ lantiq,output = <0>;
+ };
+ 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 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+
+ lantiq,noxip;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x20000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "firmware";
+ reg = <0x60000 0xfa0000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_gnt2_pins>,
+ <&pci_req1_pins>, <&pci_req2_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv4518pwr01.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dts
new file mode 100644
index 0000000000..50ae5c791e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dts
@@ -0,0 +1,6 @@
+#include "danube_arcadyan_arv4518pwr01.dtsi"
+
+/ {
+ compatible = "arcadyan,arv4518pwr01", "lantiq,xway", "lantiq,danube";
+ model = "SMC7908A-ISP";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dtsi
new file mode 100644
index 0000000000..48fe88fea8
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01.dtsi
@@ -0,0 +1,200 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ ath5k_eep {
+ compatible = "ath5k,eeprom";
+ ath,eep-flash = <&boardconfig 0x400>;
+ ath,mac-offset = <0x16>;
+ ath,mac-increment = <1>;
+ ath,eep-swap;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ 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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>; /* 64 KB */
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>; /* 64 KB */
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@3f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x0>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_gnt2_pins>,
+ <&pci_req1_pins>, <&pci_req2_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv4518pwr01a.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01a.dts
new file mode 100644
index 0000000000..866866c3eb
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4518pwr01a.dts
@@ -0,0 +1,10 @@
+#include "danube_arcadyan_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/lantiq/danube_arcadyan_arv4519pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4519pw.dts
new file mode 100644
index 0000000000..18a2bfbe83
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4519pw.dts
@@ -0,0 +1,203 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: online {
+ label = "green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "red:internet";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "green:usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ voip {
+ label = "green:voip";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "green:phone1";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "green:phone2";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "green:line";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "green:wps";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "orange:wps";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wps3 {
+ label = "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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@3f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x400>;
+ };
+};
+
+&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/lantiq/danube_arcadyan_arv4520pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4520pw.dts
new file mode 100644
index 0000000000..4c76350bdc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4520pw.dts
@@ -0,0 +1,220 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_blue: power {
+ label = "blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet_blue: internet {
+ label = "blue:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "yellow:wps";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "red:wps";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ /*
+ wps green is missing
+ */
+ fxs1 {
+ label = "blue:telefon1";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "blue:telefon2";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ isdn {
+ label = "blue:isdn";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "blue:line";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "blue:sprache";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "blue:usb";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "blue:wifi";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "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_rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+};
+
+&gsw {
+ /* gpiomm 10 - switch */
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@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 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "u-boot-env";
+ reg = <0x20000 0x10000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "firmware";
+ reg = <0x30000 0x3c0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x400>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv4525pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4525pw.dts
new file mode 100644
index 0000000000..df44abf92f
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv4525pw.dts
@@ -0,0 +1,149 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ ath5k_eep {
+ compatible = "ath5k,eeprom";
+ ath,eep-flash = <&boardconfig 0x400>;
+ ath,mac-offset = <0x0>;
+ ath,eep-swap;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ fxo {
+ label = "green:festnetz";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ fxs {
+ label = "green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:t-dsl";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "green:online";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ 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 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv452cqw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv452cqw.dts
new file mode 100644
index 0000000000..bc04677d46
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv452cqw.dts
@@ -0,0 +1,238 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ ath5k_eep {
+ compatible = "ath5k,eeprom";
+ ath,eep-flash = <&boardconfig 0x400>;
+ ath,mac-offset = <0x0>;
+ ath,eep-swap;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ power_blue: power0 {
+ label = "blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl_blue: dsl {
+ label = "blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ isdn {
+ label = "blue:isdn";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power1 {
+ label = "red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "blue:wps";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ wps1 {
+ label = "yellow:wps";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "blue:telefon1";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "blue:telefon2";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "red:wps";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "blue:line";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "blue:sprache";
+ gpios = <&gpiomm 4 1>;
+ };
+ led_usb: usb {
+ label = "blue:usb";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "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 = "yellow:dsl";
+ gpios = <&gpiomm 8 GPIO_ACTIVE_LOW>;
+ };
+ dsl3 {
+ label = "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_rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ leds {
+ lantiq,pins = "io3", "io5", "io6", "io7", "io9";
+ lantiq,output = <1>;
+ };
+ };
+};
+
+/*
+#define ARV452CPW_SWITCH_RESET 110
+*/
+&gsw {
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x400000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@3f0000 {
+ label = "boardconfig";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x77f>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv7506pw11.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7506pw11.dts
new file mode 100644
index 0000000000..87954fef02
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7506pw11.dts
@@ -0,0 +1,160 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ wlan: wlan {
+ label = "green:wlan";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ power: power {
+ label = "green:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ internet: internet {
+ label = "green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power_red {
+ label = "red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ internet_red {
+ label = "red:internet";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ info {
+ label = "green:info";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ telefon {
+ label = "green:telefon";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ info_red {
+ label = "red:info";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ 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 {
+ flash@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 = "u-boot-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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv7510pw22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7510pw22.dts
new file mode 100644
index 0000000000..120dca1834
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7510pw22.dts
@@ -0,0 +1,196 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ 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>;
+ };
+ };
+
+ 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;
+ };
+};
+
+&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_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>;
+ };
+ };
+};
+
+&gsw {
+ /* Switch reset 19 */
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>, <&pci_req2_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv7518pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7518pw.dts
new file mode 100644
index 0000000000..f2592961cb
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7518pw.dts
@@ -0,0 +1,231 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ online_green: online {
+ label = "green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+ online2 {
+ label = "red:internet";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ led_usb: usb {
+ label = "green:usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "green:voip";
+ gpios = <&gpiomm 0 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "green:phone1";
+ gpios = <&gpiomm 1 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "green:phone2";
+ gpios = <&gpiomm 2 GPIO_ACTIVE_LOW>;
+ };
+ unlabeled {
+ label = "amber:unlabeled";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wps {
+ label = "amber:wps";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ wps2 {
+ label = "green:wps";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ wps3 {
+ label = "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";
+ };
+ 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>;
+ };
+ };
+};
+
+/*
+#define SWITCH_RESET 13
+*/
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x7d0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "boardconfig";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x0>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv7519pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7519pw.dts
new file mode 100644
index 0000000000..839af43773
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7519pw.dts
@@ -0,0 +1,215 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ 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_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 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv7525pw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7525pw.dts
new file mode 100644
index 0000000000..1f1adc4738
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv7525pw.dts
@@ -0,0 +1,147 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power1 {
+ label = "red:power";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ online: online {
+ label = "green:online";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "green:telefonie";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+ voice2 {
+ label = "red:telefonie";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ boardconfig: partition@3f0000 {
+ label = "board_config";
+ reg = <0x3f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv752dpw.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw.dts
new file mode 100644
index 0000000000..d0f5c38b39
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw.dts
@@ -0,0 +1,241 @@
+#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;
+
+ label-mac-device = &wifi0;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ power_blue: power1 {
+ label = "blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ internet_red: internet {
+ label = "red:internet";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ message {
+ label = "red:message";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power {
+ label = "red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice1 {
+ label = "red:voice";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ umts: umts {
+ label = "red:umts";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "red:wifi";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "green:tae-n";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "green:tae-u";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "green:isdn";
+ gpios = <&gpiomm 7 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "blue:internet";
+ gpios = <&gpiomm 8 GPIO_ACTIVE_LOW>;
+ };
+ voice2 {
+ label = "blue:voice";
+ 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 = <&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_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>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@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 0x10000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x7d0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "board_config";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x3>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>, <&pci_req2_pins>;
+ pinctrl-names = "default";
+
+ lantiq,external-clock;
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ interrupt-map = <0x7000 0 0 1 &icu0 135>;
+ req-mask = <0x3>;
+
+ wifi0: wifi@1814,0601 {
+ compatible = "pci1814,0601";
+ reg = <0x7000 0 0 0 0>;
+ mtd-mac-address = <&boardconfig 0x16>;
+ 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/lantiq/danube_arcadyan_arv752dpw22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw22.dts
new file mode 100644
index 0000000000..72483e4749
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv752dpw22.dts
@@ -0,0 +1,259 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ power_blue: power1 {
+ label = "blue:power";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ internet_red: internet {
+ label = "red:internet";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+ message {
+ label = "red:message";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power {
+ label = "red:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ voice1 {
+ label = "red:voice";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+ umts: umts {
+ label = "red:umts";
+ gpios = <&gpiomm 3 GPIO_ACTIVE_LOW>;
+ };
+ wifi: wifi {
+ label = "red:wifi";
+ gpios = <&gpiomm 4 GPIO_ACTIVE_LOW>;
+ };
+ fxs1 {
+ label = "green:tae-n";
+ gpios = <&gpiomm 5 GPIO_ACTIVE_LOW>;
+ };
+ fxs2 {
+ label = "green:tae-u";
+ gpios = <&gpiomm 6 GPIO_ACTIVE_LOW>;
+ };
+ fxo {
+ label = "green:isdn";
+ gpios = <&gpiomm 7 GPIO_ACTIVE_LOW>;
+ };
+ internet2 {
+ label = "blue:internet";
+ gpios = <&gpiomm 8 GPIO_ACTIVE_LOW>;
+ };
+ voice2 {
+ label = "blue:voice";
+ gpios = <&gpiomm 9 GPIO_ACTIVE_LOW>;
+ };
+ eth1 {
+ label = "green:lan1";
+ gpios = <&gpiomm 11 GPIO_ACTIVE_LOW>;
+ };
+ eth2 {
+ label = "green:lan2";
+ gpios = <&gpiomm 12 GPIO_ACTIVE_LOW>;
+ };
+ eth3 {
+ label = "green:lan3";
+ gpios = <&gpiomm 13 GPIO_ACTIVE_LOW>;
+ };
+ eth4 {
+ label = "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_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>;
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "mii";
+ mtd-mac-address = <&boardconfig 0x16>;
+};
+
+&localbus {
+ flash@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 0x30000>;
+ read-only;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x40000 0x7b0000>;
+ };
+
+ boardconfig: partition@7f0000 {
+ label = "board_config";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <3>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_arcadyan_arv8539pw22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv8539pw22.dts
new file mode 100644
index 0000000000..5986279e6e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_arcadyan_arv8539pw22.dts
@@ -0,0 +1,179 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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 */
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power-green {
+ label = "green:power";
+ gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power-red {
+ label = "red:power";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ dsl_green: dsl-green {
+ label = "green:dsl";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+
+ online_green: online-green {
+ label = "green:online";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ wireless_green: wireless-green {
+ label = "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_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 {
+ flash@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 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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_audiocodes_mp-252.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_audiocodes_mp-252.dts
new file mode 100644
index 0000000000..624f815148
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_audiocodes_mp-252.dts
@@ -0,0 +1,110 @@
+#include "danube.dtsi"
+
+/ {
+ compatible = "audiocodes,mp-252", "lantiq,xway", "lantiq,danube";
+ model = "AudioCodes MediaPack MP-252";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ 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";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "u-boot-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@1000000 {
+ label = "rootfs_data";
+ reg = <0x1000000 0x1000000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+};
+
+&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/lantiq/danube_bt_homehub-v2b.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_bt_homehub-v2b.dts
new file mode 100644
index 0000000000..0147b3ffd1
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_bt_homehub-v2b.dts
@@ -0,0 +1,236 @@
+#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 */
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ upgrading-orange {
+ label = "orange:upgrading";
+ gpios = <&gpios 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ phone-orange {
+ label = "orange:phone";
+ gpios = <&gpios 6 GPIO_ACTIVE_HIGH>;
+ };
+ phone-blue {
+ label = "blue:phone";
+ gpios = <&gpios 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ wireless-orange {
+ label = "orange:wireless";
+ gpios = <&gpios 8 GPIO_ACTIVE_HIGH>;
+ };
+ wireless_blue: wireless-blue {
+ label = "blue:wireless";
+ gpios = <&gpios 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ broadband-red {
+ label = "red:broadband";
+ gpios = <&gpios 10 GPIO_ACTIVE_HIGH>;
+ };
+ broadband-orange {
+ label = "orange:broadband";
+ gpios = <&gpios 11 GPIO_ACTIVE_HIGH>;
+ };
+ broadband_blue: broadband-blue {
+ label = "blue:broadband";
+ gpios = <&gpios 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ power_red: power-red {
+ label = "red:power";
+ gpios = <&gpios 13 GPIO_ACTIVE_HIGH>;
+ };
+ power_orange: power-orange {
+ label = "orange:power";
+ gpios = <&gpios 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ power_blue: power-blue {
+ label = "blue:power";
+ gpios = <&gpios 15 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ exin {
+ lantiq,groups = "exin1";
+ lantiq,function = "exin";
+ };
+
+ 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 {
+ flash@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>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>; /* 256KB */
+ };
+
+ partition@40000 {
+ label = "u-boot-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>;
+ };
+ };
+ };
+
+ flash@1 { /* NAND Flash: Samsung K9F5608U0D-JIB0 32MB */
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000 >;
+ req-mask = <0x1>; /* PCI request lines to mask during NAND access */
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/danube_lantiq_easy50712.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_lantiq_easy50712.dts
new file mode 100644
index 0000000000..92091507c0
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_lantiq_easy50712.dts
@@ -0,0 +1,70 @@
+#include "danube.dtsi"
+
+/ {
+ compatible = "lantiq,easy50712", "lantiq,xway", "lantiq,danube";
+ model = "Intel EASY50712 Nand";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ exin {
+ lantiq,groups = "exin1";
+ lantiq,function = "exin";
+ };
+ };
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>; /* 64 KB */
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>; /* 64 KB */
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x3d0000>;
+ };
+
+ partition@400000 {
+ label = "rootfs";
+ reg = <0x400000 0x400000>;
+ };
+ };
+ };
+};
+
+&pci0 {
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_siemens_gigaset-sx76x.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_siemens_gigaset-sx76x.dts
new file mode 100644
index 0000000000..b2585cf5a7
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/danube_siemens_gigaset-sx76x.dts
@@ -0,0 +1,117 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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;
+ };
+};
+
+&gpios {
+ status = "okay";
+};
+
+&gsw {
+ phy-mode = "rmii";
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ };
+
+ partition@40000 {
+ label = "firmware";
+ reg = <0x40000 0x7c0000>;
+ };
+ };
+ };
+
+ gpiomm: gpio@1 {
+ compatible = "lantiq,gpio-mm";
+ reg = <1 0x0 0x10 >;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-cells = <2>;
+ gpio-controller;
+ lantiq,shadow = <0x3>;
+ };
+};
+
+&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/lantiq/falcon.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon.dtsi
new file mode 100644
index 0000000000..2f5557c0c7
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon.dtsi
@@ -0,0 +1,365 @@
+/dts-v1/;
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,falcon";
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "mips,mips34kc";
+ reg = <0>;
+ };
+ };
+
+ aliases {
+ serial0 = &serial0;
+ serial1 = &serial1;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ gpio2 = &gpio2;
+ gpio3 = &gpio3;
+ gpio4 = &gpio4;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ 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>;
+ };
+ };
+
+ 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";
+ /* TODO: Number of ICUs isn't known */
+ reg = <0x80200 0xc8>;
+ };
+
+ watchdog@803f0 {
+ compatible = "lantiq,wdt";
+ reg = <0x803f0 0x10>;
+ };
+ };
+
+ 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_pins {
+ i2c_pins {
+ 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/lantiq/falcon_lantiq_easy88388.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88388.dts
new file mode 100644
index 0000000000..fa46dc30fd
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88388.dts
@@ -0,0 +1,92 @@
+#include "falcon.dtsi"
+#include "falcon_sflash-16m.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ 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
+ };
+
+ 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";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ };
+ TEST {
+ label = "green:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ };
+ STATUS {
+ label = "green:status";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+ ERROR {
+ label = "red:error";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ DSL1 {
+ label = "dsl:1";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ };
+ DSL2 {
+ label = "dsl:2";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ };
+ DSL3 {
+ label = "dsl:3";
+ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ };
+ DSL4 {
+ label = "dsl:4";
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+ };
+ DSL5 {
+ label = "dsl:5";
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ };
+ DSL6 {
+ label = "dsl:6";
+ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+ };
+ DSL7 {
+ label = "dsl:7";
+ gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+ };
+ DSL8 {
+ label = "dsl:8";
+ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88444.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88444.dts
new file mode 100644
index 0000000000..d6591aa10e
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy88444.dts
@@ -0,0 +1,71 @@
+#include "falcon.dtsi"
+#include "falcon_sflash-16m.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ 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
+ };
+
+ 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";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ };
+ TEST {
+ label = "green:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ };
+ STATUS {
+ label = "green:status";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ GFAST1 {
+ label = "gfast:1";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ };
+ GFAST2 {
+ label = "gfast:2";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ };
+ GFAST3 {
+ label = "gfast:3";
+ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ };
+ GFAST4 {
+ label = "gfast:4";
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nand.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nand.dts
new file mode 100644
index 0000000000..adb3394dbd
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nand.dts
@@ -0,0 +1,36 @@
+#include "falcon_lantiq_easy98000.dtsi"
+
+/ {
+ model = "Lantiq Falcon (NAND)";
+ compatible = "lantiq,easy98000-nand", "lantiq,easy98000", "lantiq,falcon";
+
+ aliases {
+ spi0 = &spi;
+ };
+};
+
+&ebu_cs0 {
+ flash@0 {
+ compatible = "gen_nand", "lantiq,nand-falcon";
+ bank-width = <1>;
+ reg = <0x0 0x40000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ bbt-use-flash;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x40000>;
+ };
+
+ partition@20000 {
+ label = "linux";
+ reg = <0x80000 0x3d0000>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nor.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nor.dts
new file mode 100644
index 0000000000..3c8f6a99f7
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-nor.dts
@@ -0,0 +1,39 @@
+#include "falcon_lantiq_easy98000.dtsi"
+
+/ {
+ model = "Lantiq Falcon (NOR)";
+ compatible = "lantiq,easy98000-nor", "lantiq,easy98000", "lantiq,falcon";
+
+ aliases {
+ spi0 = &spi;
+ };
+};
+
+&ebu_cs0 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0x0 0x4000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x40000>;
+ };
+
+ partition@20000 {
+ label = "linux";
+ reg = <0x80000 0x3d0000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-sflash.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-sflash.dts
new file mode 100644
index 0000000000..c55559177b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000-sflash.dts
@@ -0,0 +1,12 @@
+#include "falcon_lantiq_easy98000.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/lantiq/falcon_lantiq_easy98000.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000.dtsi
new file mode 100644
index 0000000000..e25145d869
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98000.dtsi
@@ -0,0 +1,110 @@
+#include "falcon.dtsi"
+
+#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>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bootled_pins>;
+
+ LED_0 {
+ label = "green:gpon";
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_1 {
+ label = "red:gpon";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_2 {
+ label = "green:gpon_tx";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_3 {
+ label = "green:gpon_rx";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_4 {
+ label = "green:voice";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_5 {
+ label = "green:status";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
+
+&ebu_cs1 {
+ eth0: ethernet@3 {
+ 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@2 {
+ 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/lantiq/falcon_lantiq_easy98020-v18.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020-v18.dts
new file mode 100644
index 0000000000..bad808e9bf
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020-v18.dts
@@ -0,0 +1,66 @@
+#include "falcon.dtsi"
+#include "falcon_sflash-16m.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ 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
+ };
+
+ 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";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ TEST {
+ label = "green:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ ETH {
+ label = "green:status";
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VOICE {
+ label = "green:voice";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VIDEO {
+ label = "green:video";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020.dts
new file mode 100644
index 0000000000..2c0a51aa7b
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98020.dts
@@ -0,0 +1,83 @@
+#include "falcon.dtsi"
+#include "falcon_sflash-16m.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ 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
+ };
+
+ 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";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bootled_pins>, <&led_pins>;
+
+ GPON {
+ label = "green:gpon";
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ TEST {
+ label = "green:test";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ ETH {
+ label = "green:status";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VOICE {
+ label = "green:voice";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VIDEO {
+ label = "green:video";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ GE0_ACT {
+ label = "ge0_act";
+ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+ };
+ GE0_LINK {
+ label = "ge0_link";
+ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+ };
+ GE1_ACT {
+ label = "ge1_act";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ };
+ GE1_LINK {
+ label = "ge1_link";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98021.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98021.dts
new file mode 100644
index 0000000000..2cc70e6e40
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98021.dts
@@ -0,0 +1,79 @@
+#include "falcon.dtsi"
+#include "falcon_sflash-16m.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ 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
+ };
+
+ 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";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins &bootled_pins>;
+
+ GPON {
+ label = "green:gpon";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ TEST {
+ label = "red:test";
+ gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ ETH {
+ label = "green:status";
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ VOICE {
+ label = "green:voice";
+ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ SIMCARD {
+ label = "green:simcard";
+ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce.dts
new file mode 100644
index 0000000000..1efc06c037
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce.dts
@@ -0,0 +1,74 @@
+#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/lantiq/falcon_lantiq_easy98035synce1588.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce1588.dts
new file mode 100644
index 0000000000..a320acd2e6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_easy98035synce1588.dts
@@ -0,0 +1,74 @@
+#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/lantiq/falcon_lantiq_falcon-mdu.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-mdu.dts
new file mode 100644
index 0000000000..611b02f8b3
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-mdu.dts
@@ -0,0 +1,51 @@
+#include "falcon.dtsi"
+#include "falcon_sflash-16m.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ 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
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bootled_pins>;
+
+ LED_0 {
+ label = "green:gpon";
+ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_1 {
+ label = "green:status";
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_2 {
+ label = "green:2";
+ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_3 {
+ label = "green:3";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ LED_4 {
+ label = "green:4";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ };
+};
+
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-sfp.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-sfp.dts
new file mode 100644
index 0000000000..c08fd746bf
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_lantiq_falcon-sfp.dts
@@ -0,0 +1,74 @@
+#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/lantiq/falcon_sflash-16m.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_sflash-16m.dtsi
new file mode 100644
index 0000000000..2ed15a8dd2
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/falcon_sflash-16m.dtsi
@@ -0,0 +1,40 @@
+
+&ebu_cs0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,sflash-falcon", "simple-bus";
+
+ flash@0 {
+ compatible = "spansion,s25fl129p0", "spansion,s25fl129p1";
+ reg = <0 0>;
+ spi-max-frequency = <80000000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x40000>;
+ label = "uboot";
+ read-only;
+ };
+
+ partition@40000 {
+ reg = <0x40000 0x80000>;
+ label = "u-boot-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/lantiq/vr9.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi
new file mode 100644
index 0000000000..60f7f7a4c0
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi
@@ -0,0 +1,514 @@
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/phy/phy-lantiq-vrx200-pcie.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "lantiq,xway", "lantiq,vr9";
+
+ aliases {
+ serial0 = &asc1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "mips,mips34Kc";
+ reg = <0>;
+ };
+ };
+
+ cputemp {
+ compatible = "lantiq,cputemp";
+ };
+
+ reboot {
+ compatible = "syscon-reboot";
+
+ regmap = <&rcu0>;
+ offset = <0x10>;
+ mask = <0xe0000000>;
+ };
+
+ 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 0xc8 /* icu0 */
+ 0x80300 0xc8>; /* icu1 */
+ };
+
+ 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@107000 {
+ status = "disabled";
+ compatible = "lantiq,vmmc-xway";
+ reg = <0x107000 0x300>;
+ interrupt-parent = <&icu0>;
+ interrupts = <150 151 152 153 154 155>;
+ };
+
+ pcie0_phy: phy@106800 {
+ compatible = "lantiq,vrx200-pcie-phy";
+ reg = <0x106800 0x100>;
+ lantiq,rcu = <&rcu0>;
+ lantiq,rcu-endian-offset = <0x4c>;
+ lantiq,rcu-big-endian-mask = <0x80>; /* bit 7 */
+ big-endian;
+ resets = <&reset0 12 24>, <&reset0 22 22>;
+ reset-names = "phy", "pcie";
+ #phy-cells = <1>;
+ };
+
+ rcu0: rcu@203000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ 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>;
+ };
+ };
+ };
+
+ 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 = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_pins>, <&spi_cs4_pins>;
+ status = "disabled";
+ };
+
+ gpio: pinmux@e100b10 {
+ compatible = "lantiq,xrx200-pinctrl";
+ #gpio-cells = <2>;
+ gpio-controller;
+ reg = <0xe100b10 0xa0>;
+
+ gphy0_led0_pins: gphy0-led0 {
+ mux {
+ lantiq,groups = "gphy0 led0";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+
+ gphy0_led1_pins: gphy0-led1 {
+ mux {
+ lantiq,groups = "gphy0 led1";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+
+ gphy0_led2_pins: gphy0-led2 {
+ mux {
+ lantiq,groups = "gphy0 led2";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+
+ gphy1_led0_pins: gphy1-led0 {
+ mux {
+ lantiq,groups = "gphy1 led0";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+
+ gphy1_led1_pins: gphy1-led1 {
+ mux {
+ lantiq,groups = "gphy1 led1";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+
+ gphy1_led2_pins: gphy1-led2 {
+ mux {
+ lantiq,groups = "gphy1 led2";
+ lantiq,function = "gphy";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ lantiq,output = <1>;
+ };
+ };
+
+ mdio_pins: mdio {
+ mux {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+
+ nand_pins: nand {
+ mux-0 {
+ lantiq,groups = "nand cle", "nand ale",
+ "nand rd";
+ lantiq,function = "ebu";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ mux-1 {
+ lantiq,groups = "nand rdy";
+ lantiq,function = "ebu";
+ lantiq,output = <0>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ nand_cs1_pins: nand-cs1 {
+ mux {
+ lantiq,groups = "nand cs1";
+ lantiq,function = "ebu";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_gnt1_pins: pci-gnt1 {
+ mux {
+ lantiq,groups = "gnt1";
+ lantiq,function = "pci";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ };
+ };
+
+ pci_req1_pins: pci-req1 {
+ mux {
+ lantiq,groups = "req1";
+ lantiq,function = "pci";
+ lantiq,output = <0>;
+ lantiq,open-drain = <1>;
+ lantiq,pull = <2>;
+ };
+ };
+
+ spi_pins: spi {
+ mux-0 {
+ lantiq,groups = "spi_di";
+ lantiq,function = "spi";
+ };
+ mux-1 {
+ lantiq,groups = "spi_do", "spi_clk";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+
+ spi_cs4_pins: spi-cs4 {
+ mux {
+ lantiq,groups = "spi_cs4";
+ lantiq,function = "spi";
+ lantiq,output = <1>;
+ };
+ };
+
+ stp_pins: stp {
+ mux {
+ lantiq,groups = "stp";
+ lantiq,function = "stp";
+ lantiq,pull = <0>;
+ lantiq,open-drain = <0>;
+ lantiq,output = <1>;
+ };
+ };
+ };
+
+ stp: stp@e100bb0 {
+ status = "disabled";
+ compatible = "lantiq,gpio-stp-xway";
+ reg = <0xe100bb0 0x40>;
+ #gpio-cells = <2>;
+ gpio-controller;
+
+ pinctrl-0 = <&stp_pins>;
+ pinctrl-names = "default";
+
+ 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>;
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ };
+
+ mei@e116000 {
+ compatible = "lantiq,mei-xrx200";
+ reg = <0xe116000 0x9c>;
+ interrupt-parent = <&icu0>;
+ interrupts = <63>;
+ };
+
+ ppe@e234000 {
+ compatible = "lantiq,ppe-xrx200";
+ reg = <0xe234000 0x3ffd>;
+ 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>;
+
+ reg = <0xd900000 0x1000>;
+
+ interrupt-parent = <&icu0>;
+ interrupts = <161 144>;
+
+ phys = <&pcie0_phy LANTIQ_PCIE_PHY_MODE_36MHZ>;
+ phy-names = "pcie";
+
+ resets = <&reset0 22 22>;
+
+ lantiq,rcu = <&rcu0>;
+
+ 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";
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts
new file mode 100644
index 0000000000..a95f3faa00
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts
@@ -0,0 +1,153 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ /* power-* is a bicolour led */
+ power_green: power_green {
+ label = "green:power";
+ gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+
+ power_red: power_red {
+ label = "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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x0800000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ };
+
+ partition@30000 {
+ label = "u-boot-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/lantiq/vr9_arcadyan_arv7519rw22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts
new file mode 100644
index 0000000000..9da2649833
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts
@@ -0,0 +1,244 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ lan_green {
+ label = "green:lan";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+ internet_red {
+ label = "red:internet";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power_green {
+ label = "green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ alarm_blue {
+ label = "blue:alarm";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+ internet_orange {
+ label = "orange:internet";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: internet_green {
+ label = "green:internet";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ };
+ voice_green {
+ label = "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@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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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 {
+ pcie-rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x60000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "u-boot-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/lantiq/vr9_arcadyan_vg3503j.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vg3503j.dts
new file mode 100644
index 0000000000..e7c5532145
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vg3503j.dts
@@ -0,0 +1,142 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x2000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ };
+};
+
+&eth0 {
+ pinctrl-0 = <&mdio_pins>,
+ <&gphy0_led0_pins>, <&gphy0_led1_pins>, <&gphy0_led2_pins>,
+ <&gphy1_led0_pins>, <&gphy1_led1_pins>, <&gphy1_led2_pins>;
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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>;
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ 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 = "u-boot-env";
+ reg = <0x7f0000 0x10000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-brn.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-brn.dts
new file mode 100644
index 0000000000..df0c8ea5da
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-brn.dts
@@ -0,0 +1,63 @@
+#include "vr9_arcadyan_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 {
+ flash@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/lantiq/vr9_arcadyan_vgv7510kw22-nor.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-nor.dts
new file mode 100644
index 0000000000..732ffd48a2
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22-nor.dts
@@ -0,0 +1,29 @@
+#include "vr9_arcadyan_vgv7510kw22.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7510kw22-nor", "arcadyan,vgv7510kw22", "lantiq,xway", "lantiq,vr9";
+ model = "o2 Box 6431";
+};
+
+&localbus {
+ flash@0 {
+ partitions {
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x60000>; /* 384 KiB */
+ read-only;
+ };
+
+ partition@60000 {
+ label = "u-boot-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/lantiq/vr9_arcadyan_vgv7510kw22.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi
new file mode 100644
index 0000000000..a6206f4a87
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi
@@ -0,0 +1,258 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ };
+
+ internet_red {
+ label = "red:internet";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+
+ info_red {
+ label = "red:info";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ info_green {
+ label = "green:info";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ internet_green: internet_green {
+ label = "green:internet";
+ gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ };
+
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+ };
+
+ phone {
+ label = "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 {
+ pinctrl-0 = <&mdio_pins>,
+ <&gphy0_led0_pins>,
+ <&gphy1_led0_pins>, <&gphy1_led1_pins>;
+ pinctrl-names = "default";
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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>, <&gphy0_led1_pins>;
+
+ state_default: pinmux {
+ pci-rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+
+ 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/lantiq/vr9_arcadyan_vgv7519-brn.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519-brn.dts
new file mode 100644
index 0000000000..3e2e771840
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519-brn.dts
@@ -0,0 +1,68 @@
+#include "vr9_arcadyan_vgv7519.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7519-brn", "arcadyan,vgv7519", "lantiq,xway", "lantiq,vr9";
+ model = "KPN Experiabox V8";
+};
+
+&localbus {
+ flash@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/lantiq/vr9_arcadyan_vgv7519-nor.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519-nor.dts
new file mode 100644
index 0000000000..de5ea97d23
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519-nor.dts
@@ -0,0 +1,27 @@
+#include "vr9_arcadyan_vgv7519.dtsi"
+
+/ {
+ compatible = "arcadyan,vgv7519-nor", "arcadyan,vgv7519", "lantiq,xway", "lantiq,vr9";
+ model = "KPN Experiabox V8";
+};
+
+&localbus {
+ flash@0 {
+ partitions {
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ read-only;
+ };
+ partition@60000 {
+ label = "u-boot-env";
+ reg = <0x60000 0x10000>;
+ read-only;
+ };
+ partition@80000 {
+ label = "firmware";
+ reg = <0x80000 0xf80000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi
new file mode 100644
index 0000000000..0cb5244dbc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi
@@ -0,0 +1,295 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ eco {
+ label = "blue:eco";
+ gpios = <&stp 2 GPIO_ACTIVE_LOW>;
+ };
+ wps_red {
+ label = "red:wps";
+ gpios = <&stp 3 GPIO_ACTIVE_LOW>;
+ };
+ wps_green {
+ label = "green:wps";
+ gpios = <&stp 4 GPIO_ACTIVE_LOW>;
+ };
+ upgrade {
+ label = "blue:upgrade";
+ gpios = <&stp 5 GPIO_ACTIVE_LOW>;
+ };
+ tv {
+ label = "green:tv";
+ gpios = <&stp 6 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: internet_green {
+ label = "green:internet";
+ gpios = <&stp 7 GPIO_ACTIVE_LOW>;
+ };
+ internet_red {
+ label = "red:internet";
+ gpios = <&stp 8 GPIO_ACTIVE_LOW>;
+ };
+ broadband_red {
+ label = "red:broadband";
+ gpios = <&stp 9 GPIO_ACTIVE_LOW>;
+ };
+ broadband_green: broadband_green {
+ label = "green:broadband";
+ gpios = <&stp 10 GPIO_ACTIVE_LOW>;
+ };
+ voice {
+ label = "green:voice";
+ gpios = <&stp 11 GPIO_ACTIVE_LOW>;
+ };
+ wireless_red {
+ label = "red:wireless";
+ gpios = <&stp 12 GPIO_ACTIVE_LOW>;
+ };
+ wireless_green: wireless_green {
+ label = "green:wireless";
+ gpios = <&stp 13 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power2 {
+ label = "green:power";
+ gpios = <&stp 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_red: power {
+ label = "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 {
+ pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led0_pins>;
+ pinctrl-names = "default";
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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 {
+ pci-rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <0>;
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>, <1 0x800000 0x800000>;
+
+ 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/lantiq/vr9_avm_fritz3370-rev2-hynix.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2-hynix.dts
new file mode 100644
index 0000000000..e1d0851dab
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2-hynix.dts
@@ -0,0 +1,37 @@
+#include "vr9_avm_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 {
+ flash@1 {
+ compatible = "lantiq,nand-xway";
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/vr9_avm_fritz3370-rev2-micron.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2-micron.dts
new file mode 100644
index 0000000000..2a98a12acb
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2-micron.dts
@@ -0,0 +1,35 @@
+#include "vr9_avm_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 {
+ flash@1 {
+ compatible = "lantiq,nand-xway";
+ bank-width = <2>;
+ reg = <1 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/vr9_avm_fritz3370-rev2.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi
new file mode 100644
index 0000000000..b25d11e1c6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi
@@ -0,0 +1,279 @@
+#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_red;
+
+ led-dsl = &dsl;
+ led-internet = &info_green;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ gpio-poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ power {
+ label = "power";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ linux,code = <KEY_POWER>;
+ };
+
+ wifi {
+ label = "wlan";
+ gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power {
+ label = "green:power";
+ gpios = <&gpio 32 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ power_red: power2 {
+ label = "red:power";
+ gpios = <&gpio 33 GPIO_ACTIVE_LOW>;
+ };
+
+ info_red {
+ label = "red:info";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+
+ dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+ };
+
+ lan {
+ label = "green:lan";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+
+ info_green: info_green {
+ label = "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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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 {
+ 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>;
+ };
+ };
+};
+
+&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";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ spi-max-frequency = <1000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ 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/lantiq/vr9_avm_fritz7360-v2.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts
new file mode 100644
index 0000000000..3bd6ff0ee7
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360-v2.dts
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "vr9_avm_fritz736x.dtsi"
+
+/ {
+ compatible = "avm,fritz7360-v2", "avm,fritz736x", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 7360 V2";
+};
+
+&state_default {
+ pcie-rst {
+ lantiq,pins = "io21";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "fixed-partitions";
+
+ urlader: partition@0 {
+ label = "urlader";
+ reg = <0x00000 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x1f60000>;
+ };
+
+ partition@1f80000 {
+ label = "tffs (1)";
+ reg = <0x1f80000 0x40000>;
+ read-only;
+ };
+
+ partition@1fc0000 {
+ label = "tffs (2)";
+ reg = <0x1fc0000 0x40000>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts
new file mode 100644
index 0000000000..898ca00c34
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7360sl.dts
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "vr9_avm_fritz736x.dtsi"
+
+/ {
+ compatible = "avm,fritz7360sl", "avm,fritz736x", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 7360 SL";
+};
+
+&state_default {
+ pcie-rst {
+ lantiq,pins = "io38";
+ lantiq,pull = <0>;
+ lantiq,output = <1>;
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x1000000>;
+
+ partitions {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "fixed-partitions";
+
+ 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/lantiq/vr9_avm_fritz7362sl.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts
new file mode 100644
index 0000000000..c26908642c
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7362sl.dts
@@ -0,0 +1,85 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "vr9_avm_fritz736x.dtsi"
+
+/ {
+ compatible = "avm,fritz7362sl", "avm,fritz736x", "lantiq,xway", "lantiq,vr9";
+ model = "AVM FRITZ!Box 7362 SL";
+};
+
+&state_default {
+ pcie-rst {
+ lantiq,pins = "io21";
+ lantiq,open-drain = <1>;
+ lantiq,output = <1>;
+ };
+};
+
+&spi {
+ status = "okay";
+
+ 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 {
+ flash@1 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs1 = <1>;
+ bank-width = <1>;
+ reg = <1 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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/lantiq/vr9_avm_fritz736x.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi
new file mode 100644
index 0000000000..5c41d3c505
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi
@@ -0,0 +1,206 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#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 = &led_power_green;
+ led-failsafe = &led_power_red;
+ led-running = &led_power_green;
+ led-upgrade = &led_power_red;
+
+ led-dsl = &led_info_green;
+ led-wifi = &led_wifi;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ 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_RFKILL>;
+ };
+ };
+
+ leds: leds {
+ compatible = "gpio-leds";
+
+ led_power_green: power_green {
+ label = "green:power";
+ gpios = <&gpio 32 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ led_power_red: power_red {
+ label = "red:power";
+ gpios = <&gpio 33 GPIO_ACTIVE_LOW>;
+ };
+
+ led_info_green: info_green {
+ label = "green:info";
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ };
+
+ led_wifi: wifi {
+ label = "green:wlan";
+ gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+ };
+
+ info_red {
+ label = "red:info";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+
+ dect {
+ label = "green: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@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "gmii";
+ phy-handle = <&phy13>;
+ };
+ };
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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 {
+ 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/lantiq/vr9_avm_fritz7412.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7412.dts
new file mode 100644
index 0000000000..eed30c2f0f
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz7412.dts
@@ -0,0 +1,213 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#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";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &power_red;
+ led-running = &power_green;
+ led-upgrade = &power_red;
+
+ led-dsl = &info;
+ led-wifi = &wifi;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ dect {
+ label = "dect";
+ gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_green: power_green {
+ label = "green:power";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ power_red: power_red {
+ label = "red:power";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+
+ fon {
+ label = "green:fon";
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+ };
+
+ dect {
+ label = "green:dect";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi: wifi {
+ label = "green:wifi";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+
+ info: info {
+ label = "green:info";
+ gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nand-xway";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ lantiq,cs = <1>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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 {
+ pcie-rst {
+ lantiq,pins = "io11";
+ lantiq,open-drain = <1>;
+ lantiq,output = <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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts
new file mode 100644
index 0000000000..51af5469fd
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts
@@ -0,0 +1,281 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ /* broadband-* is a single RGB led */
+ broadband-red {
+ label = "red:broadband";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+ broadband-green {
+ label = "green:broadband";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+ broadband_blue: broadband-blue {
+ label = "blue:broadband";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ /* wireless-* is a single RGB led */
+ wireless-red {
+ label = "red:wireless";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+ wireless-green {
+ label = "green:wireless";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ wireless_blue: wireless-blue {
+ label = "blue:wireless";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+
+ /* power-* is a single RGB led */
+ power_red: power-red {
+ label = "red:power";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power-green {
+ label = "green:power";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ power_blue: power-blue {
+ label = "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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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 {
+ 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>;
+ };
+ };
+};
+
+&localbus {
+ flash@1 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0x1 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ 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 = "u-boot-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/lantiq/vr9_buffalo_wbmr-300hpd.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts
new file mode 100644
index 0000000000..2802663051
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts
@@ -0,0 +1,310 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ gpio_poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ diag_r: diag_r {
+ label = "red:diag";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ default_state = "off";
+ };
+
+ wifi_g: wifi_g {
+ label = "green:wifi";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ dsl: dsl {
+ label = "dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ router_y: router_y {
+ label = "yellow:router";
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ wifi_y: wifi_y {
+ label = "yellow:wifi";
+ gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan1: lan1 {
+ label = "green:lan1";
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ };
+
+ wan: wan {
+ label = "green:wan";
+ gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan3: lan3 {
+ label = "green:lan3";
+ gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan2: lan2 {
+ label = "green:lan2";
+ gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ };
+
+ internet_g: internet_g {
+ label = "green:internet";
+ gpios = <&gpio 34 GPIO_ACTIVE_HIGH>;
+ };
+
+ internet_y: internet_y {
+ label = "yellow:internet";
+ gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
+ };
+
+ router_g: router_g {
+ label = "green:router";
+ gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
+ };
+
+ power_g: power_g {
+ label = "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@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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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 {
+ 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>;
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ spi-max-frequency = <20000000>;
+
+ partitions {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ 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 = "u-boot-env";
+ };
+
+ 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/lantiq/vr9_lantiq_easy80920-nand.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nand.dts
new file mode 100644
index 0000000000..475d5a59d7
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nand.dts
@@ -0,0 +1,63 @@
+#include "vr9_lantiq_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 {
+ flash@0 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>;
+ pinctrl-names = "default";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x100000>; /* 1024 KB */
+ };
+
+ partition@100000 {
+ label = "u-boot-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/lantiq/vr9_lantiq_easy80920-nor.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nor.dts
new file mode 100644
index 0000000000..b0977b35c5
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920-nor.dts
@@ -0,0 +1,35 @@
+#include "vr9_lantiq_easy80920.dtsi"
+
+/ {
+ compatible = "lantiq,easy80920-nor", "lantiq,easy80920", "lantiq,xway", "lantiq,vr9";
+ model = "Intel EASY80920 Nor";
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x10000>;
+ };
+
+ partition@10000 {
+ label = "u-boot-env";
+ reg = <0x10000 0x10000>;
+ };
+
+ partition@20000 {
+ label = "firmware";
+ reg = <0x20000 0x7e0000>;
+ };
+ };
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi
new file mode 100644
index 0000000000..ea7fddbe0f
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi
@@ -0,0 +1,279 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power: power {
+ label = "green:power";
+ gpios = <&stp 9 GPIO_ACTIVE_HIGH>;
+ default-state = "keep";
+ };
+ warning {
+ label = "green:warning";
+ gpios = <&stp 22 GPIO_ACTIVE_HIGH>;
+ };
+ fxs1 {
+ label = "green:fxs1";
+ gpios = <&stp 21 GPIO_ACTIVE_HIGH>;
+ };
+ fxs2 {
+ label = "green:fxs2";
+ gpios = <&stp 20 GPIO_ACTIVE_HIGH>;
+ };
+ fxo {
+ label = "green:fxo";
+ gpios = <&stp 19 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb1: usb1 {
+ label = "green:usb1";
+ gpios = <&stp 18 GPIO_ACTIVE_HIGH>;
+ };
+ led_usb2: usb2 {
+ label = "green:usb2";
+ gpios = <&stp 15 GPIO_ACTIVE_HIGH>;
+ };
+ sd {
+ label = "green:sd";
+ gpios = <&stp 14 GPIO_ACTIVE_HIGH>;
+ };
+ wps {
+ label = "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@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>;
+ };
+ };
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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";
+ };
+ conf_out {
+ lantiq,pins = "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 */
+ lantiq,pull = <2>;
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ 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@50000 {
+ reg = <0x50000 0x3a0000>;
+ label = "kernel";
+ };
+ };
+ };
+};
+
+&pci0 {
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+};
+
+&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/lantiq/vr9_netgear_dm200.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts
new file mode 100644
index 0000000000..9dc6d767a6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts
@@ -0,0 +1,184 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_amber: power_amber {
+ label = "amber:power";
+ gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ };
+ power_green: power_green {
+ label = "green:power";
+ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan_amber {
+ label = "amber:lan";
+ gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
+ };
+ lan_green {
+ label = "green:lan";
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ };
+
+ dsl_amber {
+ label = "amber:dsl";
+ gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ };
+ dsl_green: dsl_green {
+ label = "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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy22f", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_FE>;
+};
+
+&pcie0 {
+ status = "disabled";
+};
+
+&spi {
+ status = "okay";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ spi-max-frequency = <10000000>;
+
+ partitions {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "fixed-partitions";
+
+ 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 = "u-boot-env";
+ 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/lantiq/vr9_tplink_tdw8970.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw8970.dts
new file mode 100644
index 0000000000..1ac6440744
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw8970.dts
@@ -0,0 +1,6 @@
+#include "vr9_tplink_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/lantiq/vr9_tplink_tdw8980.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw8980.dts
new file mode 100644
index 0000000000..f4a7b8d3c9
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw8980.dts
@@ -0,0 +1,31 @@
+#include "vr9_tplink_tdw89x0.dtsi"
+
+/ {
+ compatible = "tplink,tdw8980", "tplink,tdw89x0", "lantiq,xway", "lantiq,vr9";
+ model = "TP-LINK TD-W8980";
+};
+
+&leds {
+ wifi2 {
+ label = "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/lantiq/vr9_tplink_tdw89x0.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi
new file mode 100644
index 0000000000..f10e3a8567
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi
@@ -0,0 +1,277 @@
+#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 = &led_wps;
+ led-failsafe = &led_wps;
+
+ led-dsl = &led_dsl;
+ led-internet = &led_internet;
+ led-wifi = &led_wifi;
+ led-usb = &led_usb0;
+ led-usb2 = &led_usb2;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds: leds {
+ compatible = "gpio-leds";
+
+ /*
+ power is not controllable via gpio
+ */
+
+ led_dsl: dsl {
+ label = "green:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_internet: internet {
+ label = "green:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_usb0: usb0 {
+ label = "green:usb";
+ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_usb2: usb2 {
+ label = "green:usb2";
+ gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_wps: wps {
+ label = "green:wps";
+ gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ ath9k-leds {
+ compatible = "gpio-leds";
+
+ led_wifi: wifi {
+ label = "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 {
+ pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led1_pins>;
+ pinctrl-names = "default";
+
+ 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@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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy5: ethernet-phy@5 {
+ reg = <0x5>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&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 {
+ 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>;
+ };
+ };
+};
+
+&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";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ 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/lantiq/vr9_tplink_vr200.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dts
new file mode 100644
index 0000000000..4ad7a484e6
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dts
@@ -0,0 +1,25 @@
+#include "vr9_tplink_vr200.dtsi"
+
+/ {
+ compatible = "tplink,vr200", "lantiq,xway", "lantiq,vr9";
+ model = "TP-LINK Archer VR200";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200";
+ };
+};
+
+&keys {
+ led {
+ label = "led";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_LIGHTS_TOGGLE>;
+ };
+};
+
+&leds {
+ wps {
+ label = "blue:wps";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dtsi
new file mode 100644
index 0000000000..19cfb822eb
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200.dtsi
@@ -0,0 +1,291 @@
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+
+ led-dsl = &led_dsl;
+ led-internet = &led_internet;
+ led-wifi = &led_wlan5g;
+
+ led-usb = &led_usb;
+ led-usb2 = &led_usb;
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x7f00000>;
+ };
+
+ keys: keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds: leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ label = "blue:power";
+ gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+
+ led_dsl: dsl {
+ label = "blue:dsl";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ led_internet: internet {
+ label = "blue:internet";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ };
+
+ led_usb: usb {
+ label = "blue:usb";
+ gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+ };
+
+ eth {
+ label = "blue:lan";
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "blue:wlan";
+ gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
+ };
+
+ led_wlan5g: wifi {
+ label = "blue:wlan5g";
+ gpios = <&gpio 20 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 {
+ pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led1_pins>;
+ pinctrl-names = "default";
+
+ 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@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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy5: ethernet-phy@5 {
+ reg = <0x5>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ };
+ };
+};
+
+&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 {
+ 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>;
+ };
+ };
+};
+
+&pcie0 {
+ pcie@0 {
+ reg = <0 0 0 0 0>;
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+ device_type = "pci";
+
+ wifi@0,0 {
+ reg = <0 0 0 0 0>;
+ mediatek,mtd-eeprom = <&radio 0x0000>;
+ big-endian;
+ ieee80211-freq-limit = <5000000 6000000>;
+ mtd-mac-address = <&romfile 0xf100>;
+ mtd-mac-address-increment = <2>;
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&spi {
+ status = "okay";
+
+ flash@4 {
+ compatible = "jedec,spi-nor";
+ reg = <4>;
+ 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;
+ };
+
+ radio: 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/lantiq/vr9_tplink_vr200v.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200v.dts
new file mode 100644
index 0000000000..110e91a7b9
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_vr200v.dts
@@ -0,0 +1,32 @@
+#include "vr9_tplink_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";
+ };
+};
+
+&keys {
+ dect_paging {
+ label = "dect_paging";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+};
+
+&leds {
+ phone {
+ label = "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/lantiq/vr9_zyxel_p-2812hnu-f1.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-f1.dts
new file mode 100644
index 0000000000..2812df7e68
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-f1.dts
@@ -0,0 +1,69 @@
+#include "vr9_zyxel_p-2812hnu-fx.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;
+ };
+
+ leds {
+ led_usb1: usb1 {
+ label = "green:usb1";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+ led_usb2: usb2 {
+ label = "green:usb2";
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x40000>;
+ };
+ partition@40000 {
+ label = "u-boot-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/lantiq/vr9_zyxel_p-2812hnu-f3.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-f3.dts
new file mode 100644
index 0000000000..12280241a5
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-f3.dts
@@ -0,0 +1,63 @@
+#include "vr9_zyxel_p-2812hnu-fx.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 {
+ flash@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x800000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x50000>;
+ read-only;
+ };
+ partition@50000 {
+ label = "u-boot-env";
+ reg = <0x50000 0x10000>;
+ };
+ partition@60000 {
+ label = "unused";
+ reg = <0x60000 0x7a0000>;
+ };
+ };
+ };
+
+ flash@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/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi
new file mode 100644
index 0000000000..c4f30f5ffc
--- /dev/null
+++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi
@@ -0,0 +1,259 @@
+#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 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ 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>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ internet_red {
+ label = "red:internet";
+ gpios = <&stp 16 GPIO_ACTIVE_LOW>;
+ };
+ internet_green: internet_green {
+ label = "green:internet";
+ gpios = <&stp 17 GPIO_ACTIVE_LOW>;
+ };
+ dsl_green: dsl_green {
+ label = "green:dsl";
+ gpios = <&stp 18 GPIO_ACTIVE_LOW>;
+ };
+ dsl_orange {
+ label = "orange:dsl";
+ gpios = <&stp 19 GPIO_ACTIVE_LOW>;
+ };
+ wireless_orange {
+ label = "orange:wlan";
+ gpios = <&stp 20 GPIO_ACTIVE_LOW>;
+ };
+ wireless_green: wireless_green {
+ label = "green:wlan";
+ gpios = <&stp 21 GPIO_ACTIVE_LOW>;
+ };
+ power_red: power {
+ label = "red:power";
+ gpios = <&stp 22 GPIO_ACTIVE_LOW>;
+ };
+ power_green: power2 {
+ label = "green:power";
+ gpios = <&stp 23 GPIO_ACTIVE_LOW>;
+ default-state = "keep";
+ };
+ phone1 {
+ label = "green:phone";
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ };
+ phone1warn {
+ label = "orange:phone";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ phone2warn {
+ label = "orange:phone2";
+ gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
+ };
+ phone2 {
+ label = "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 {
+ pinctrl-0 = <&mdio_pins>,
+ <&gphy0_led1_pins>, <&gphy0_led2_pins>,
+ <&gphy1_led1_pins>, <&gphy1_led2_pins>;
+ pinctrl-names = "default";
+
+ 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 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+
+ 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";
+ };
+ 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>;
+ };
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ 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>;
+};