From 348344874c8aaaeabd291eef0e45660f0c6aba95 Mon Sep 17 00:00:00 2001 From: Vitaly Chekryzhev <13hakta@gmail.com> Date: Sat, 29 Oct 2016 17:26:58 +0500 Subject: [PATCH] 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 --- .../ramips/base-files/etc/board.d/01_leds | 4 + .../ramips/base-files/etc/board.d/02_network | 7 + target/linux/ramips/base-files/etc/diag.sh | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/kng_rc.dts | 154 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 14 ++ 7 files changed, 184 insertions(+) create mode 100644 target/linux/ramips/dts/kng_rc.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 0f1ad57f55..ed51555d38 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -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" diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 1e97c3b3c2..5ae6413fcf 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -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) diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 52baa0b23e..1aa1a2e9fb 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -24,6 +24,7 @@ get_status_led() { dir-860l-b1|\ e1700|\ fonera20n|\ + kng_rc|\ mzk-750dhp|\ mzk-dp150n|\ mzk-w300nh2|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index c62f5f6a93..4a4204bc24 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -586,6 +586,9 @@ ramips_board_detect() { *"ZBT-WR8305RT") name="zbt-wr8305rt" ;; + *"ZyXEL Keenetic Viva") + name="kng_rc" + ;; *"YK1") name="youku-yk1" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index fa108b6ce4..a7e9e19fa5 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -70,6 +70,7 @@ platform_check_image() { jhr-n805r|\ jhr-n825r|\ jhr-n926r|\ + kng_rc|\ linkits7688|\ linkits7688d|\ m2m|\ diff --git a/target/linux/ramips/dts/kng_rc.dts b/target/linux/ramips/dts/kng_rc.dts new file mode 100644 index 0000000000..fefa1b7d8d --- /dev/null +++ b/target/linux/ramips/dts/kng_rc.dts @@ -0,0 +1,154 @@ +/dts-v1/; + +#include "mt7620a.dtsi" + +#include +#include + +/ { + 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 = ; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + fn { + label = "fn"; + gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + 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"; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 35c94fee8b..e669b8c9ca 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -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 -- 2.25.1