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 9d42720c600938cc108341efdb058acfbe31053f..b55ca0413eb86b62dd2b06d449c0b579a8fbf021 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 b0037a0ce21e71bd4b5585993fe42fdf0190871e..2e56678cf5f462f52a206a8aa8865bffa53c5a14 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 fc376a4d1faca435993f84f9de173a260ab08857..8abe107a7c724fb1236b6c95fa3611146f23eb40 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 bad92ca0b9e4cf538f83f2213ac5babb789c8f1e..cf38aa2cb1b4c922e89e14dcb7d988b997fcbb5e 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