--- /dev/null
+/dts-v1/;
+
+#include "mt7620a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "ZyXEL Keenetic Viva";
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ wan {
+ label = "kng_rc:green:wan";
+ gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+ };
+
+ usb {
+ label = "kng_rc:green:usb";
+ gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+ };
+
+ power_alert {
+ label = "kng_rc:red:power";
+ gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi {
+ label = "kng_rc:green:wifi";
+ gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
+ };
+
+ power {
+ label = "kng_rc:green:power";
+ gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <20>;
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ fn {
+ label = "fn";
+ gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ };
+ };
+
+ rtl8367rb {
+ compatible = "realtek,rtl8367b";
+ cpu_port = <7>;
+ realtek,extif2 = <1 0 1 1 1 1 1 1 2>;
+ mdio = <&mdio0>;
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ m25p80@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <10000000>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfb0000>;
+ };
+ };
+};
+
+&pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "uartf";
+ ralink,function = "gpio";
+ };
+ };
+};
+
+ðernet {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii2_pins &mdio_pins>;
+ mtd-mac-address = <&factory 0x00004>;
+
+ port@4 {
+ status = "okay";
+ mediatek,fixed-link = <1000 1 1 1>;
+ phy-mode = "rgmii";
+ phy-handle = <&phy4>;
+ };
+
+ mdio0: mdio-bus {
+ status = "okay";
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ phy-mode = "rgmii";
+ };
+ };
+};
+
+&gsw {
+ mediatek,port4 = "gmac";
+};
+
+&wmac {
+ ralink,mtd-eeprom = <&factory 0>;
+};
+
+&ehci {
+ status = "okay";
+};
+
+&ohci {
+ status = "okay";
+};
$(STAGING_DIR_HOST)/bin/tar -cf $@ -C $(KDIR) v_0.0.0.bin v_0.0.0.md5
endef
+define Build/zyimage
+ $(STAGING_DIR_HOST)/bin/zyimage $(1) $@
+endef
+
define Device/ArcherC20i
DTS := ArcherC20i
KERNEL := $(KERNEL_DTB)
DEVICE_PACKAGES := kmod-mt76
endef
TARGET_DEVICES += dch-m225
+
+define Device/kng_rc
+ DTS := kng_rc
+ IMAGE_SIZE := $(ralink_default_fw_size_16M)
+ DEVICE_TITLE := ZyXEL Keenetic Viva
+ DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-switch-rtl8366-smi kmod-switch-rtl8367b
+ IMAGES += factory.bin
+ IMAGE/factory.bin := $$(IMAGE/sysupgrade.bin) | zyimage -d 8997 -v "ZyXEL Keenetic Viva"
+endef
+TARGET_DEVICES += kng_rc