aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/dts
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx/dts')
-rw-r--r--target/linux/brcm63xx/dts/a226g.dts109
-rw-r--r--target/linux/brcm63xx/dts/a226m-fwb.dts109
-rw-r--r--target/linux/brcm63xx/dts/a226m.dts109
-rw-r--r--target/linux/brcm63xx/dts/a4001n.dts55
-rw-r--r--target/linux/brcm63xx/dts/a4001n1.dts83
-rw-r--r--target/linux/brcm63xx/dts/agpf-s0.dts113
-rw-r--r--target/linux/brcm63xx/dts/ar-5381u.dts42
-rw-r--r--target/linux/brcm63xx/dts/ar-5387un.dts50
-rw-r--r--target/linux/brcm63xx/dts/ar1004g.dts42
-rw-r--r--target/linux/brcm63xx/dts/bcm3368.dtsi95
-rw-r--r--target/linux/brcm63xx/dts/bcm6318.dtsi78
-rw-r--r--target/linux/brcm63xx/dts/bcm63268.dtsi85
-rw-r--r--target/linux/brcm63xx/dts/bcm6328.dtsi67
-rw-r--r--target/linux/brcm63xx/dts/bcm6338.dtsi80
-rw-r--r--target/linux/brcm63xx/dts/bcm6345.dtsi80
-rw-r--r--target/linux/brcm63xx/dts/bcm6348.dtsi91
-rw-r--r--target/linux/brcm63xx/dts/bcm6358.dtsi107
-rw-r--r--target/linux/brcm63xx/dts/bcm6362.dtsi85
-rw-r--r--target/linux/brcm63xx/dts/bcm6368.dtsi106
-rw-r--r--target/linux/brcm63xx/dts/bcm96318ref.dts49
-rw-r--r--target/linux/brcm63xx/dts/bcm96318ref_p300.dts55
-rw-r--r--target/linux/brcm63xx/dts/bcm963268bu_p300.dts30
-rw-r--r--target/linux/brcm63xx/dts/bcm963269bhr.dts38
-rw-r--r--target/linux/brcm63xx/dts/bcm963281TAN.dts40
-rw-r--r--target/linux/brcm63xx/dts/bcm96328avng.dts40
-rw-r--r--target/linux/brcm63xx/dts/bcm96338GW.dts36
-rw-r--r--target/linux/brcm63xx/dts/bcm96338W.dts36
-rw-r--r--target/linux/brcm63xx/dts/bcm96345GW2.dts10
-rw-r--r--target/linux/brcm63xx/dts/bcm96348GW-10.dts50
-rw-r--r--target/linux/brcm63xx/dts/bcm96348GW-11.dts50
-rw-r--r--target/linux/brcm63xx/dts/bcm96348GW.dts50
-rw-r--r--target/linux/brcm63xx/dts/bcm96348R.dts36
-rw-r--r--target/linux/brcm63xx/dts/bcm96358VW.dts36
-rw-r--r--target/linux/brcm63xx/dts/bcm96358VW2.dts32
-rw-r--r--target/linux/brcm63xx/dts/bcm96368MVNgr.dts36
-rw-r--r--target/linux/brcm63xx/dts/bcm96368MVWG.dts36
-rw-r--r--target/linux/brcm63xx/dts/cpva502plus.dts46
-rw-r--r--target/linux/brcm63xx/dts/cpva642.dts97
-rw-r--r--target/linux/brcm63xx/dts/ct-5365.dts74
-rw-r--r--target/linux/brcm63xx/dts/ct-6373.dts100
-rw-r--r--target/linux/brcm63xx/dts/ct536plus.dts38
-rw-r--r--target/linux/brcm63xx/dts/cvg834g.dts42
-rw-r--r--target/linux/brcm63xx/dts/dg834g_v4.dts68
-rw-r--r--target/linux/brcm63xx/dts/dg834gtpn.dts72
-rw-r--r--target/linux/brcm63xx/dts/dgnd3700v1.dts112
-rw-r--r--target/linux/brcm63xx/dts/dsl-2640b-b.dts68
-rw-r--r--target/linux/brcm63xx/dts/dsl-2640u.dts52
-rw-r--r--target/linux/brcm63xx/dts/dsl-2650u.dts54
-rw-r--r--target/linux/brcm63xx/dts/dsl-274xb-c.dts72
-rw-r--r--target/linux/brcm63xx/dts/dsl-274xb-f.dts64
-rw-r--r--target/linux/brcm63xx/dts/dsl-275xb-d.dts77
-rw-r--r--target/linux/brcm63xx/dts/dv-201amr.dts32
-rw-r--r--target/linux/brcm63xx/dts/dva-g3810bn_tl.dts50
-rw-r--r--target/linux/brcm63xx/dts/f5d7633.dts72
-rw-r--r--target/linux/brcm63xx/dts/fast2404.dts32
-rw-r--r--target/linux/brcm63xx/dts/fast2504n.dts59
-rw-r--r--target/linux/brcm63xx/dts/fast2604.dts68
-rw-r--r--target/linux/brcm63xx/dts/fast2704n.dts84
-rw-r--r--target/linux/brcm63xx/dts/fast2704v2.dts68
-rw-r--r--target/linux/brcm63xx/dts/gw6000.dts24
-rw-r--r--target/linux/brcm63xx/dts/gw6200.dts45
-rw-r--r--target/linux/brcm63xx/dts/hg520v.dts55
-rw-r--r--target/linux/brcm63xx/dts/hg553.dts94
-rw-r--r--target/linux/brcm63xx/dts/hg556a-a.dts126
-rw-r--r--target/linux/brcm63xx/dts/hg556a-b.dts126
-rw-r--r--target/linux/brcm63xx/dts/hg556a-c.dts121
-rw-r--r--target/linux/brcm63xx/dts/hg655b.dts112
-rw-r--r--target/linux/brcm63xx/dts/homehub2a.dts142
-rw-r--r--target/linux/brcm63xx/dts/livebox-blue-5g.dts68
-rw-r--r--target/linux/brcm63xx/dts/magic.dts72
-rw-r--r--target/linux/brcm63xx/dts/nb4-fxc-r1.dts100
-rw-r--r--target/linux/brcm63xx/dts/nb4-ser-r0.dts100
-rw-r--r--target/linux/brcm63xx/dts/nb6-ser-r0.dts39
-rw-r--r--target/linux/brcm63xx/dts/p870hw-51a-v2.dts77
-rw-r--r--target/linux/brcm63xx/dts/rg100a.dts54
-rw-r--r--target/linux/brcm63xx/dts/rta1025w.dts32
-rw-r--r--target/linux/brcm63xx/dts/rta1320.dts54
-rw-r--r--target/linux/brcm63xx/dts/rta770bw.dts70
-rw-r--r--target/linux/brcm63xx/dts/rta770w.dts70
-rw-r--r--target/linux/brcm63xx/dts/spw303v.dts81
-rw-r--r--target/linux/brcm63xx/dts/spw500v.dts72
-rw-r--r--target/linux/brcm63xx/dts/td-w8900gb.dts72
-rw-r--r--target/linux/brcm63xx/dts/usr9108.dts45
-rw-r--r--target/linux/brcm63xx/dts/v2110.dts71
-rw-r--r--target/linux/brcm63xx/dts/v2500v-bb.dts71
-rw-r--r--target/linux/brcm63xx/dts/vg50.dts30
-rw-r--r--target/linux/brcm63xx/dts/vr-3025u.dts88
-rw-r--r--target/linux/brcm63xx/dts/vr-3025un.dts88
-rw-r--r--target/linux/brcm63xx/dts/vr-3026e.dts88
-rw-r--r--target/linux/brcm63xx/dts/wap-5813n.dts82
90 files changed, 6116 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/dts/a226g.dts b/target/linux/brcm63xx/dts/a226g.dts
new file mode 100644
index 0000000..b62c68f
--- /dev/null
+++ b/target/linux/brcm63xx/dts/a226g.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Pirelli A226G";
+ compatible = "pirelli,a226g", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ voip_red {
+ label = "DWV-S0:red:VoIP";
+ gpios = <&gpio0 0 1>;
+ };
+ eth_red {
+ label = "DWV-S0:red:ethernet";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_green {
+ label = "DWV-S0:green:ADSL";
+ gpios = <&gpio0 2 1>;
+ };
+ usb_green {
+ label = "DWV-S0:green:USB";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "DWV-S0:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "DWV-S0:red:power";
+ gpios = <&gpio0 5 1>;
+ };
+ inet_red {
+ label = "DWV-S0:red:internet";
+ gpios = <&gpio0 6 1>;
+ };
+ inet_green {
+ label = "DWV-S0:green:internet";
+ gpios = <&gpio0 7 1>;
+ };
+ eth_green {
+ label = "DWV-S0:green:ethernet";
+ gpios = <&gpio0 8 1>;
+ };
+ voip_green {
+ label = "DWV-S0:green:VoIP";
+ gpios = <&gpio0 9 1>;
+ };
+ wifi_red {
+ label = "DWV-S0:red:wifi";
+ gpios = <&gpio0 10 1>;
+ };
+ usb_red {
+ label = "DWV-S0:red:USB";
+ gpios = <&gpio0 11 1>;
+ };
+ dsl_red {
+ label = "DWV-S0:red:ADSL";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/a226m-fwb.dts b/target/linux/brcm63xx/dts/a226m-fwb.dts
new file mode 100644
index 0000000..d91fffe
--- /dev/null
+++ b/target/linux/brcm63xx/dts/a226m-fwb.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Pirelli A226M-FWB";
+ compatible = "pirelli,a226m-fwb", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ voip_red {
+ label = "DWV-S0:red:VoIP";
+ gpios = <&gpio0 0 1>;
+ };
+ eth_red {
+ label = "DWV-S0:red:ethernet";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_green {
+ label = "DWV-S0:green:ADSL";
+ gpios = <&gpio0 2 1>;
+ };
+ usb_green {
+ label = "DWV-S0:green:USB";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "DWV-S0:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "DWV-S0:red:power";
+ gpios = <&gpio0 5 1>;
+ };
+ inet_red {
+ label = "DWV-S0:red:internet";
+ gpios = <&gpio0 6 1>;
+ };
+ inet_green {
+ label = "DWV-S0:green:internet";
+ gpios = <&gpio0 7 1>;
+ };
+ eth_green {
+ label = "DWV-S0:green:ethernet";
+ gpios = <&gpio0 8 1>;
+ };
+ voip_green {
+ label = "DWV-S0:green:VoIP";
+ gpios = <&gpio0 9 1>;
+ };
+ wifi_red {
+ label = "DWV-S0:red:wifi";
+ gpios = <&gpio0 10 1>;
+ };
+ usb_red {
+ label = "DWV-S0:red:USB";
+ gpios = <&gpio0 11 1>;
+ };
+ dsl_red {
+ label = "DWV-S0:red:ADSL";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/a226m.dts b/target/linux/brcm63xx/dts/a226m.dts
new file mode 100644
index 0000000..d3f628d
--- /dev/null
+++ b/target/linux/brcm63xx/dts/a226m.dts
@@ -0,0 +1,109 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Pirelli A226M";
+ compatible = "pirelli,a226m", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ voip_red {
+ label = "DWV-S0:red:VoIP";
+ gpios = <&gpio0 0 1>;
+ };
+ eth_red {
+ label = "DWV-S0:red:ethernet";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_green {
+ label = "DWV-S0:green:ADSL";
+ gpios = <&gpio0 2 1>;
+ };
+ usb_green {
+ label = "DWV-S0:green:USB";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "DWV-S0:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "DWV-S0:red:power";
+ gpios = <&gpio0 5 1>;
+ };
+ inet_red {
+ label = "DWV-S0:red:internet";
+ gpios = <&gpio0 6 1>;
+ };
+ inet_green {
+ label = "DWV-S0:green:internet";
+ gpios = <&gpio0 7 1>;
+ };
+ eth_green {
+ label = "DWV-S0:green:ethernet";
+ gpios = <&gpio0 8 1>;
+ };
+ voip_green {
+ label = "DWV-S0:green:VoIP";
+ gpios = <&gpio0 9 1>;
+ };
+ wifi_red {
+ label = "DWV-S0:red:wifi";
+ gpios = <&gpio0 10 1>;
+ };
+ usb_red {
+ label = "DWV-S0:red:USB";
+ gpios = <&gpio0 11 1>;
+ };
+ dsl_red {
+ label = "DWV-S0:red:ADSL";
+ gpios = <&gpio0 12 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/a4001n.dts b/target/linux/brcm63xx/dts/a4001n.dts
new file mode 100644
index 0000000..13c5e50
--- /dev/null
+++ b/target/linux/brcm63xx/dts/a4001n.dts
@@ -0,0 +1,55 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "ADB P.DG A4001N";
+ compatible = "adb,a4001n", "brcm,bcm6328";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 24 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_red {
+ label = "A4001N:red:inet";
+ gpios = <&gpio0 1 0>;
+ };
+ power_red {
+ label = "A4001N:red:power";
+ gpios = <&gpio0 4 0>;
+ };
+ power_green {
+ label = "A4001N:green:power";
+ gpios = <&gpio0 8 0>;
+ default-state = "on";
+ };
+ usb_green {
+ label = "A4001N:green:usb";
+ gpios = <&gpio0 10 1>;
+ };
+ dsl_green {
+ label = "A4001N:green:dsl";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/a4001n1.dts b/target/linux/brcm63xx/dts/a4001n1.dts
new file mode 100644
index 0000000..e30d6d0
--- /dev/null
+++ b/target/linux/brcm63xx/dts/a4001n1.dts
@@ -0,0 +1,83 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "ADB P.DG A4001N1";
+ compatible = "adb,a4001n1", "brcm,bcm6328";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wlan";
+ gpios = <&gpio0 24 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_red {
+ label = "A4001N1:red:inet";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "A4001N1:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "A4001N1:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ ppp_red {
+ label = "A4001N1:red:ppp";
+ gpios = <&gpio0 5 1>;
+ };
+ usb_green {
+ label = "A4001N1:green:3g";
+ gpios = <&gpio0 6 1>;
+ };
+ usb_red {
+ label = "A4001N1:red:3g";
+ gpios = <&gpio0 7 1>;
+ };
+ power_red {
+ label = "A4001N1:red:power";
+ gpios = <&gpio0 8 1>;
+ };
+ wlan_green {
+ label = "A4001N1:green:wlan";
+ gpios = <&gpio0 9 1>;
+ };
+ wlan_red {
+ label = "A4001N1:red:wlan";
+ gpios = <&gpio0 10 1>;
+ };
+ inet_green {
+ label = "A4001N1:green:inet";
+ gpios = <&gpio0 11 1>;
+ };
+ eth_red {
+ label = "A4001N1:red:eth";
+ gpios = <&gpio0 20 1>;
+ };
+ eth_green {
+ label = "A4001N1:green:eth";
+ gpios = <&gpio0 31 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/agpf-s0.dts b/target/linux/brcm63xx/dts/agpf-s0.dts
new file mode 100644
index 0000000..4662b2d
--- /dev/null
+++ b/target/linux/brcm63xx/dts/agpf-s0.dts
@@ -0,0 +1,113 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Pirelli Alice Gate AGPF-S0";
+ compatible = "pirelli,agpf-s0", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "AGPF-S0:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "AGPF-S0:red:power";
+ gpios = <&gpio0 5 1>;
+ };
+ service_green {
+ label = "AGPF-S0:green:service";
+ gpios = <&gpio0 6 1>;
+ };
+ service_red {
+ label = "AGPF-S0:red:service";
+ gpios = <&gpio0 7 1>;
+ };
+ dsl_green {
+ label = "AGPF-S0:green:adsl";
+ gpios = <&gpio0 9 1>;
+ };
+ dsl_red {
+ label = "AGPF-S0:red:adsl";
+ gpios = <&gpio0 10 1>;
+ };
+ wifi_green {
+ label = "AGPF-S0:green:wifi";
+ gpios = <&gpio0 22 1>;
+ };
+ wifi_red {
+ label = "AGPF-S0:red:wifi";
+ gpios = <&gpio0 23 1>;
+ };
+ inet_red {
+ label = "AGPF-S0:red:internet";
+ gpios = <&gpio0 24 1>;
+ };
+ inet_green {
+ label = "AGPF-S0:green:internet";
+ gpios = <&gpio0 25 1>;
+ };
+ usr1_green {
+ label = "AGPF-S0:green:usr1";
+ gpios = <&gpio0 26 1>;
+ };
+ usr1_red {
+ label = "AGPF-S0:red:usr1";
+ gpios = <&gpio0 27 1>;
+ };
+ usr2_green {
+ label = "AGPF-S0:green:usr2";
+ gpios = <&gpio0 29 1>;
+ };
+ usr2_red {
+ label = "AGPF-S0:red:usr2";
+ gpios = <&gpio0 30 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/ar-5381u.dts b/target/linux/brcm63xx/dts/ar-5381u.dts
new file mode 100644
index 0000000..a148ec4
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ar-5381u.dts
@@ -0,0 +1,42 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend AR-5381u";
+ compatible = "comtrend,ar-5381u", "brcm,bcm6328";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ alarm_red {
+ label = "AR-5381u:red:alarm";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_green {
+ label = "AR-5381u:green:inet";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "AR-5381u:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/ar-5387un.dts b/target/linux/brcm63xx/dts/ar-5387un.dts
new file mode 100644
index 0000000..c30da06
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ar-5387un.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend AR-5387un";
+ compatible = "comtrend,ar-5387un", "brcm,bcm6328";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_red {
+ label = "AR-5387un:red:inet";
+ gpios = <&gpio0 1 0>;
+ };
+ power_red {
+ label = "AR-5387un:red:power";
+ gpios = <&gpio0 4 0>;
+ };
+ inet_green {
+ label = "AR-5387un:green:inet";
+ gpios = <&gpio0 7 0>;
+ };
+ power_green {
+ label = "AR-5387un:green:power";
+ gpios = <&gpio0 8 0>;
+ default-state = "on";
+ };
+ dsl_green {
+ label = "AR-5387un:green:dsl";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/ar1004g.dts b/target/linux/brcm63xx/dts/ar1004g.dts
new file mode 100644
index 0000000..0740799
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ar1004g.dts
@@ -0,0 +1,42 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "ASMAX AR 1004g";
+ compatible = "asmax,ar1004g", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "AR1004G:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ inet_green {
+ label = "AR1004G:green:inet";
+ gpios = <&gpio0 3 1>;
+ };
+ power_red {
+ label = "AR1004G:red:power";
+ gpios = <&gpio0 6 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm3368.dtsi b/target/linux/brcm63xx/dts/bcm3368.dtsi
new file mode 100644
index 0000000..5be5c6a
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm3368.dtsi
@@ -0,0 +1,95 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm3368";
+
+ aliases {
+ pflash = &pflash;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+
+ cpu@1 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ pflash: nor@1e000000 {
+ compatible = "cfi-flash";
+ reg = <0x1e000000 0x2000000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+ };
+
+ ubus@fff00000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ periph_intc: interrupt-controller@fff8c00c {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0xfffe000c 0x8>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>;
+ };
+
+ ext_intc0: interrupt-controller@fff8c014 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0xfffe0014 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <25>, <26>, <27>, <28>;
+ };
+
+ gpio1: gpio-controller@fff8c080 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfff8c080 4>, <0xfff8c088 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <8>;
+ };
+
+ gpio0: gpio-controller@fff8c084 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfff8c084 4>, <0xfff8c08c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6318.dtsi b/target/linux/brcm63xx/dts/bcm6318.dtsi
new file mode 100644
index 0000000..f851a9c
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6318.dtsi
@@ -0,0 +1,78 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6318";
+
+ aliases {
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips3300", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ ubus@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ ext_intc: interrupt-controller@10000018 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0x10000018 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <24>, <25>, <26>, <27>;
+ };
+
+ periph_intc: interrupt-controller@10000020 {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0x10000020 0x20>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>;
+ };
+
+ gpio1: gpio-controller@10000080 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000080 4>, <0x10000088 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <18>;
+ };
+
+ gpio0: gpio-controller@10000084 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000084 4>, <0x1000008c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm63268.dtsi b/target/linux/brcm63xx/dts/bcm63268.dtsi
new file mode 100644
index 0000000..0a1f8b1
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm63268.dtsi
@@ -0,0 +1,85 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm63268";
+
+ aliases {
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+
+ cpu@1 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ ubus@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ ext_intc: interrupt-controller@10000018 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0x10000018 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <44>, <45>, <46>, <47>;
+ };
+
+ periph_intc: interrupt-controller@10000020 {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0x10000020 0x20>,
+ <0x10000040 0x20>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>, <3>;
+ };
+
+ gpio1: gpio-controller@100000c0 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x100000c0 4>, <0x100000c8 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <20>;
+ };
+
+ gpio0: gpio-controller@100000c4 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x100000c4 4>, <0x100000cc 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6328.dtsi b/target/linux/brcm63xx/dts/bcm6328.dtsi
new file mode 100644
index 0000000..a0b1316
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6328.dtsi
@@ -0,0 +1,67 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6328";
+
+ aliases {
+ gpio0 = &gpio0;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ ubus@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ ext_intc: interrupt-controller@10000018 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0x10000018 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <24>, <25>, <26>, <27>;
+ };
+
+ periph_intc: interrupt-controller@10000020 {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0x10000020 0x10>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>;
+ };
+
+ gpio0: gpio-controller@10000084 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000084 4>, <0x1000008c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6338.dtsi b/target/linux/brcm63xx/dts/bcm6338.dtsi
new file mode 100644
index 0000000..d578a5b
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6338.dtsi
@@ -0,0 +1,80 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6338";
+
+ aliases {
+ pflash = &pflash;
+ gpio0 = &gpio0;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips3300", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ pflash: nor@1fc00000 {
+ compatible = "cfi-flash";
+ reg = <0x1fc00000 0x400000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+ };
+
+ ubus@fff00000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ periph_intc: interrupt-controller@fffe000c {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0xfffe000c 0x8>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>;
+ };
+
+ ext_intc: interrupt-controller@fffe0014 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0xfffe0014 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <3>, <4>, <5>, <6>;
+ };
+
+ gpio0: gpio-controller@fffe0404 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfffe0404 4>, <0xfffe040c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <8>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6345.dtsi b/target/linux/brcm63xx/dts/bcm6345.dtsi
new file mode 100644
index 0000000..f702468
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6345.dtsi
@@ -0,0 +1,80 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6345";
+
+ aliases {
+ pflash = &pflash;
+ gpio0 = &gpio0;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips32", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ pflash: nor@1fc00000 {
+ compatible = "cfi-flash";
+ reg = <0x1fc00000 0x400000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+ };
+
+ ubus@fff00000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ periph_intc: interrupt-controller@fffe000c {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0xfffe000c 0x9>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>;
+ };
+
+ ext_intc: interrupt-controller@fffe0014 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0xfffe0014 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <3>, <4>, <5>, <6>;
+ };
+
+ gpio0: gpio-controller@fffe0404 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfffe0404 4>, <0xfffe0408 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <16>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6348.dtsi b/target/linux/brcm63xx/dts/bcm6348.dtsi
new file mode 100644
index 0000000..81e99ed
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6348.dtsi
@@ -0,0 +1,91 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6348";
+
+ aliases {
+ pflash = &pflash;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips3300", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ pflash: nor@1fc00000 {
+ compatible = "cfi-flash";
+ reg = <0x1fc00000 0x400000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+ };
+
+ ubus@fff00000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ periph_intc: interrupt-controller@fffe000c {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0xfffe000c 0x8>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>;
+ };
+
+ ext_intc: interrupt-controller@fffe0014 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0xfffe0014 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <3>, <4>, <5>, <6>;
+
+ brcm,field-width = <5>;
+ };
+
+ gpio1: gpio-controller@fffe0400 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfffe0400 4>, <0xfffe0408 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <5>;
+ };
+
+ gpio0: gpio-controller@fffe0404 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfffe0404 4>, <0xfffe040c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6358.dtsi b/target/linux/brcm63xx/dts/bcm6358.dtsi
new file mode 100644
index 0000000..bc3784a
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6358.dtsi
@@ -0,0 +1,107 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6358";
+
+ aliases {
+ pflash = &pflash;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+
+ cpu@1 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ pflash: nor@1e000000 {
+ compatible = "cfi-flash";
+ reg = <0x1e000000 0x2000000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ status = "disabled";
+ };
+
+ ubus@fff00000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ periph_intc: interrupt-controller@fffe000c {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0xfffe000c 0x8>,
+ <0xfffe0038 0x8>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>, <3>;
+ };
+
+ ext_intc0: interrupt-controller@fffe0014 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0xfffe0014 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <25>, <26>, <27>, <28>;
+ };
+
+ ext_intc1: interrupt-controller@fffe001c {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0xfffe001c 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <20>, <21>;
+ };
+
+ gpio1: gpio-controller@fffe0080 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfffe0080 4>, <0xfffe0088 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <8>;
+ };
+
+ gpio0: gpio-controller@fffe0084 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0xfffe0084 4>, <0xfffe008c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6362.dtsi b/target/linux/brcm63xx/dts/bcm6362.dtsi
new file mode 100644
index 0000000..6604f5c
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6362.dtsi
@@ -0,0 +1,85 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6362";
+
+ aliases {
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+
+ cpu@1 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ ubus@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ ext_intc: interrupt-controller@10000018 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0x10000018 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <40>, <41>, <42>, <43>;
+ };
+
+ periph_intc: interrupt-controller@10000020 {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0x10000020 0x10>,
+ <0x10000030 0x10>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>, <3>;
+ };
+
+ gpio1: gpio-controller@10000080 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000080 4>, <0x10000088 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <16>;
+ };
+
+ gpio0: gpio-controller@10000084 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000084 4>, <0x1000008c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm6368.dtsi b/target/linux/brcm63xx/dts/bcm6368.dtsi
new file mode 100644
index 0000000..7dbe9ec
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm6368.dtsi
@@ -0,0 +1,106 @@
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "brcm,bcm6368";
+
+ aliases {
+ pflash = &pflash;
+ gpio0 = &gpio0;
+ gpio1 = &gpio1;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <0>;
+ };
+
+ cpu@1 {
+ compatible = "brcm,bmips4350", "mips,mips4Kc";
+ device_type = "cpu";
+ reg = <1>;
+ };
+ };
+
+ cpu_intc: interrupt-controller {
+ #address-cells = <0>;
+ compatible = "mti,cpu-interrupt-controller";
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ };
+
+ memory { device_type = "memory"; reg = <0 0>; };
+
+ ubus@10000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "simple-bus";
+
+ ext_intc0: interrupt-controller@10000018 {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0x10000018 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <20>, <21>, <22>, <23>;
+ };
+
+ ext_intc1: interrupt-controller@1000001c {
+ compatible = "brcm,bcm6345-ext-intc";
+ reg = <0x1000001c 0x4>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ interrupt-parent = <&periph_intc>;
+ interrupts = <24>, <25>;
+ };
+
+ periph_intc: interrupt-controller@10000020 {
+ compatible = "brcm,bcm6345-periph-intc";
+ reg = <0x10000020 0x10>,
+ <0x10000030 0x10>;
+
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ interrupt-parent = <&cpu_intc>;
+ interrupts = <2>, <3>;
+ };
+
+ gpio1: gpio-controller@10000080 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000080 4>, <0x10000088 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ ngpios = <6>;
+ };
+
+ gpio0: gpio-controller@10000084 {
+ compatible = "brcm,bcm6345-gpio";
+ reg = <0x10000084 4>, <0x1000008c 4>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ pflash: nor@18000000 {
+ compatible = "cfi-flash";
+ reg = <0x18000000 0x2000000>;
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ status = "disabled";
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96318ref.dts b/target/linux/brcm63xx/dts/bcm96318ref.dts
new file mode 100644
index 0000000..79137db
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96318ref.dts
@@ -0,0 +1,49 @@
+/dts-v1/;
+
+#include "bcm6318.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96318REF reference board";
+ compatible = "brcm,bcm96318ref", "brcm,bcm6318";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet {
+ label = "96318REF:green:inet";
+ gpios = <&gpio0 8 1>;
+ };
+
+ inet_fail {
+ label = "96318REF:red:inet-fail";
+ gpios = <&gpio0 9 1>;
+ };
+
+ post_failed {
+ label = "96318REF:red:post-failed";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96318ref_p300.dts b/target/linux/brcm63xx/dts/bcm96318ref_p300.dts
new file mode 100644
index 0000000..be1db5a
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96318ref_p300.dts
@@ -0,0 +1,55 @@
+/dts-v1/;
+
+#include "bcm6318.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96318REF_P300 reference board";
+ compatible = "brcm,bcm96318ref_p300", "brcm,bcm6318";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet {
+ label = "96318REF_P300:green:inet";
+ gpios = <&gpio0 8 1>;
+ };
+
+ inet_fail {
+ label = "96318REF_P300:red:inet-fail";
+ gpios = <&gpio0 9 1>;
+ };
+
+ post_failed {
+ label = "96318REF_P300:red:post-failed";
+ gpios = <&gpio0 11 1>;
+ };
+
+ usb_pwron {
+ label = "96318REF_P300::usb-pwron";
+ gpios = <&gpio0 13 1>;
+ default-state = "on";
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm963268bu_p300.dts b/target/linux/brcm63xx/dts/bcm963268bu_p300.dts
new file mode 100644
index 0000000..f659b39
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm963268bu_p300.dts
@@ -0,0 +1,30 @@
+/dts-v1/;
+
+#include "bcm63268.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM963268BU_P300 reference board";
+ compatible = "brcm,bcm963268bu_p300", "brcm,bcm63268";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 0 0>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 1 0>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm963269bhr.dts b/target/linux/brcm63xx/dts/bcm963269bhr.dts
new file mode 100644
index 0000000..01a7680
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm963269bhr.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+
+#include "bcm63268.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM963269BHR reference board";
+ compatible = "brcm,bcm963269bhr", "brcm,bcm63268";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 0 0>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb1 {
+ label = "963269BHR:green:usb1";
+ gpios = <&gpio0 9 1>;
+ };
+
+ usb2 {
+ label = "963269BHR:green:usb2";
+ gpios = <&gpio0 10 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm963281TAN.dts b/target/linux/brcm63xx/dts/bcm963281TAN.dts
new file mode 100644
index 0000000..21b329a
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm963281TAN.dts
@@ -0,0 +1,40 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom bcm963281TAN reference board";
+ compatible = "brcm,bcm963281TAN", "brcm,bcm6328";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet {
+ label = "963281TAN::internet";
+ gpios = <&gpio0 1 1>;
+ };
+ power {
+ label = "963281TAN::power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ inet_fail {
+ label = "963281TAN::internet-fail";
+ gpios = <&gpio0 7 1>;
+ };
+ power_fail {
+ label = "963281TAN::power-fail";
+ gpios = <&gpio0 8 1>;
+ };
+ wps {
+ label = "963281TAN::wps";
+ gpios = <&gpio0 9 1>;
+ };
+ dsl {
+ label = "963281TAN::dsl";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96328avng.dts b/target/linux/brcm63xx/dts/bcm96328avng.dts
new file mode 100644
index 0000000..3ed4b22
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96328avng.dts
@@ -0,0 +1,40 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96328avng reference board";
+ compatible = "brcm,bcm96328avng", "brcm,bcm6328";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_fail {
+ label = "96328avng::internet-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ dsl {
+ label = "96328avng::dsl";
+ gpios = <&gpio0 3 1>;
+ };
+ power {
+ label = "96328avng::power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_fail {
+ label = "96328avng::power-fail";
+ gpios = <&gpio0 8 1>;
+ };
+ wps {
+ label = "96328avng::wps";
+ gpios = <&gpio0 9 1>;
+ };
+ inet {
+ label = "96328avng::internet";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96338GW.dts b/target/linux/brcm63xx/dts/bcm96338GW.dts
new file mode 100644
index 0000000..d7af9ef
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96338GW.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "bcm6338.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96338GW reference board";
+ compatible = "brcm,bcm96338gw", "brcm,bcm6338";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96338GW:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96338GW:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_green {
+ label = "96338GW:green:adsl";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96338GW:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ ses_green {
+ label = "96338GW:green:ses";
+ gpios = <&gpio0 5 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96338W.dts b/target/linux/brcm63xx/dts/bcm96338W.dts
new file mode 100644
index 0000000..4904073
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96338W.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "bcm6338.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96338W reference board";
+ compatible = "brcm,bcm96338w", "brcm,bcm6338";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96338W:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96338W:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_green {
+ label = "96338W:green:adsl";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96338W:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ ses_green {
+ label = "96338W:green:ses";
+ gpios = <&gpio0 5 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96345GW2.dts b/target/linux/brcm63xx/dts/bcm96345GW2.dts
new file mode 100644
index 0000000..7214185
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96345GW2.dts
@@ -0,0 +1,10 @@
+/dts-v1/;
+
+#include "bcm6345.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96345GW2 reference board";
+ compatible = "brcm,bcm96345gw2", "brcm,bcm6345";
+};
diff --git a/target/linux/brcm63xx/dts/bcm96348GW-10.dts b/target/linux/brcm63xx/dts/bcm96348GW-10.dts
new file mode 100644
index 0000000..5f60d36
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96348GW-10.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96348GW-10 reference board";
+ compatible = "brcm,bcm96348gw-10", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 6 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348GW-10:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348GW-10:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348GW-10:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348GW-10:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348GW-10:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96348GW-11.dts b/target/linux/brcm63xx/dts/bcm96348GW-11.dts
new file mode 100644
index 0000000..efd3e91
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96348GW-11.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96348GW-11 reference board";
+ compatible = "brcm,bcm96348gw-11", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348GW-11:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348GW-11:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348GW-11:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348GW-11:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348GW-11:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96348GW.dts b/target/linux/brcm63xx/dts/bcm96348GW.dts
new file mode 100644
index 0000000..cf40e52
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96348GW.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96348GW reference board";
+ compatible = "brcm,bcm96348gw", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 4 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348GW:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348GW:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348GW:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348GW:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348GW:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96348R.dts b/target/linux/brcm63xx/dts/bcm96348R.dts
new file mode 100644
index 0000000..d7df2a9
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96348R.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom 96348R reference board";
+ compatible = "brcm,bcm96348r", "brcm,bcm6348";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348R:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348R:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348R:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348R:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348R:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96358VW.dts b/target/linux/brcm63xx/dts/bcm96358VW.dts
new file mode 100644
index 0000000..ff92499
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96358VW.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96358VW reference board";
+ compatible = "brcm,bcm96358vw", "brcm,bcm6358";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96358VW:green:power";
+ gpios = <&gpio0 4 0>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96358VW:green:stop";
+ gpios = <&gpio0 5 0>;
+ };
+ adsl_fail_green {
+ label = "96358VW:green:adsl-fail";
+ gpios = <&gpio0 15 1>;
+ };
+ ppp_green {
+ label = "96358VW:green:ppp";
+ gpios = <&gpio0 22 1>;
+ };
+ ppp_fail_green {
+ label = "96358VW:green:ppp-fail";
+ gpios = <&gpio0 23 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96358VW2.dts b/target/linux/brcm63xx/dts/bcm96358VW2.dts
new file mode 100644
index 0000000..8f7070a
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96358VW2.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96358VW2 reference board";
+ compatible = "brcm,bcm96358vw2", "brcm,bcm6358";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ stop_green {
+ label = "96358VW2:green:stop";
+ gpios = <&gpio0 4 1>;
+ };
+ power_green {
+ label = "96358VW2:green:power";
+ gpios = <&gpio0 5 1>;
+ default-state = "on";
+ };
+ adsl_green {
+ label = "96358VW2:green:adsl";
+ gpios = <&gpio0 22 1>;
+ };
+ ppp_fail_green {
+ label = "96358VW2:green:ppp-fail";
+ gpios = <&gpio0 23 0>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96368MVNgr.dts b/target/linux/brcm63xx/dts/bcm96368MVNgr.dts
new file mode 100644
index 0000000..21f1395
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96368MVNgr.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96368MVNgr reference board";
+ compatible = "brcm,bcm96368mvngr", "brcm,bcm6368";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "96368MVNgr:green:adsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_fail_green {
+ label = "96368MVNgr:green:inet-fail";
+ gpios = <&gpio0 3 0>;
+ };
+ inet_green {
+ label = "96368MVNgr:green:inet";
+ gpios = <&gpio0 5 0>;
+ };
+ power_green {
+ label = "96368MVNgr:green:power";
+ gpios = <&gpio0 22 0>;
+ default-state = "on";
+ };
+ wps_green {
+ label = "96368MVNgr:green:wps";
+ gpios = <&gpio0 23 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/bcm96368MVWG.dts b/target/linux/brcm63xx/dts/bcm96368MVWG.dts
new file mode 100644
index 0000000..04442ab
--- /dev/null
+++ b/target/linux/brcm63xx/dts/bcm96368MVWG.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Broadcom BCM96368MVWG reference board";
+ compatible = "brcm,bcm96368mvwg", "brcm,bcm6368";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "96368MVWG:green:adsl";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96368MVWG:green:ppp";
+ gpios = <&gpio0 5 0>;
+ };
+ power_green {
+ label = "96368MVWG:green:power";
+ gpios = <&gpio0 22 0>;
+ default-state = "on";
+ };
+ wps_green {
+ label = "96368MVWG:green:wps";
+ gpios = <&gpio0 23 1>;
+ };
+ ppp_fail_red {
+ label = "96368MVWG:red:ppp-fail";
+ gpios = <&gpio0 31 0>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/cpva502plus.dts b/target/linux/brcm63xx/dts/cpva502plus.dts
new file mode 100644
index 0000000..f00d73e
--- /dev/null
+++ b/target/linux/brcm63xx/dts/cpva502plus.dts
@@ -0,0 +1,46 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Telsey CPVA502+";
+ compatible = "telsey,cpva502+", "brcm,bcm6348";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "CPVA502+:green:phone";
+ gpios = <&gpio0 0 1>;
+ };
+
+ status {
+ label = "CPVA502+:amber:link";
+ gpios = <&gpio0 1 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/cpva642.dts b/target/linux/brcm63xx/dts/cpva642.dts
new file mode 100644
index 0000000..8d72e02
--- /dev/null
+++ b/target/linux/brcm63xx/dts/cpva642.dts
@@ -0,0 +1,97 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Telsey CPVA642-type (CPA-ZNTE60T)";
+ compatible = "telsey,cpva642", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 4 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 5 0>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ eth_green {
+ label = "CPVA642:green:ether";
+ gpios = <&gpio0 1 1>;
+ };
+ phone2_green {
+ label = "CPVA642:green:phone2";
+ gpios = <&gpio0 2 1>;
+ };
+ usb_green {
+ label = "CPVA642:green:usb";
+ gpios = <&gpio0 3 1>;
+ };
+ phone1_green {
+ label = "CPVA642:green:phone1";
+ gpios = <&gpio0 4 1>;
+ };
+ wifi_red {
+ label = "CPVA642:red:wifi";
+ gpios = <&gpio0 6 1>;
+ };
+ link_red {
+ label = "CPVA642:red:link";
+ gpios = <&gpio0 9 1>;
+ };
+ link_green {
+ label = "CPVA642:green:link";
+ gpios = <&gpio0 10 1>;
+ };
+ power_green {
+ label = "CPVA642:green:power";
+ gpios = <&gpio0 11 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "CPVA642:red:power";
+ gpios = <&gpio0 14 1>;
+ };
+ wifi_green {
+ label = "CPVA642:green:wifi";
+ gpios = <&gpio0 28 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/ct-5365.dts b/target/linux/brcm63xx/dts/ct-5365.dts
new file mode 100644
index 0000000..6f452fe
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ct-5365.dts
@@ -0,0 +1,74 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend CT-5365";
+ compatible = "comtrend,ct-5365", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wlan {
+ label = "wlan";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 3 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348A-122:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ alarm_red {
+ label = "96348A-122:red:alarm";
+ gpios = <&gpio0 2 1>;
+ };
+ wps_green {
+ label = "96348A-122:green:wps";
+ gpios = <&gpio0 6 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/ct-6373.dts b/target/linux/brcm63xx/dts/ct-6373.dts
new file mode 100644
index 0000000..d6f0f8b
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ct-6373.dts
@@ -0,0 +1,100 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend CT-6373";
+ compatible = "comtrend,ct-6373", "brcm,bcm6358";
+
+ spi-gpio {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spi-gpio";
+
+ gpio-mosi = <&gpio0 7 0>;
+ gpio-sck = <&gpio0 6 0>;
+ num-chipselects = <0>;
+
+ hc595: gpio-spi-controller@0 {
+ compatible = "fairchild,74hc595";
+ reg = <0>;
+ registers-number = <1>;
+ spi-max-frequency = <100000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 3 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "CT6373-1:green:power";
+ gpios = <&gpio0 0 0>;
+ default-state = "on";
+ };
+ usb_green {
+ label = "CT6373-1:green:usb";
+ gpios = <&gpio0 3 1>;
+ };
+ wlan_green {
+ label = "CT6373-1:green:wlan";
+ gpios = <&gpio0 9 1>;
+ };
+ dsl_green {
+ label = "CT6373-1:green:adsl";
+ gpios = <&hc595 0 1>;
+ };
+ line_green {
+ label = "CT6373-1:green:line";
+ gpios = <&hc595 1 1>;
+ };
+ fxs1_green {
+ label = "CT6373-1:green:fxs1";
+ gpios = <&hc595 2 1>;
+ };
+ fxs2_green {
+ label = "CT6373-1:green:fxs2";
+ gpios = <&hc595 3 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/ct536plus.dts b/target/linux/brcm63xx/dts/ct536plus.dts
new file mode 100644
index 0000000..c05068a
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ct536plus.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend CT-536+/CT-5621T";
+ compatible = "comtrend,ct536+", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "CT536_CT5621:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ adsl_fail_green {
+ label = "CT536_CT5621:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/cvg834g.dts b/target/linux/brcm63xx/dts/cvg834g.dts
new file mode 100644
index 0000000..b61a07c
--- /dev/null
+++ b/target/linux/brcm63xx/dts/cvg834g.dts
@@ -0,0 +1,42 @@
+/dts-v1/;
+
+#include "bcm3368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Netgear CVG834G";
+ compatible = "netgear,cvg834g", "brcm,bcm6348";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "CVG834G:green:power";
+ gpios = <&gpio1 5 0>;
+ default-state = "on";
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dg834g_v4.dts b/target/linux/brcm63xx/dts/dg834g_v4.dts
new file mode 100644
index 0000000..1485300
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dg834g_v4.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Netgear DG834G v4";
+ compatible = "netgear,dg834g-v4", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 6 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348W3:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ status {
+ label = "96348W3:red:power";
+ gpios = <&gpio0 1 1>;
+ };
+ inet_green {
+ label = "96348W3::adsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_red {
+ label = "96348W3::internet";
+ gpios = <&gpio0 3 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dg834gtpn.dts b/target/linux/brcm63xx/dts/dg834gtpn.dts
new file mode 100644
index 0000000..8894358
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dg834gtpn.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Netgear DG834GT/PN";
+ compatible = "netgear,dg834gtpn", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 6 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348GW-10:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348GW-10:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348GW-10:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348GW-10:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348GW-10:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dgnd3700v1.dts b/target/linux/brcm63xx/dts/dgnd3700v1.dts
new file mode 100644
index 0000000..8c8c0bf
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dgnd3700v1.dts
@@ -0,0 +1,112 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Netgear DGND3700v1/DGND3800B";
+ compatible = "netgear,dgnd3700v1", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 10 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 12 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 3 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "DGND3700v1_3800B:green:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_red {
+ label = "DGND3700v1_3800B:red:inet";
+ gpios = <&gpio0 4 1>;
+ };
+ inet_green {
+ label = "DGND3700v1_3800B:green:inet";
+ gpios = <&gpio0 5 1>;
+ };
+ wps_green {
+ label = "DGND3700v1_3800B:green:wps";
+ gpios = <&gpio0 11 1>;
+ };
+ usbfront_green {
+ label = "DGND3700v1_3800B:green:usb-front";
+ gpios = <&gpio0 13 1>;
+ };
+ usbback_green {
+ label = "DGND3700v1_3800B:green:usb-back";
+ gpios = <&gpio0 14 1>;
+ };
+ power_red {
+ label = "DGND3700v1_3800B:red:power";
+ gpios = <&gpio0 22 1>;
+ };
+ lan_green {
+ label = "DGND3700v1_3800B:green:lan";
+ gpios = <&gpio0 23 1>;
+ };
+ power_green {
+ label = "DGND3700v1_3800B:green:power";
+ gpios = <&gpio0 24 1>;
+ default-state = "on";
+ };
+ wifi2g_green {
+ label = "DGND3700v1_3800B:green:wifi2g";
+ gpios = <&gpio0 26 1>;
+ };
+ wifi5g_blue {
+ label = "DGND3700v1_3800B:blue:wifi5g";
+ gpios = <&gpio0 27 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0x1e20000>;
+ };
+
+ board_data@1e40000 {
+ label = "board_data";
+ reg = <0x1e40000 0x1a0000>;
+ read-only;
+ };
+
+ nvram@1fe0000 {
+ label = "nvram";
+ reg = <0x1fe0000 0x20000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dsl-2640b-b.dts b/target/linux/brcm63xx/dts/dsl-2640b-b.dts
new file mode 100644
index 0000000..83b36a5
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dsl-2640b-b.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DSL-2640B rev B2";
+ compatible = "d-link,dsl-2640b-b", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 7 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "D-4P-W:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ status {
+ label = "D-4P-W::status";
+ gpios = <&gpio0 3 1>;
+ };
+ inet_green {
+ label = "D-4P-W:green:internet";
+ gpios = <&gpio0 4 1>;
+ };
+ inet_red {
+ label = "D-4P-W:red:internet";
+ gpios = <&gpio0 5 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dsl-2640u.dts b/target/linux/brcm63xx/dts/dsl-2640u.dts
new file mode 100644
index 0000000..d3d2772
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dsl-2640u.dts
@@ -0,0 +1,52 @@
+/dts-v1/;
+
+#include "bcm6338.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DSL-2640U/BRU/C";
+ compatible = "d-link,dsl-2640u", "brcm,bcm6338";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ green_power {
+ label = "96338W2_E7T:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+
+ green_stop {
+ label = "96338W2_E7T:green:ppp";
+ gpios = <&gpio0 4 1>;
+ };
+
+ green_adsl {
+ label = "96338W2_E7T:green:ppp-fail";
+ gpios = <&gpio0 5 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dsl-2650u.dts b/target/linux/brcm63xx/dts/dsl-2650u.dts
new file mode 100644
index 0000000..2847c18
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dsl-2650u.dts
@@ -0,0 +1,54 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DSL-2650U";
+ compatible = "d-link,dsl-2650u", "brcm,bcm6358";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ stop_green {
+ label = "96358VW2:green:stop";
+ gpios = <&gpio0 4 1>;
+ };
+ power_green {
+ label = "96358VW2:green:power";
+ gpios = <&gpio0 5 1>;
+ default-state = "on";
+ };
+ adsl_green {
+ label = "96358VW2:green:adsl";
+ gpios = <&gpio0 22 1>;
+ };
+ ppp_fail_green {
+ label = "96358VW2:green:ppp-fail";
+ gpios = <&gpio0 23 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dsl-274xb-c.dts b/target/linux/brcm63xx/dts/dsl-274xb-c.dts
new file mode 100644
index 0000000..29ae125
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dsl-274xb-c.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DSL-2740B/DSL-2741B rev C2/3";
+ compatible = "d-link,dsl-274xb-c2", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_green {
+ label = "dsl-274xb:green:internet";
+ gpios = <&gpio0 2 0>;
+ };
+ power_red {
+ label = "dsl-274xb:red:power";
+ gpios = <&gpio0 4 1>;
+ };
+ power_green {
+ label = "dsl-274xb:green:power";
+ gpios = <&gpio0 5 1>;
+ default-state = "on";
+ };
+ dsl_green {
+ label = "dsl-274xb:green:adsl";
+ gpios = <&gpio0 9 1>;
+ };
+ inet_red {
+ label = "dsl-274xb:red:internet";
+ gpios = <&gpio0 10 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dsl-274xb-f.dts b/target/linux/brcm63xx/dts/dsl-274xb-f.dts
new file mode 100644
index 0000000..fb1ded7
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dsl-274xb-f.dts
@@ -0,0 +1,64 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DSL-2740B/DSL-2741B rev F1";
+ compatible = "d-link,dsl-274xb-f", "brcm,bcm6328";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio0 10 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 24 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_red {
+ label = "dsl-274xb:red:internet";
+ gpios = <&gpio0 2 1>;
+ };
+ dsl_green {
+ label = "dsl-274xb:green:dsl";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "dsl-274xb:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "dsl-274xb:red:power";
+ gpios = <&gpio0 8 1>;
+ };
+ wps_blue {
+ label = "dsl-274xb:blue:wps";
+ gpios = <&gpio0 9 1>;
+ };
+ inet_green {
+ label = "dsl-274xb:green:internet";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dsl-275xb-d.dts b/target/linux/brcm63xx/dts/dsl-275xb-d.dts
new file mode 100644
index 0000000..dd00e2c
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dsl-275xb-d.dts
@@ -0,0 +1,77 @@
+/dts-v1/;
+
+#include "bcm6318.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DSL-2750B/DSL-2751 rev D1";
+ compatible = "d-link,dsl-275xb-d", "brcm,bcm6318";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wifi {
+ label = "wifi";
+ gpios = <&gpio0 2 1>;
+ linux,code = <KEY_WLAN>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "dsl-275xb:green:power";
+ gpios = <&gpio0 3 1>;
+ default-state = "on";
+ };
+
+ inet_green {
+ label = "dsl-275xb:green:inet";
+ gpios = <&gpio0 8 1>;
+ };
+
+ inet_red {
+ label = "dsl-275xb:red:inet-fail";
+ gpios = <&gpio0 9 1>;
+ };
+
+ power_red {
+ label = "dsl-275xb:red:post-failed";
+ gpios = <&gpio0 11 1>;
+ };
+
+ wps_blue {
+ label = "dsl-275xb:blue:wps";
+ gpios = <&gpio0 16 1>;
+ };
+
+ dsl_green {
+ label = "dsl-275xb:green:dsl";
+ gpios = <&gpio0 17 1>;
+ };
+
+ usb_green {
+ /* not user controllable? */
+ label = "dsl-275xb:green:usb";
+ gpios = <&gpio1 17 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dv-201amr.dts b/target/linux/brcm63xx/dts/dv-201amr.dts
new file mode 100644
index 0000000..f792ac2
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dv-201amr.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Davolink DV-201AMR";
+ compatible = "davolink,dv-201amr", "brcm,bcm6348";
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ backup@0 {
+ label = "backup";
+ reg = <0x000000 0x400000>;
+ };
+
+ cfe@400000 {
+ label = "cfe";
+ reg = <0x400000 0x010000>;
+ read-only;
+ };
+
+ linux@410000 {
+ label = "linux";
+ reg = <0x410000 0x3f0000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts b/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts
new file mode 100644
index 0000000..2009825
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dva-g3810bn_tl.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "D-Link DVA-G3810BN/TL";
+ compatible = "d-link,dva-g3810bn/tl", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ voip {
+ label = "DVAG3810BN::voip";
+ gpios = <&gpio0 1 0>;
+ };
+ power {
+ label = "DVAG3810BN::power";
+ gpios = <&gpio0 4 0>;
+ default-state = "on";
+ };
+ stop {
+ label = "DVAG3810BN::stop";
+ gpios = <&gpio0 5 0>;
+ };
+ dsl {
+ label = "DVAG3810BN::dsl";
+ gpios = <&gpio0 22 1>;
+ };
+ inet {
+ label = "DVAG3810BN::internet";
+ gpios = <&gpio0 23 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/f5d7633.dts b/target/linux/brcm63xx/dts/f5d7633.dts
new file mode 100644
index 0000000..519df1e
--- /dev/null
+++ b/target/linux/brcm63xx/dts/f5d7633.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Belkin F5D7633";
+ compatible = "belkin,f5d7633", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 6 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348GW-10:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348GW-10:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348GW-10:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348GW-10:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348GW-10:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0x3c0000>;
+ };
+
+ nvram@3e0000 {
+ label = "nvram";
+ reg = <0x3e0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/fast2404.dts b/target/linux/brcm63xx/dts/fast2404.dts
new file mode 100644
index 0000000..5309703
--- /dev/null
+++ b/target/linux/brcm63xx/dts/fast2404.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Sagem F@ST2404";
+ compatible = "sagem,f@st2404", "brcm,bcm6348";
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/fast2504n.dts b/target/linux/brcm63xx/dts/fast2504n.dts
new file mode 100644
index 0000000..cf453af
--- /dev/null
+++ b/target/linux/brcm63xx/dts/fast2504n.dts
@@ -0,0 +1,59 @@
+/dts-v1/;
+
+#include "bcm6362.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Sagem F@ST2504n";
+ compatible = "sagem,f@st2504n", "brcm,bcm6362";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 24 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 25 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_orange {
+ label = "fast2504n:orange:power";
+ gpios = <&gpio0 2 1>;
+ };
+ power_green {
+ label = "fast2504n:green:power";
+ gpios = <&gpio0 10 1>;
+ default-state = "on";
+ };
+ inet_red {
+ label = "fast2504n:red:internet";
+ gpios = <&gpio0 26 1>;
+ };
+ ok_green {
+ label = "fast2504n:green:ok";
+ gpios = <&gpio0 28 1>;
+ };
+ ok_orange {
+ label = "fast2504n:orange:ok";
+ gpios = <&gpio0 29 1>;
+ };
+ wlan_orangee {
+ label = "fast2504n:orange:wlan";
+ gpios = <&gpio0 30 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/fast2604.dts b/target/linux/brcm63xx/dts/fast2604.dts
new file mode 100644
index 0000000..c6b71d1
--- /dev/null
+++ b/target/linux/brcm63xx/dts/fast2604.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Sagem F@ST2604";
+ compatible = "sagem,f@st2604", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "F@ST2604:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "F@ST2604:red:power";
+ gpios = <&gpio0 1 1>;
+ };
+ inet_red {
+ label = "F@ST2604:red:inet";
+ gpios = <&gpio0 4 1>;
+ };
+ wps_green {
+ label = "F@ST2604:green:wps";
+ gpios = <&gpio0 5 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/fast2704n.dts b/target/linux/brcm63xx/dts/fast2704n.dts
new file mode 100644
index 0000000..232d4d1
--- /dev/null
+++ b/target/linux/brcm63xx/dts/fast2704n.dts
@@ -0,0 +1,84 @@
+/dts-v1/;
+
+#include "bcm6318.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Sagem F@ST2704N";
+ compatible = "sagem,f@st2704n", "brcm,bcm6318";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 1 0>;
+ linux,code = <KEY_WLAN>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wps_green {
+ label = "F@ST2704N:green:wps";
+ gpios = <&gpio0 2 1>;
+ };
+ lan1_green {
+ label = "F@ST2704N:green:lan1";
+ gpios = <&gpio0 4 1>;
+ };
+ lan2_green {
+ label = "F@ST2704N:green:lan2";
+ gpios = <&gpio0 5 1>;
+ };
+ lan3_green {
+ label = "F@ST2704N:green:lan3";
+ gpios = <&gpio0 6 1>;
+ };
+ lan4_green {
+ label = "F@ST2704N:green:lan4";
+ gpios = <&gpio0 7 1>;
+ };
+ inet_green {
+ label = "F@ST2704N:green:inet";
+ gpios = <&gpio0 8 1>;
+ };
+ inet_red {
+ label = "F@ST2704N:red:inet";
+ gpios = <&gpio0 9 1>;
+ };
+ dsl_green {
+ label = "F@ST2704N:green:dsl";
+ gpios = <&gpio0 10 1>;
+ };
+ power_red {
+ label = "F@ST2704N:red:power";
+ gpios = <&gpio0 11 1>;
+ };
+ power_green {
+ label = "F@ST2704N:green:power";
+ gpios = <&gpio1 15 1>;
+ default-state = "on";
+ };
+ usb_green {
+ label = "F@ST2704N:green:usb";
+ gpios = <&gpio1 17 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/fast2704v2.dts b/target/linux/brcm63xx/dts/fast2704v2.dts
new file mode 100644
index 0000000..3f56827
--- /dev/null
+++ b/target/linux/brcm63xx/dts/fast2704v2.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Sagem F@ST2704V2";
+ compatible = "sagem,f@st2704v2", "brcm,bcm6328";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio0 15 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 24 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb_green {
+ label = "F@ST2704V2:green:usb";
+ gpios = <&gpio0 1 1>;
+ };
+ inet_red {
+ label = "F@ST2704V2:red:inet";
+ gpios = <&gpio0 2 1>;
+ };
+ dsl_green {
+ label = "F@ST2704V2:green:dsl";
+ gpios = <&gpio0 3 1>;
+ };
+ power_green {
+ label = "F@ST2704V2:green:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "F@ST2704V2:red:power";
+ gpios = <&gpio0 5 1>;
+ };
+ wps_green {
+ label = "F@ST2704V2:green:wps";
+ gpios = <&gpio0 10 1>;
+ };
+ inet_green {
+ label = "F@ST2704V2:green:inet";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/gw6000.dts b/target/linux/brcm63xx/dts/gw6000.dts
new file mode 100644
index 0000000..69424e0
--- /dev/null
+++ b/target/linux/brcm63xx/dts/gw6000.dts
@@ -0,0 +1,24 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "TECOM GW6000";
+ compatible = "tecom,gw6000", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 4 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/gw6200.dts b/target/linux/brcm63xx/dts/gw6200.dts
new file mode 100644
index 0000000..2bd4381
--- /dev/null
+++ b/target/linux/brcm63xx/dts/gw6200.dts
@@ -0,0 +1,45 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "TECOM GW6200";
+ compatible = "tecom,gw6200", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 4 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ line1_green {
+ label = "GW6200:green:line1";
+ gpios = <&gpio0 4 1>;
+ };
+ line2_green {
+ label = "GW6200:green:line2";
+ gpios = <&gpio0 5 1>;
+ };
+ line3_green {
+ label = "GW6200:green:line3";
+ gpios = <&gpio0 6 1>;
+ };
+ tel_green {
+ label = "GW6200:green:tel";
+ gpios = <&gpio0 7 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/hg520v.dts b/target/linux/brcm63xx/dts/hg520v.dts
new file mode 100644
index 0000000..7b6b36f
--- /dev/null
+++ b/target/linux/brcm63xx/dts/hg520v.dts
@@ -0,0 +1,55 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Huawei EchoLife HG520v";
+ compatible = "huawei,hg520v", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_green {
+ label = "HW520:green:net";
+ gpios = <&gpio1 0 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/hg553.dts b/target/linux/brcm63xx/dts/hg553.dts
new file mode 100644
index 0000000..b23ceaa
--- /dev/null
+++ b/target/linux/brcm63xx/dts/hg553.dts
@@ -0,0 +1,94 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Huawei EchoLife HG553";
+ compatible = "huawei,hg553", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio0 9 1>;
+ linux,code = <KEY_RFKILL>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "HW553:blue:power";
+ gpios = <&gpio0 4 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "HW553:red:power";
+ gpios = <&gpio0 5 1>;
+ };
+ hspa_red {
+ label = "HW553:red:hspa";
+ gpios = <&gpio0 12 1>;
+ };
+ hspa_blue {
+ label = "HW553:blue:hspa";
+ gpios = <&gpio0 13 1>;
+ };
+ lan_red {
+ label = "HW553:red:lan";
+ gpios = <&gpio0 22 1>;
+ };
+ lan_blue {
+ label = "HW553:blue:lan";
+ gpios = <&gpio0 23 1>;
+ };
+ wifi_red {
+ label = "HW553:red:wifi";
+ gpios = <&gpio0 25 1>;
+ };
+ dsl_red {
+ label = "HW553:red:adsl";
+ gpios = <&gpio1 2 1>;
+ };
+ dsl_blue {
+ label = "HW553:blue:adsl";
+ gpios = <&gpio1 3 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/hg556a-a.dts b/target/linux/brcm63xx/dts/hg556a-a.dts
new file mode 100644
index 0000000..98e0a83
--- /dev/null
+++ b/target/linux/brcm63xx/dts/hg556a-a.dts
@@ -0,0 +1,126 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Huawei EchoLife HG556a (version A)";
+ compatible = "huawei,hg556a-a", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ help {
+ label = "help";
+ gpios = <&gpio0 8 1>;
+ linux,code = <KEY_HELP>;
+ };
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 9 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio0 10 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <KEY_CONFIG>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ message_red {
+ label = "HW556:red:message";
+ gpios = <&gpio0 0 1>;
+ };
+ hspa_red {
+ label = "HW556:red:hspa";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_red {
+ label = "HW556:red:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ power_red {
+ label = "HW556:red:power";
+ gpios = <&gpio0 3 1>;
+ default-state = "on";
+ };
+ all_red {
+ label = "HW556:red:all";
+ gpios = <&gpio0 6 1>;
+ default-state = "on";
+ };
+ lan1_green {
+ label = "HW556:green:lan1";
+ gpios = <&gpio0 12 1>;
+ };
+ lan1_red {
+ label = "HW556:red:lan1";
+ gpios = <&gpio0 13 1>;
+ };
+ lan2_green {
+ label = "HW556:green:lan2";
+ gpios = <&gpio0 15 1>;
+ };
+ lan2_red {
+ label = "HW556:red:lan2";
+ gpios = <&gpio0 22 1>;
+ };
+ lan3_green {
+ label = "HW556:green:lan3";
+ gpios = <&gpio0 23 1>;
+ };
+ lan3_red {
+ label = "HW556:red:lan3";
+ gpios = <&gpio0 26 1>;
+ };
+ lan4_green {
+ label = "HW556:green:lan4";
+ gpios = <&gpio0 27 1>;
+ };
+ lan4_red {
+ label = "HW556:red:lan4";
+ gpios = <&gpio0 28 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xec0000>;
+ };
+
+ cal_data@ee0000 {
+ label = "cal_data";
+ reg = <0xee0000 0x100000>;
+ read-only;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/hg556a-b.dts b/target/linux/brcm63xx/dts/hg556a-b.dts
new file mode 100644
index 0000000..8a19856
--- /dev/null
+++ b/target/linux/brcm63xx/dts/hg556a-b.dts
@@ -0,0 +1,126 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Huawei EchoLife HG556a (version B)";
+ compatible = "huawei,hg556a-b", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ help {
+ label = "help";
+ gpios = <&gpio0 8 1>;
+ linux,code = <KEY_HELP>;
+ };
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 9 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio0 10 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <KEY_CONFIG>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ message_red {
+ label = "HW556:red:message";
+ gpios = <&gpio0 0 1>;
+ };
+ hspa_red {
+ label = "HW556:red:hspa";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_red {
+ label = "HW556:red:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ power_red {
+ label = "HW556:red:power";
+ gpios = <&gpio0 3 1>;
+ default-state = "on";
+ };
+ all_red {
+ label = "HW556:red:all";
+ gpios = <&gpio0 6 1>;
+ default-state = "on";
+ };
+ lan1_green {
+ label = "HW556:green:lan1";
+ gpios = <&gpio0 12 1>;
+ };
+ lan1_red {
+ label = "HW556:red:lan1";
+ gpios = <&gpio0 13 1>;
+ };
+ lan2_green {
+ label = "HW556:green:lan2";
+ gpios = <&gpio0 15 1>;
+ };
+ lan2_red {
+ label = "HW556:red:lan2";
+ gpios = <&gpio0 22 1>;
+ };
+ lan3_green {
+ label = "HW556:green:lan3";
+ gpios = <&gpio0 23 1>;
+ };
+ lan3_red {
+ label = "HW556:red:lan3";
+ gpios = <&gpio0 26 1>;
+ };
+ lan4_green {
+ label = "HW556:green:lan4";
+ gpios = <&gpio0 27 1>;
+ };
+ lan4_red {
+ label = "HW556:red:lan4";
+ gpios = <&gpio0 28 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xec0000>;
+ };
+
+ cal_data@ee0000 {
+ label = "cal_data";
+ reg = <0xee0000 0x100000>;
+ read-only;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/hg556a-c.dts b/target/linux/brcm63xx/dts/hg556a-c.dts
new file mode 100644
index 0000000..9798091
--- /dev/null
+++ b/target/linux/brcm63xx/dts/hg556a-c.dts
@@ -0,0 +1,121 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Huawei EchoLife HG556a (version C)";
+ compatible = "huawei,hg556a-c", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ help {
+ label = "help";
+ gpios = <&gpio0 8 1>;
+ linux,code = <KEY_HELP>;
+ };
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 9 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ restart {
+ label = "restart";
+ gpios = <&gpio0 10 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 1>;
+ linux,code = <KEY_CONFIG>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ lan1_green {
+ label = "HW556:green:lan1";
+ gpios = <&gpio0 0 1>;
+ };
+ lan2_green {
+ label = "HW556:green:lan2";
+ gpios = <&gpio0 1 1>;
+ };
+ dsl_red {
+ label = "HW556:red:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ power_red {
+ label = "HW556:red:power";
+ gpios = <&gpio0 3 1>;
+ default-state = "on";
+ };
+ message_red {
+ label = "HW556:red:message";
+ gpios = <&gpio0 12 1>;
+ };
+ lan1_red {
+ label = "HW556:red:lan1";
+ gpios = <&gpio0 13 1>;
+ };
+ hspa_red {
+ label = "HW556:red:hspa";
+ gpios = <&gpio0 15 1>;
+ };
+ lan2_red {
+ label = "HW556:red:lan2";
+ gpios = <&gpio0 22 1>;
+ };
+ lan3_green {
+ label = "HW556:green:lan3";
+ gpios = <&gpio0 23 1>;
+ };
+ lan3_red {
+ label = "HW556:red:lan3";
+ gpios = <&gpio0 26 1>;
+ };
+ lan4_green {
+ label = "HW556:green:lan4";
+ gpios = <&gpio0 27 1>;
+ };
+ lan4_red {
+ label = "HW556:red:lan4";
+ gpios = <&gpio0 28 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xec0000>;
+ };
+
+ cal_data@ee0000 {
+ label = "cal_data";
+ reg = <0xee0000 0x100000>;
+ read-only;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/hg655b.dts b/target/linux/brcm63xx/dts/hg655b.dts
new file mode 100644
index 0000000..b7722df
--- /dev/null
+++ b/target/linux/brcm63xx/dts/hg655b.dts
@@ -0,0 +1,112 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Huawei HG655b";
+ compatible = "huawei,hg655b", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 23 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "HW65x:green:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ internet_green {
+ label = "HW65x:green:internet";
+ gpios = <&gpio0 5 1>;
+ };
+ lan1_green {
+ label = "HW65x:green:lan1";
+ gpios = <&gpio0 6 1>;
+ };
+ lan2_green {
+ label = "HW65x:green:lan2";
+ gpios = <&gpio0 7 1>;
+ };
+ lan3_green {
+ label = "HW65x:green:lan3";
+ gpios = <&gpio0 8 1>;
+ };
+ lan4_green {
+ label = "HW65x:green:lan4";
+ gpios = <&gpio0 9 1>;
+ };
+ usb_green {
+ label = "HW65x:green:usb";
+ gpios = <&gpio0 14 1>;
+ };
+ power_green {
+ label = "HW65x:green:power";
+ gpios = <&gpio0 22 1>;
+ default-state = "on";
+ };
+ voip_green {
+ label = "HW65x:green:voip";
+ gpios = <&gpio0 25 1>;
+ };
+ wps_green {
+ label = "HW65x:green:wps";
+ gpios = <&gpio0 27 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0x770000>;
+ };
+
+ board_data@790000 {
+ label = "board_data";
+ reg = <0x790000 0x030000>;
+ };
+
+ cal_data@7c0000 {
+ label = "cal_data";
+ reg = <0x7c0000 0x020000>;
+ read-only;
+ };
+
+ nvram@7d0000 {
+ label = "nvram";
+ reg = <0x7e0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/homehub2a.dts b/target/linux/brcm63xx/dts/homehub2a.dts
new file mode 100644
index 0000000..9e7ce2f
--- /dev/null
+++ b/target/linux/brcm63xx/dts/homehub2a.dts
@@ -0,0 +1,142 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "BT Home Hub 2.0 Type A";
+ compatible = "thomson,homehub2a", "brcm,bcm6358";
+
+ spi-gpio {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spi-gpio";
+
+ gpio-mosi = <&gpio0 7 0>;
+ gpio-sck = <&gpio0 6 0>;
+ cs-gpios = <&gpio0 5 0>;
+ num-chipselects = <1>;
+
+ hc595: gpio-spi-controller@0 {
+ compatible = "fairchild,74hc595";
+ reg = <0>;
+ registers-number = <2>;
+ spi-max-frequency = <100000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ phone {
+ label = "phone";
+ gpios = <&gpio0 1 1>;
+ linux,code = <169>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 9 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 11 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_red {
+ label = "HOMEHUB2A:red:power";
+ gpios = <&hc595 0 1>;
+ };
+ power_green {
+ label = "HOMEHUB2A:green:power";
+ gpios = <&hc595 1 1>;
+ default-state = "on";
+ };
+ power_blue {
+ label = "HOMEHUB2A:blue:power";
+ gpios = <&hc595 2 1>;
+ };
+ broadband_red {
+ label = "HOMEHUB2A:red:broadband";
+ gpios = <&hc595 3 1>;
+ };
+ broadband_green {
+ label = "HOMEHUB2A:green:broadband";
+ gpios = <&hc595 4 1>;
+ };
+ broadband_blue {
+ label = "HOMEHUB2A:blue:broadband";
+ gpios = <&hc595 5 1>;
+ };
+ wireless_red {
+ label = "HOMEHUB2A:red:wireless";
+ gpios = <&hc595 6 1>;
+ };
+ wireless_green {
+ label = "HOMEHUB2A:green:wireless";
+ gpios = <&hc595 7 1>;
+ };
+ wireless_blue {
+ label = "HOMEHUB2A:blue:wireless";
+ gpios = <&hc595 8 1>;
+ };
+ phone_red {
+ label = "HOMEHUB2A:red:phone";
+ gpios = <&hc595 9 1>;
+ };
+ phone_green {
+ label = "HOMEHUB2A:green:phone";
+ gpios = <&hc595 10 1>;
+ };
+ phone_blue {
+ label = "HOMEHUB2A:blue:phone";
+ gpios = <&hc595 11 1>;
+ };
+ upgrading_red {
+ label = "HOMEHUB2A:red:upgrading";
+ gpios = <&hc595 12 1>;
+ };
+ upgrading_green {
+ label = "HOMEHUB2A:green:upgrading";
+ gpios = <&hc595 13 1>;
+ };
+ upgrading_blue {
+ label = "HOMEHUB2A:blue:upgrading";
+ gpios = <&hc595 14 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/livebox-blue-5g.dts b/target/linux/brcm63xx/dts/livebox-blue-5g.dts
new file mode 100644
index 0000000..bc3d403
--- /dev/null
+++ b/target/linux/brcm63xx/dts/livebox-blue-5g.dts
@@ -0,0 +1,68 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Inventel Livebox 1";
+ compatible = "inventel,livebox-blue-5g", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ button1 {
+ label = "BTN_1";
+ gpios = <&gpio1 4 1>;
+ linux,code = <BTN_1>;
+ };
+
+ button2 {
+ label = "BTN_2";
+ gpios = <&gpio0 7 1>;
+ linux,code = <BTN_2>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ red_adsl_fail {
+ label = "Livebox-blue-5g:red:adsl-fail";
+ gpios = <&gpio0 0 0>;
+ default-state = "on";
+ };
+
+ red_adsl {
+ label = "Livebox-blue-5g:red:adsl-fail";
+ gpios = <&gpio0 1 0>;
+ };
+
+ red_traffic {
+ label = "Livebox-blue-5g:red:adsl-fail";
+ gpios = <&gpio0 2 0>;
+ };
+
+ red_phone {
+ label = "Livebox-blue-5g:red:adsl-fail";
+ gpios = <&gpio0 3 0>;
+ };
+
+ red_wifi {
+ label = "Livebox-blue-5g:red:adsl-fail";
+ gpios = <&gpio0 4 0>;
+ };
+ };
+};
+
+&pflash {
+ reg = <0x1e400000 0x800000>;
+ status = "ok";
+
+ linux,part-probe = "redboot";
+};
diff --git a/target/linux/brcm63xx/dts/magic.dts b/target/linux/brcm63xx/dts/magic.dts
new file mode 100644
index 0000000..b923ee8
--- /dev/null
+++ b/target/linux/brcm63xx/dts/magic.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Alice W-Gate";
+ compatible = "telsey,magic", "brcm,bcm6348";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power {
+ label = "MAGIC:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+
+ stop {
+ label = "MAGIC:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+
+ hpna {
+ label = "MAGIC:green:hpna";
+ gpios = <&gpio0 4 1>;
+ };
+
+ status {
+ label = "MAGIC:green:adsl";
+ gpios = <&gpio0 5 1>;
+ };
+
+ voip {
+ label = "MAGIC:green:voip";
+ gpios = <&gpio0 22 1>;
+ };
+
+ wifi {
+ label = "MAGIC:green:wifi";
+ gpios = <&gpio0 28 0>;
+ };
+
+ usb {
+ label = "MAGIC:green:usb";
+ gpios = <&gpio1 3 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/nb4-fxc-r1.dts b/target/linux/brcm63xx/dts/nb4-fxc-r1.dts
new file mode 100644
index 0000000..65f26c7
--- /dev/null
+++ b/target/linux/brcm63xx/dts/nb4-fxc-r1.dts
@@ -0,0 +1,100 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "SFR Neuf Box 4 (Foxconn)";
+ compatible = "sfr,nb4-fxc-r1", "brcm,bcm6358";
+
+ spi-gpio {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spi-gpio";
+
+ gpio-mosi = <&gpio0 7 0>;
+ gpio-sck = <&gpio0 6 0>;
+ num-chipselects = <0>;
+
+ hc595: gpio-spi-controller@0 {
+ compatible = "fairchild,74hc595";
+ reg = <0>;
+ registers-number = <1>;
+ spi-max-frequency = <100000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ service {
+ label = "service";
+ gpios = <&gpio0 27 1>;
+ linux,code = <BTN_0>;
+ };
+ clip {
+ label = "clip";
+ gpios = <&gpio0 31 1>;
+ linux,code = <BTN_1>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ traffic_white {
+ label = "NB4-FXC-r1:white:traffic";
+ gpios = <&gpio0 2 0>;
+ };
+ service_blue {
+ label = "NB4-FXC-r1:blue:service";
+ gpios = <&gpio0 4 0>;
+ };
+ wifi_white {
+ label = "NB4-FXC-r1:white:wifi";
+ gpios = <&gpio0 15 0>;
+ };
+ service_red {
+ label = "NB4-FXC-r1:red:service";
+ gpios = <&gpio0 29 0>;
+ };
+ service_green {
+ label = "NB4-FXC-r1:green:service";
+ gpios = <&gpio0 30 0>;
+ };
+ alarm_white {
+ label = "NB4-FXC-r1:white:alarm";
+ gpios = <&hc595 0 1>;
+ };
+ tv_white {
+ label = "NB4-FXC-r1:white:tv";
+ gpios = <&hc595 2 1>;
+ };
+ tel_white {
+ label = "NB4-FXC-r1:white:tel";
+ gpios = <&hc595 3 1>;
+ };
+ adsl_white {
+ label = "NB4-FXC-r0:white:adsl";
+ gpios = <&hc595 4 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/nb4-ser-r0.dts b/target/linux/brcm63xx/dts/nb4-ser-r0.dts
new file mode 100644
index 0000000..1a48b72
--- /dev/null
+++ b/target/linux/brcm63xx/dts/nb4-ser-r0.dts
@@ -0,0 +1,100 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "SFR Neuf Box 4 (Sercomm)";
+ compatible = "sfr,nb4-ser-r0", "brcm,bcm6358";
+
+ spi-gpio {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "spi-gpio";
+
+ gpio-mosi = <&gpio0 7 0>;
+ gpio-sck = <&gpio0 6 0>;
+ num-chipselects = <0>;
+
+ hc595: gpio-spi-controller@0 {
+ compatible = "fairchild,74hc595";
+ reg = <0>;
+ registers-number = <1>;
+ spi-max-frequency = <100000>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ service {
+ label = "service";
+ gpios = <&gpio0 27 1>;
+ linux,code = <BTN_0>;
+ };
+ clip {
+ label = "clip";
+ gpios = <&gpio0 31 1>;
+ linux,code = <BTN_1>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ traffic_white {
+ label = "NB4-SER-r0:white:traffic";
+ gpios = <&gpio0 2 1>;
+ };
+ service_blue {
+ label = "NB4-SER-r0:blue:service";
+ gpios = <&gpio0 4 1>;
+ };
+ wifi_white {
+ label = "NB4-SER-r0:white:wifi";
+ gpios = <&gpio0 15 1>;
+ };
+ service_red {
+ label = "NB4-SER-r0:red:service";
+ gpios = <&gpio0 29 1>;
+ };
+ service_green {
+ label = "NB4-SER-r0:green:service";
+ gpios = <&gpio0 30 1>;
+ };
+ alarm_white {
+ label = "NB4-SER-r0:white:alarm";
+ gpios = <&hc595 0 1>;
+ };
+ tv_white {
+ label = "NB4-SER-r0:white:tv";
+ gpios = <&hc595 2 1>;
+ };
+ tel_white {
+ label = "NB4-SER-r0:white:tel";
+ gpios = <&hc595 3 1>;
+ };
+ adsl_white {
+ label = "NB4-SER-r0:white:adsl";
+ gpios = <&hc595 4 1>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/nb6-ser-r0.dts b/target/linux/brcm63xx/dts/nb6-ser-r0.dts
new file mode 100644
index 0000000..c23ff90
--- /dev/null
+++ b/target/linux/brcm63xx/dts/nb6-ser-r0.dts
@@ -0,0 +1,39 @@
+/dts-v1/;
+
+#include "bcm6362.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "SFR neufbox 6 (Sercomm)";
+ compatible = "sfr,nb6-ser-r0", "brcm,bcm6362";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ service {
+ label = "service";
+ gpios = <&gpio0 10 1>;
+ linux,code = <BTN_0>;
+ };
+ wlan {
+ label = "wlan";
+ gpios = <&gpio0 12 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio0 24 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 25 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/p870hw-51a-v2.dts b/target/linux/brcm63xx/dts/p870hw-51a-v2.dts
new file mode 100644
index 0000000..606b896
--- /dev/null
+++ b/target/linux/brcm63xx/dts/p870hw-51a-v2.dts
@@ -0,0 +1,77 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Zyxel P870HW-51a v2";
+ compatible = "zyxel,p870hw-51a-v2", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 3 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "P870HW-51a:green:power";
+ gpios = <&gpio0 0 0>;
+ default-state = "on";
+ };
+ dsl_green {
+ label = "P870HW-51a:green:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_green {
+ label = "P870HW-51a:green:inet";
+ gpios = <&gpio0 22 1>;
+ };
+ wps_orange {
+ label = "P870HW-51a:orange:wps";
+ gpios = <&gpio0 24 1>;
+ };
+ inet_red {
+ label = "P870HW-51a:red:inet";
+ gpios = <&gpio1 1 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/rg100a.dts b/target/linux/brcm63xx/dts/rg100a.dts
new file mode 100644
index 0000000..503ae57
--- /dev/null
+++ b/target/linux/brcm63xx/dts/rg100a.dts
@@ -0,0 +1,54 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Alcatel RG100A";
+ compatible = "alcatel,rg100a", "brcm,bcm6358";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ stop_green {
+ label = "96358VW2:green:stop";
+ gpios = <&gpio0 4 1>;
+ };
+ power_green {
+ label = "96358VW2:green:power";
+ gpios = <&gpio0 5 1>;
+ default-state = "on";
+ };
+ adsl_green {
+ label = "96358VW2:green:adsl";
+ gpios = <&gpio0 22 1>;
+ };
+ ppp_fail_green {
+ label = "96358VW2:green:ppp-fail";
+ gpios = <&gpio0 23 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0xfc0000>;
+ };
+
+ nvram@fe0000 {
+ label = "nvram";
+ reg = <0xfe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/rta1025w.dts b/target/linux/brcm63xx/dts/rta1025w.dts
new file mode 100644
index 0000000..5d0dce0
--- /dev/null
+++ b/target/linux/brcm63xx/dts/rta1025w.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Dynalink RTA1025W";
+ compatible = "dynalink,rta1025w", "brcm,bcm6348";
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/rta1320.dts b/target/linux/brcm63xx/dts/rta1320.dts
new file mode 100644
index 0000000..c8c2827
--- /dev/null
+++ b/target/linux/brcm63xx/dts/rta1320.dts
@@ -0,0 +1,54 @@
+/dts-v1/;
+
+#include "bcm6338.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Dynalink RTA1320";
+ compatible = "dynalink,rta1320", "brcm,bcm6338";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ green_power {
+ label = "RTA1320_16M:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ green_stop {
+ label = "RTA1320_16M:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ green_adsl {
+ label = "RTA1320_16M:green:adsl";
+ gpios = <&gpio0 3 1>;
+ };
+ green_ppp {
+ label = "RTA1320_16M:green:ppp";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/rta770bw.dts b/target/linux/brcm63xx/dts/rta770bw.dts
new file mode 100644
index 0000000..d24334e
--- /dev/null
+++ b/target/linux/brcm63xx/dts/rta770bw.dts
@@ -0,0 +1,70 @@
+/dts-v1/;
+
+#include "bcm6345.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Siemens Gigaset SE515";
+ compatible = "dynalink,rta770bw", "brcm,bcm6345";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "RTA770BW:green:usb";
+ gpios = <&gpio0 7 1>;
+ };
+
+ adsl {
+ label = "RTA770BW:green:adsl";
+ gpios = <&gpio0 8 0>;
+ };
+
+ diag {
+ label = "RTA770BW:green:diag";
+ gpios = <&gpio0 10 1>;
+ };
+
+ wlan {
+ label = "RTA770BW:green:wlan";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/rta770w.dts b/target/linux/brcm63xx/dts/rta770w.dts
new file mode 100644
index 0000000..2c2d6fb
--- /dev/null
+++ b/target/linux/brcm63xx/dts/rta770w.dts
@@ -0,0 +1,70 @@
+/dts-v1/;
+
+#include "bcm6345.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Dynalink RTA770W";
+ compatible = "dynalink,rta770w", "brcm,bcm6345";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "RTA770W:green:usb";
+ gpios = <&gpio0 7 1>;
+ };
+
+ adsl {
+ label = "RTA770W:green:adsl";
+ gpios = <&gpio0 8 0>;
+ };
+
+ diag {
+ label = "RTA770W:green:diag";
+ gpios = <&gpio0 10 1>;
+ };
+
+ wlan {
+ label = "RTA770W:green:wlan";
+ gpios = <&gpio0 11 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/spw303v.dts b/target/linux/brcm63xx/dts/spw303v.dts
new file mode 100644
index 0000000..2dcf752
--- /dev/null
+++ b/target/linux/brcm63xx/dts/spw303v.dts
@@ -0,0 +1,81 @@
+/dts-v1/;
+
+#include "bcm6358.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "T-Com Speedport W303 V";
+ compatible = "t-com,spw303v", "brcm,bcm6358";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 11 0>;
+ linux,code = <KEY_RESTART>;
+ };
+ ses {
+ label = "ses";
+ gpios = <&gpio1 5 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ ses_green {
+ label = "spw303v:green:ses";
+ gpios = <&gpio0 0 1>;
+ };
+ power_adsl_red {
+ label = "spw303v:red:power+adsl";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "spw303v:green:ppp";
+ gpios = <&gpio0 5 1>;
+ };
+ power_adsl_green {
+ label = "spw303v:green:power+adsl";
+ gpios = <&gpio0 22 1>;
+ default-state = "on";
+ };
+ voip_green {
+ label = "spw303v:green:voip";
+ gpios = <&gpio0 27 1>;
+ };
+ pots_green {
+ label = "spw303v:green:pots";
+ gpios = <&gpio0 31 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/spw500v.dts b/target/linux/brcm63xx/dts/spw500v.dts
new file mode 100644
index 0000000..2fcf958
--- /dev/null
+++ b/target/linux/brcm63xx/dts/spw500v.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "T-Com Speedport W500 V";
+ compatible = "t-com,spw500v", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "SPW500V:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ power_red {
+ label = "SPW500V:red:power";
+ gpios = <&gpio0 1 1>;
+ };
+ ppp_green {
+ label = "SPW500V:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ pstn_green {
+ label = "SPW500V:green:pstn";
+ gpios = <&gpio0 28 1>;
+ };
+ voip_green {
+ label = "SPW500V:green:voip";
+ gpios = <&gpio1 0 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/td-w8900gb.dts b/target/linux/brcm63xx/dts/td-w8900gb.dts
new file mode 100644
index 0000000..a1480f6
--- /dev/null
+++ b/target/linux/brcm63xx/dts/td-w8900gb.dts
@@ -0,0 +1,72 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "TP-Link TD-W8900GB";
+ compatible = "tp-link,td-w8900gb", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "96348GW-11:green:power";
+ gpios = <&gpio0 0 1>;
+ default-state = "on";
+ };
+ stop_green {
+ label = "96348GW-11:green:stop";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_fail_green {
+ label = "96348GW-11:green:adsl-fail";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "96348GW-11:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ ppp_fail_green {
+ label = "96348GW-11:green:ppp-fail";
+ gpios = <&gpio0 4 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x020000 0x3d0000>;
+ };
+
+ nvram@3e0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/usr9108.dts b/target/linux/brcm63xx/dts/usr9108.dts
new file mode 100644
index 0000000..64a5ab3
--- /dev/null
+++ b/target/linux/brcm63xx/dts/usr9108.dts
@@ -0,0 +1,45 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "USRobotics 9108";
+ compatible = "usr,9108", "brcm,bcm6348";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "96348GW-A::usb";
+ gpios = <&gpio0 0 1>;
+ };
+ dsl {
+ label = "96348GW-A::adsl";
+ gpios = <&gpio0 3 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/v2110.dts b/target/linux/brcm63xx/dts/v2110.dts
new file mode 100644
index 0000000..2605339
--- /dev/null
+++ b/target/linux/brcm63xx/dts/v2110.dts
@@ -0,0 +1,71 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "BT Voyager 2110";
+ compatible = "bt,v2110", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 1 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "V2110:green:power";
+ gpios = <&gpio0 0 1>;
+ };
+ power_red {
+ label = "V2110:red:power";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_green {
+ label = "V2110:green:adsl";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "V2110:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ wireless_green {
+ label = "V2110:green:wireless";
+ gpios = <&gpio0 6 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/v2500v-bb.dts b/target/linux/brcm63xx/dts/v2500v-bb.dts
new file mode 100644
index 0000000..5a9223f
--- /dev/null
+++ b/target/linux/brcm63xx/dts/v2500v-bb.dts
@@ -0,0 +1,71 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "BT Voyager V2500V";
+ compatible = "bt,v2500v-bb", "brcm,bcm6348";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 31 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ power_green {
+ label = "V2500V_BB:green:power";
+ gpios = <&gpio0 0 1>;
+ };
+ power_red {
+ label = "V2500V_BB:red:power";
+ gpios = <&gpio0 1 1>;
+ };
+ adsl_green {
+ label = "V2500V_BB:green:adsl";
+ gpios = <&gpio0 2 1>;
+ };
+ ppp_green {
+ label = "V2500V_BB:green:ppp";
+ gpios = <&gpio0 3 1>;
+ };
+ wireless_green {
+ label = "V2500V_BB:green:wireless";
+ gpios = <&gpio0 6 1>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x3e0000>;
+ };
+
+ nvram@3f0000 {
+ label = "nvram";
+ reg = <0x3f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/vg50.dts b/target/linux/brcm63xx/dts/vg50.dts
new file mode 100644
index 0000000..f95fa95
--- /dev/null
+++ b/target/linux/brcm63xx/dts/vg50.dts
@@ -0,0 +1,30 @@
+/dts-v1/;
+
+#include "bcm63268.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Inteno VG50";
+ compatible = "inteno,vg50", "brcm,bcm63268";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 0 0>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio1 2 0>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
diff --git a/target/linux/brcm63xx/dts/vr-3025u.dts b/target/linux/brcm63xx/dts/vr-3025u.dts
new file mode 100644
index 0000000..b24b590
--- /dev/null
+++ b/target/linux/brcm63xx/dts/vr-3025u.dts
@@ -0,0 +1,88 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend VR-3025u";
+ compatible = "comtrend,vr-3025u", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "VR-3025u:green:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_green {
+ label = "VR-3025u:green:inet";
+ gpios = <&gpio0 5 0>;
+ };
+ lan1_green {
+ label = "VR-3025u:green:lan1";
+ gpios = <&gpio0 6 1>;
+ };
+ lan2_green {
+ label = "VR-3025u:green:lan2";
+ gpios = <&gpio0 7 1>;
+ };
+ lan3_green {
+ label = "VR-3025u:green:lan3";
+ gpios = <&gpio0 8 1>;
+ };
+ lan4_green {
+ label = "VR-3025u:green:lan4";
+ gpios = <&gpio0 9 1>;
+ };
+ power_green {
+ label = "VR-3025u:green:power";
+ gpios = <&gpio0 22 0>;
+ default-state = "on";
+ };
+ power_red {
+ label = "VR-3025u:red:power";
+ gpios = <&gpio0 24 0>;
+ };
+ inet_red {
+ label = "VR-3025u:red:inet";
+ gpios = <&gpio0 31 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x0000000 0x0020000>;
+ read-only;
+ };
+
+ linux@20000 {
+ label = "linux";
+ reg = <0x0020000 0x1fc0000>;
+ };
+
+ nvram@1fe0000 {
+ label = "nvram";
+ reg = <0x1fe0000 0x020000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/vr-3025un.dts b/target/linux/brcm63xx/dts/vr-3025un.dts
new file mode 100644
index 0000000..124045f
--- /dev/null
+++ b/target/linux/brcm63xx/dts/vr-3025un.dts
@@ -0,0 +1,88 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend VR-3025un";
+ compatible = "comtrend,vr-3025un", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "VR-3025un:green:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_green {
+ label = "VR-3025un:green:inet";
+ gpios = <&gpio0 5 0>;
+ };
+ lan1_green {
+ label = "VR-3025un:green:lan1";
+ gpios = <&gpio0 6 1>;
+ };
+ lan2_green {
+ label = "VR-3025un:green:lan2";
+ gpios = <&gpio0 7 1>;
+ };
+ lan3_green {
+ label = "VR-3025un:green:lan3";
+ gpios = <&gpio0 8 1>;
+ };
+ iptv_green {
+ label = "VR-3025un:green:iptv";
+ gpios = <&gpio0 9 1>;
+ };
+ power_green {
+ label = "VR-3025un:green:power";
+ gpios = <&gpio0 22 0>;
+ default-state = "on";
+ };
+ power_red {
+ label = "VR-3025un:red:power";
+ gpios = <&gpio0 24 0>;
+ };
+ inet_red {
+ label = "VR-3025un:red:inet";
+ gpios = <&gpio0 31 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/vr-3026e.dts b/target/linux/brcm63xx/dts/vr-3026e.dts
new file mode 100644
index 0000000..49790e2
--- /dev/null
+++ b/target/linux/brcm63xx/dts/vr-3026e.dts
@@ -0,0 +1,88 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend VR-3026e";
+ compatible = "comtrend,vr-3026e", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ dsl_green {
+ label = "VR-3026e:green:dsl";
+ gpios = <&gpio0 2 1>;
+ };
+ inet_green {
+ label = "VR-3026e:green:inet";
+ gpios = <&gpio0 5 0>;
+ };
+ lan1_green {
+ label = "VR-3026e:green:lan1";
+ gpios = <&gpio0 6 1>;
+ };
+ lan2_green {
+ label = "VR-3026e:green:lan2";
+ gpios = <&gpio0 7 1>;
+ };
+ lan3_green {
+ label = "VR-3026e:green:lan3";
+ gpios = <&gpio0 8 1>;
+ };
+ lan4_green {
+ label = "VR-3026e:green:lan4";
+ gpios = <&gpio0 9 1>;
+ };
+ power_green {
+ label = "VR-3026e:green:power";
+ gpios = <&gpio0 22 0>;
+ default-state = "on";
+ };
+ power_red {
+ label = "VR-3026e:red:power";
+ gpios = <&gpio0 24 0>;
+ };
+ inet_red {
+ label = "VR-3026e:red:inet";
+ gpios = <&gpio0 31 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};
diff --git a/target/linux/brcm63xx/dts/wap-5813n.dts b/target/linux/brcm63xx/dts/wap-5813n.dts
new file mode 100644
index 0000000..1c31c57
--- /dev/null
+++ b/target/linux/brcm63xx/dts/wap-5813n.dts
@@ -0,0 +1,82 @@
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Comtrend WAP-5813n";
+ compatible = "comtrend,wap-5813n", "brcm,bcm6368";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+ debounce-interval = <60>;
+
+ wlan {
+ label = "wlan";
+ gpios = <&gpio1 0 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&gpio1 2 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio1 3 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ inet_green {
+ label = "WAP-5813n:green:inet";
+ gpios = <&gpio0 5 0>;
+ };
+ power_green {
+ label = "WAP-5813n:green:power";
+ gpios = <&gpio0 22 0>;
+ default-state = "on";
+ };
+ wps_green {
+ label = "WAP-5813n:green:wps";
+ gpios = <&gpio0 23 1>;
+ };
+ power_red {
+ label = "WAP-5813n:red:power";
+ gpios = <&gpio0 24 0>;
+ };
+ inet_red {
+ label = "WAP-5813n:red:inet";
+ gpios = <&gpio0 31 0>;
+ };
+ };
+};
+
+&pflash {
+ status = "ok";
+
+ linux,part-probe = "bcm63xxpart";
+
+ cfe@0 {
+ label = "CFE";
+ reg = <0x000000 0x010000>;
+ read-only;
+ };
+
+ linux@10000 {
+ label = "linux";
+ reg = <0x010000 0x7e0000>;
+ };
+
+ nvram@7f0000 {
+ label = "nvram";
+ reg = <0x7f0000 0x010000>;
+ };
+};