ramips: Add support for ZBT WE826-E
authorKristian Evensen <kristian.evensen@gmail.com>
Thu, 16 May 2019 13:38:00 +0000 (15:38 +0200)
committerPetr Štetiar <ynezz@true.cz>
Fri, 17 May 2019 19:41:43 +0000 (21:41 +0200)
ZBT WE826-E is a dual-SIM version of the ZBT WE826. The router has the
following specifications:

- MT7620A (580 MHz)
- 128MB RAM
- 32MB of flash (SPI NOR)
- 5x 10/100Mbps Ethernet (MT7620A built-in switch)
- 1x microSD slot
- 1x miniPCIe slot (only USB2.0 bus)
- 2x SIM card slots (standard size)
- 1x USB2.0 port
- 1x 2.4GHz wifi (rt2800)
- 10x LEDs (4 GPIO-controlled)
- 1x reset button

The following have been tested and working:
- Ethernet switch
- wifi
- miniPCIe slot
- USB port
- microSD slot
- sysupgrade
- reset button

Installation and recovery:

In order to install OpenWRT the first time or recover the router, you
can use the web-based recovery system. Keep the reset button pressed
during boot and access 192.168.1.1 in your browser when your machine
obtains an IP address.  Upload the firmware to start the recovery
process.

How to swap SIMs:

You control which SIM slot to use by writing 0/1 to
/sys/class/gpio/gpio13/value. In order for the change to take effect,
you can either use AT-commands (AT+CFUN) or power-cycle the modem (write
0/1 to /sys/class/gpio/gpio14/value).

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
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/board.d/03_gpio_switches
target/linux/ramips/dts/ZBT-WE826-E.dts [new file with mode: 0644]
target/linux/ramips/image/mt7620.mk

index 9d42720..b55ca04 100755 (executable)
@@ -252,7 +252,8 @@ mr200)
 mtc,wr1201)
        ucidef_set_led_switch "eth_link" "LAN link" "$boardname:green:eth_link" "switch0" "0x0f"
        ;;
-mzk-ex750np)
+mzk-ex750np|\
+zbtlink,zbt-we826-e)
        set_wifi_led "$boardname:red:wifi"
        ;;
 netgear,r6120)
index b0037a0..2e56678 100755 (executable)
@@ -133,6 +133,7 @@ ramips_setup_interfaces()
        youku,yk-l2|\
        zbt-ape522ii|\
        zbt-we1326|\
+       zbtlink,zbt-we826-e|\
        zbtlink,zbt-we3526|\
        zbt-we826-16M|\
        zbt-we826-32M|\
index fc376a4..8abe107 100755 (executable)
@@ -32,6 +32,10 @@ ubnt-erx-sfp)
        ucidef_add_gpio_switch "poe_power_port3" "PoE Power Port3" "499"
        ucidef_add_gpio_switch "poe_power_port4" "PoE Power Port4" "500"
        ;;
+zbtlink,zbt-we826-e)
+       ucidef_add_gpio_switch "sim_switch" "SIM slot switch" "13"
+       ucidef_add_gpio_switch "power_mpcie" "mPCIe power" "14" "1"
+       ;;
 esac
 
 board_config_flush
diff --git a/target/linux/ramips/dts/ZBT-WE826-E.dts b/target/linux/ramips/dts/ZBT-WE826-E.dts
new file mode 100644 (file)
index 0000000..ce97b03
--- /dev/null
@@ -0,0 +1,84 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ZBT-WE826.dtsi"
+
+/ {
+       compatible = "zbtlink,zbt-we826-e", "zbtlink,zbt-we826", "ralink,mt7620a-soc";
+       model = "ZBT-WE826-E";
+
+       /delete-node/ leds;
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_power: gsm {
+                       label = "zbt-we826-e:blue:gsm";
+                       gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
+               };
+
+               signal {
+                       label = "zbt-we826-e:green:signal";
+                       gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
+               };
+
+               sim {
+                       label = "zbt-we826-e:red:sim";
+                       gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+               };
+
+               air {
+                       label = "zbt-we826-e:red:wifi";
+                       gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       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;
+                       };
+
+                       firmware: partition@50000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x50000 0x1fb0000>;
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       state_default: pinctrl0 {
+               default {
+                       ralink,group = "i2c", "uartf", "wled";
+                       ralink,function = "gpio";
+               };
+       };
+};
index bad92ca..cf38aa2 100644 (file)
@@ -818,6 +818,15 @@ define Device/zbt-we826-32M
 endef
 TARGET_DEVICES += zbt-we826-32M
 
+define Device/zbtlink_zbt-we826-e
+  DTS := ZBT-WE826-E
+  IMAGE_SIZE := 32448k
+  DEVICE_TITLE := Zbtlink ZBT-WE826-E
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-sdhci-mt7620 uqmi \
+                    kmod-usb-serial kmod-usb-serial-option
+endef
+TARGET_DEVICES += zbtlink_zbt-we826-e
+
 define Device/zbt-wr8305rt
   DTS := ZBT-WR8305RT
   DEVICE_TITLE := Zbtlink ZBT-WR8305RT