--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "vr9.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/mips/lantiq_rcu_gphy.h>
+
+/ {
+ compatible = "arcadyan,vrv9510kwac23", "lantiq,xway", "lantiq,vr9";
+ model = "Arcadyan VRV9510KWAC23";
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 mem=254M vpe1_load_addr=0x8fe00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";
+ };
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &upgrade;
+ led-running = &power_green;
+ led-upgrade = &power_green;
+ led-internet = &internet_green;
+ led-wifi = &wireless_green;
+ };
+
+ bcm43222-sprom {
+ compatible = "brcm,ssb-sprom";
+
+ pci-bus = <0>;
+ pci-dev = <14>;
+
+ nvmem-cells = <&macaddr_boardconfig_16 1>;
+ nvmem-cell-names = "mac-address";
+
+ brcm,sprom = "brcm/bcm43222-sprom.bin";
+ brcm,sprom-fixups = <2 0x04d2>,
+ <65 0x1308>, <68 0x0402>,
+ <70 0x1cc6>, <71 0x3c49>,
+ <72 0x1132>, <87 0x0315>,
+ <88 0x0315>, <96 0x2048>,
+ <97 0xfeed>, <98 0x153e>,
+ <99 0xfb1f>, <100 0x3e54>,
+ <101 0x3848>, <102 0xfea0>,
+ <103 0x145c>, <104 0xfaf0>,
+ <105 0xfe6e>, <106 0x110c>,
+ <107 0xfb7e>, <108 0xff00>,
+ <109 0x13c4>, <110 0xfb30>,
+ <111 0x0000>, <112 0x204c>,
+ <113 0xfeb8>, <114 0x1508>,
+ <115 0xfacb>, <116 0x3e48>,
+ <117 0x3848>, <118 0xfeb2>,
+ <119 0x156e>, <120 0xfabf>,
+ <121 0xfe57>, <122 0x1139>,
+ <123 0xfb6d>, <124 0xff38>,
+ <125 0x13ee>, <126 0xfb6d>,
+ <127 0x0000>, <161 0x0000>,
+ <162 0x0000>, <169 0x0000>,
+ <170 0x0000>, <171 0x0000>,
+ <172 0x0000>, <173 0x0000>,
+ <174 0x0000>, <175 0x0000>,
+ <176 0x0000>, <219 0x1108>,
+ <127 0x0000>, <161 0x0000>,
+ <162 0x0000>, <169 0x0000>,
+ <170 0x0000>, <171 0x0000>,
+ <172 0x0000>, <173 0x0000>,
+ <174 0x0000>, <175 0x0000>,
+ <176 0x0000>, <219 0x1108>;
+ };
+
+ bcm4360-sprom {
+ compatible = "brcm,bcma-sprom";
+
+ pci-bus = <2>;
+ pci-dev = <0>;
+
+ nvmem-cells = <&macaddr_boardconfig_16 1>;
+ nvmem-cell-names = "mac-address";
+
+ brcm,sprom = "brcm/bcm4360-sprom.bin";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x10000000>;
+ };
+
+ keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <100>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ rfkill {
+ label = "rfkill";
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+ service {
+ label = "service";
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ // from top to bottom
+ power_green: power {
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_POWER;
+ };
+ internet_green: internet_green {
+ gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_WAN;
+ };
+ internet_red {
+ gpios = <&gpio 33 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_FAULT;
+ };
+ phone {
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+ lan {
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio 45 GPIO_ACTIVE_LOW>;
+ function = LED_FUNCTION_LAN;
+ };
+ wireless_blue {
+ gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ wireless_green: wireless_green {
+ gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_WLAN;
+ };
+ upgrade: upgrade {
+ gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+
+ usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+
+ regulator-name = "USB_VBUS";
+
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+
+ gpio = <&gpio 32 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&localbus {
+ flash@0 {
+ compatible = "lantiq,nand-xway";
+ lantiq,cs = <1>;
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+
+ pinctrl-0 = <&nand_pins>, <&nand_cs1_pins>;
+ pinctrl-names = "default";
+
+ nand-use-soft-ecc-engine;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x80000>;
+ read-only;
+ };
+ partition@80000 {
+ label = "u-boot-env";
+ reg = <0x80000 0x20000>;
+ };
+ partition@a0000 {
+ label = "kernel";
+ reg = <0xa0000 0x400000>;
+ };
+ partition@540000 {
+ label = "ubi";
+ reg = <0x4a0000 0x7a00000>;
+ };
+ boardconfig: partition@7ea0000 {
+ label = "board_config";
+ reg = <0x7ea0000 0x1000>;
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_boardconfig_16: macaddr@16 {
+ compatible = "mac-base";
+ reg = <0x16 0x6>;
+ #nvmem-cell-cells = <1>;
+ };
+ };
+ };
+ };
+ };
+};
+
+ð0 {
+ nvmem-cells = <&macaddr_boardconfig_16 0>;
+ nvmem-cell-names = "mac-address";
+};
+
+&gphy0 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gphy1 {
+ lantiq,gphy-mode = <GPHY_MODE_GE>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ pci_rst {
+ lantiq,pins = "io21";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ };
+ pcie_rst {
+ lantiq,pins = "io25";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ };
+ usb_vbus {
+ lantiq,pins = "io32";
+ lantiq,output = <1>;
+ lantiq,open-drain = <0>;
+ lantiq,pull = <2>;
+ };
+ };
+};
+
+&gswip {
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+};
+
+&gswip_mdio {
+ phy0: ethernet-phy@0 {
+ reg = <0x0>;
+ };
+ phy1: ethernet-phy@1 {
+ reg = <0x1>;
+ };
+ phy5: ethernet-phy@5 {
+ reg = <0x5>;
+ };
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ };
+};
+
+&gswip_ports {
+ port@0 {
+ reg = <0>;
+ label = "lan3";
+ phy-mode = "rgmii-id";
+ tx-internal-delay-ps = <1500>;
+ rx-internal-delay-ps = <1500>;
+ phy-handle = <&phy0>;
+ };
+ port@1 {
+ reg = <1>;
+ label = "lan2";
+ phy-mode = "rgmii-id";
+ tx-internal-delay-ps = <1500>;
+ rx-internal-delay-ps = <1500>;
+ phy-handle = <&phy1>;
+ };
+ port@2 {
+ reg = <2>;
+ label = "lan1";
+ phy-mode = "internal";
+ phy-handle = <&phy11>;
+ };
+ port@4 {
+ reg = <4>;
+ label = "wan";
+ phy-mode = "internal";
+ phy-handle = <&phy13>;
+ };
+ port@5 {
+ reg = <5>;
+ label = "lan4";
+ phy-mode = "rgmii-id";
+ tx-internal-delay-ps = <1500>;
+ rx-internal-delay-ps = <1500>;
+ phy-handle = <&phy5>;
+ };
+};
+
+&pci0 {
+ status = "okay";
+
+ pinctrl-0 = <&pci_gnt1_pins>, <&pci_req1_pins>;
+ pinctrl-names = "default";
+
+ gpio-reset = <&gpio 21 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie0 {
+ status = "okay";
+
+ gpio-reset = <&gpio 25 GPIO_ACTIVE_HIGH>;
+};
+
+&usb_phy0 {
+ status = "okay";
+};
+
+&usb_phy1 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&usb1 {
+ status = "okay";
+ vbus-supply = <&usb_vbus>;
+};
+
+&vmmc {
+ status = "okay";
+ gpios = <&gpio 30 GPIO_ACTIVE_HIGH //fxs relay
+ &gpio 31 GPIO_ACTIVE_HIGH //still unknown
+ &gpio 3 GPIO_ACTIVE_HIGH>; //reset_slic?
+};