diff options
5 files changed, 186 insertions, 0 deletions
diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index 22a395c59f..6b3d5077d3 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -210,6 +210,10 @@ yuncore,a770) ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1" ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x10" ;; +zbtlink,zbt-wd323) + ucidef_set_led_switch "lan1" "LAN1" "zbt-wd323:orange:lan1" "switch0" "0x10" + ucidef_set_led_switch "lan2" "LAN2" "zbt-wd323:orange:lan2" "switch0" "0x08" + ;; esac board_config_flush diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index 105d4dbf8a..b68cf5742b 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -244,6 +244,7 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth0" "5:lan" "1:wan" ;; + zbtlink,zbt-wd323|\ xiaomi,mi-router-4q) ucidef_set_interface_wan "eth1" ucidef_add_switch "switch0" \ diff --git a/target/linux/ath79/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/base-files/etc/board.d/03_gpio_switches index 6a51a79790..1c8a46df19 100755 --- a/target/linux/ath79/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/ath79/base-files/etc/board.d/03_gpio_switches @@ -29,6 +29,12 @@ ubnt,nanostation-ac) ubnt,acb-isp) ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "11" ;; +zbtlink,zbt-wd323) + ucidef_add_gpio_switch "io0" "IO#0" "0" + ucidef_add_gpio_switch "io1" "IO#1" "1" + ucidef_add_gpio_switch "io2" "IO#2" "2" + ucidef_add_gpio_switch "io14" "IO#14" "14" + ;; esac board_config_flush diff --git a/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts b/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts new file mode 100644 index 0000000000..d899cff9ef --- /dev/null +++ b/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts @@ -0,0 +1,166 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +#include "ar9344.dtsi" + +/ { + model = "ZBT WD323"; + compatible = "zbtlink,zbt-wd323", "qca,ar9344"; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RESTART>; + }; + }; + + i2c { + compatible = "i2c-gpio"; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&enable_gpio15 &enable_gpio19>; + + sda-gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + scl-gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + + /* can be removed on 4.19 */ + gpios = <&gpio 19 GPIO_ACTIVE_LOW>, + <&gpio 15 GPIO_ACTIVE_LOW>; + + pcf8563: pcf8563@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + #clock-cells = <0>; + }; + }; + + leds { + compatible = "gpio-leds"; + + pinctrl-names = "default"; + pinctrl-0 = <&enable_gpio20_gpio22>; + + wifi { + label = "zbt-wd323:green:wifi"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + lan1 { + label = "zbt-wd323:orange:lan1"; + gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + + lan2 { + label = "zbt-wd323:orange:lan2"; + gpios = <&gpio 22 GPIO_ACTIVE_LOW>; + }; + + }; +}; + +&wdt { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&enable_gpio21>; +}; + +&uart { + status = "okay"; +}; + +&gpio { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&jtag_disable_pins>; +}; + +&usb { + status = "okay"; +}; + +&usb_phy { + status = "okay"; +}; + +ð0 { + status = "okay"; + phy-handle = <&swphy4>; + mtd-mac-address = <&art 0x0>; +}; + +ð1 { + status = "okay"; + mtd-mac-address = <&art 0x6>; +}; + +&spi { + num-chipselects = <1>; + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <22000000>; + reg = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + uboot@0 { + reg = <0x0 0x40000>; + read-only; + }; + + uboot-env@40000 { + reg = <0x40000 0x10000>; + read-only; + }; + + firmware@50000 { + compatible = "denx,uimage"; + reg = <0x50000 0xfa0000>; + }; + + art: art@ff0000 { + reg = <0xff0000 0x10000>; + read-only; + }; + }; + }; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&art 0x1002>; +}; + +&pinmux { + enable_gpio15: pinmux_enable_gpio15 { + pinctrl-single,bits = <0xc 0x0 0xff000000>; + }; + + enable_gpio19: pinmux_enable_gpio19 { + pinctrl-single,bits = <0x10 0x0 0xff000000>; + }; + + enable_gpio20_gpio22: pinmux_enable_gpio20_gpio22 { + pinctrl-single,bits = <0x14 0x0 0xff00ff>; + }; + + enable_gpio21: pinmux_enable_gpio21 { + pinctrl-single,bits = <0x14 0x0 0xff00>; + }; +}; diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 1585379f83..3c9b171d35 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -701,3 +701,12 @@ define Device/yuncore_a770 IMAGE_SIZE := 16000k endef TARGET_DEVICES += yuncore_a770 + +define Device/zbtlink_zbt-wd323 + ATH_SOC := ar9344 + DEVICE_TITLE := ZBT WD323 + IMAGE_SIZE := 16000k + DEVICE_PACKAGES := kmod-usb2 kmod-i2c-core kmod-i2c-gpio kmod-rtc-pcf8563 \ + kmod-usb-serial kmod-usb-serial-cp210x uqmi +endef +TARGET_DEVICES += zbtlink_zbt-wd323 |