ramips: add support for Zorlik ZL5900V2
authorVianney le Clément de Saint-Marcq <code@quartic.eu>
Tue, 3 Apr 2018 23:19:22 +0000 (01:19 +0200)
committerMathias Kresin <dev@kresin.me>
Sun, 8 Apr 2018 07:53:50 +0000 (09:53 +0200)
The Zorlik ZL5900V2 is an unbranded clone of HAME MPR-A1/2.  It is
marketed as "3G Wi-Fi Router".  Only the PCB has the model name
"ZL5900V2" printed on it.

Specifications:
- Ralink RT5350F (360 MHz)
- 32 MB RAM
- 8 MB Flash
- 802.11bgn 1T1R
- 1x 10/100 Mbps Ethernet
- 1x USB 2.0 (Type-A)
- 5200 mAh battery

The ramdisk image (not the squashfs sysupgrade image) can be flashed
through the web interface (named "GoAhead") of the factory firmware.
However, as the factory firmware does not cleanly unmount the rootfs
before flashing, the device may hang instead of rebooting after
successful write.  Power cycling the device gets you in OpenWrt where
the squashfs image may be flashed through normal sysupgrade procedure.

Signed-off-by: Vianney le Clément de Saint-Marcq <code@quartic.eu>
target/linux/ramips/base-files/etc/board.d/01_leds
target/linux/ramips/base-files/etc/board.d/02_network
target/linux/ramips/base-files/etc/diag.sh
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/ZL5900V2.dts [new file with mode: 0644]
target/linux/ramips/image/rt305x.mk

index 1a8e37623e9cae7c068ae07efa27bda621defe03..b5de38876483caeb4ad6892a27353611f4fb2834 100755 (executable)
@@ -532,6 +532,9 @@ zbt-wr8305rt)
        set_usb_led "$boardname:green:usb"
        set_wifi_led "$boardname:green:wifi"
        ;;
+zorlik,zl5900v2)
+       ucidef_set_led_netdev "lan" "lan" "$boardname:green:lan" eth0
+       ;;
 zte-q7)
        set_wifi_led "$boardname:blue:status"
        ;;
index 0f173bc95c93c786262ce4d2e880a51cbf790f10..b7e5fb6ff935e725ba0192d42e57aeaf0de00273 100755 (executable)
@@ -61,6 +61,7 @@ ramips_setup_interfaces()
        widora,neo-32m|\
        wnce2001|\
        zbt-cpe102|\
+       zorlik,zl5900v2|\
        zte-q7)
                ucidef_add_switch "switch0"
                ucidef_add_switch_attr "switch0" "enable" "false"
index cbaa2d663ef4dca5ed70fb3e15cea1eb1f7433f9..d84bdff3a752340b94b8e27f191aedd03b42074e 100644 (file)
@@ -153,7 +153,8 @@ get_status_led() {
        wli-tx4-ag300n|\
        y1|\
        y1s|\
-       youku-yk1)
+       youku-yk1|\
+       zorlik,zl5900v2)
                status_led="$boardname:blue:power"
                ;;
        dlink,dap-1522-a1|\
index 473b2c48bb6d0c8eb0ae82a3c73a767939bca280..0a43f29920239404546e3d5a19a4a172f2665e8d 100755 (executable)
@@ -218,6 +218,7 @@ platform_check_image() {
        zbt-wg3526-16M|\
        zbt-wg3526-32M|\
        zbt-wr8305rt|\
+       zorlik,zl5900v2|\
        zte-q7|\
        youku-yk1)
                [ "$magic" != "27051956" ] && {
diff --git a/target/linux/ramips/dts/ZL5900V2.dts b/target/linux/ramips/dts/ZL5900V2.dts
new file mode 100644 (file)
index 0000000..2d8daf1
--- /dev/null
@@ -0,0 +1,95 @@
+/dts-v1/;
+
+#include "rt5350.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       compatible = "zorlik,zl5900v2", "ralink,rt5350-soc";
+       model = "Zorlik ZL5900V2";
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               lan {
+                       label = "zl5900v2:green:lan";
+                       gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+               };
+
+               power {
+                       label = "zl5900v2:blue:power";
+                       gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <20>;
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+};
+
+&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 0x7b0000>;
+               };
+       };
+};
+
+&pinctrl {
+       state_default: pinctrl0 {
+               gpio {
+                       ralink,group = "jtag", "uartf";
+                       ralink,function = "gpio";
+               };
+       };
+};
+
+&ethernet {
+       mtd-mac-address = <&factory 0x4>;
+};
+
+&esw {
+       mediatek,portmap = <0>;
+       mediatek,portdisable = <0x2f>;
+};
+
+&wmac {
+       ralink,mtd-eeprom = <&factory 0>;
+};
index 5a4ca73517c0096640e20ec7ca1d6ac7b1ca8845..bc1941f901a80a6ce7d90e9fab6cdee94308a090 100644 (file)
@@ -901,3 +901,10 @@ define Device/kn
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ehci kmod-usb-ledtrig-usbport
 endef
 TARGET_DEVICES += kn
+
+define Device/zorlik_zl5900v2
+  DTS := ZL5900V2
+  DEVICE_TITLE := Zorlik ZL5900V2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev
+endef
+TARGET_DEVICES += zorlik_zl5900v2