ramips: add support for ZyXEL Keenetic Viva

Factory image can be installed via Zyxel WebUI.

Signed-off-by: Vitaly Chekryzhev <13hakta@gmail.com>
[removed linux,modalias parameter from flash node in dts]
[removed sdhci node from dts; no sd card slot here]
Signed-off-by: Mathias Kresin <dev@kresin.me>
This commit is contained in:
Vitaly Chekryzhev 2016-10-29 17:26:58 +05:00 committed by Mathias Kresin
parent a4814c744c
commit 348344874c
7 changed files with 184 additions and 0 deletions

View file

@ -203,6 +203,10 @@ ht-tm02)
ucidef_set_led_netdev "eth" "Ethernet" "$board:green:lan" "eth0"
set_wifi_led "$board:blue:wlan"
;;
kng_rc)
set_usb_led "$board:green:usb"
set_wifi_led "$board:green:wifi"
;;
m2m)
set_wifi_led "$board:blue:wifi"
ucidef_set_led_netdev "eth" "Ethernet" "$board:green:wan" "eth0"

View file

@ -204,6 +204,10 @@ ramips_setup_interfaces()
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0"
;;
kng_rc)
ucidef_add_switch "switch1" \
"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0"
;;
mlwg2|\
wizard8800|\
wl-330n)
@ -320,6 +324,9 @@ ramips_setup_macs()
[ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
kng_rc)
wan_mac=$(mtd_get_mac_binary factory 28)
;;
linkits7688 | \
linkits7688d)
wan_mac=$(mtd_get_mac_binary factory 4)

View file

@ -24,6 +24,7 @@ get_status_led() {
dir-860l-b1|\
e1700|\
fonera20n|\
kng_rc|\
mzk-750dhp|\
mzk-dp150n|\
mzk-w300nh2|\

View file

@ -586,6 +586,9 @@ ramips_board_detect() {
*"ZBT-WR8305RT")
name="zbt-wr8305rt"
;;
*"ZyXEL Keenetic Viva")
name="kng_rc"
;;
*"YK1")
name="youku-yk1"
;;

View file

@ -70,6 +70,7 @@ platform_check_image() {
jhr-n805r|\
jhr-n825r|\
jhr-n926r|\
kng_rc|\
linkits7688|\
linkits7688d|\
m2m|\

View file

@ -0,0 +1,154 @@
/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";
};
};
};
&ethernet {
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";
};

View file

@ -37,6 +37,10 @@ define Build/elecom-header
$(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)
@ -418,3 +422,13 @@ define Device/dch-m225
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