--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "ar9344.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "meraki,z1", "qca,ar9344";
+ model = "Cisco Meraki Z1";
+
+ aliases {
+ led-boot = &led_power_orange;
+ led-failsafe = &led_power_orange;
+ led-upgrade = &led_power_orange;
+ label-mac-device = ð0;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "Reset button";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power_orange: power_orange {
+ label = "orange:power";
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&ref {
+ clock-frequency = <40000000>;
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ gpio_ext_lna0 {
+ gpio-hog;
+ gpios = <18 0>;
+ output-low;
+ line-name = "z1:ext:lna0";
+ };
+
+ gpio_ext_lna1 {
+ gpio-hog;
+ gpios = <19 0>;
+ output-low;
+ line-name = "z1:ext:lna1";
+ };
+};
+
+&usb {
+ status = "okay";
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+&pcie {
+ status = "okay";
+
+ ath9k: wifi@0,0 {
+ compatible = "pci168c,002a"; /* check the pciid - AR9283 */
+ reg = <0x0000 0 0 0 0>;
+ qca,no-eeprom;
+ };
+};
+
+&wmac {
+ status = "okay";
+};
+
+&nand {
+ status = "okay";
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "loader1";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "kernel";
+ reg = <0x20000 0x7e0000>;
+ };
+
+ partition@800000 {
+ label = "loader2";
+ reg = <0x800000 0x20000>;
+ read-only;
+ };
+
+ partition@820000 {
+ label = "recovery";
+ reg = <0x820000 0x7e0000>;
+ };
+
+ partition@1000000 {
+ label = "ubi";
+ reg = <0x1000000 0x6fe0000>;
+ };
+
+ partition@7fe0000 {
+ label = "origcaldata";
+ reg = <0x7fe0000 0x20000>;
+ read-only;
+ };
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy0: ethernet-phy@0 {
+ reg = <0>;
+
+#if 0
+ /* dummy values */
+ qca,ar8327-initvals = <
+ 0x04 0x87600000 /* PORT0 PAD MODE CTRL */
+ 0x7c 0x0000007e /* PORT0_STATUS */
+ >;
+#endif
+ };
+};
+
+ð0 {
+ status = "okay";
+
+ pll-data = <0x06000000 0x00000101 0x00001313>;
+ phy-mode = "rgmii-id";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+
+ gmac-config {
+ device = <&gmac>;
+ rgmii-gmac0 = <1>;
+ switch-only-mode = <1>;
+ };
+};
mv $@.tmp $@
endef
+define Build/meraki-old-nand
+ -$(STAGING_DIR_HOST)/bin/mkmerakifw-old \
+ -B $(1) -s \
+ -i $@ \
+ -o $@.new
+ @mv $@.new $@
+endef
+
# attention: only zlib compression is allowed for the boot fs
define Build/zyxel-buildkerneljffs
mkdir -p $@.tmp/boot
endef
TARGET_DEVICES += glinet_gl-xe300
+define Device/meraki_z1
+ SOC = ar9344
+ DEVICE_VENDOR := Meraki
+ DEVICE_MODEL := Z1
+ DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-owl-loader
+ KERNEL_SIZE := 8064k
+ BLOCKSIZE := 64k
+ PAGESIZE := 2048
+ KERNEL := kernel-bin | meraki-old-nand z1
+ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += meraki_z1
+
# fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff)
define Device/netgear_ath79_nand
DEVICE_VENDOR := NETGEAR
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
+ meraki,z1)
+ ucidef_add_switch "switch0" \
+ "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
+ ;;
zte,mf286|\
zte,mf286a|\
zte,mf286r)
netgear,wndr4500-v3)
wan_mac=$(mtd_get_mac_binary caldata 0x6)
;;
+ meraki,z1)
+ lan_mac=$(mtd_get_mac_binary_ubi board-config 102)
+ wan_mac=$(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) 1)
+ ;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
netgear,wndr4500-v3)
caldata_extract "caldata" 0x1000 0x440
;;
+ meraki,z1)
+ . /lib/upgrade/nand.sh
+
+ if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
+ caldata_extract_ubi "caldata" 0x1000 0x800
+ else
+ caldata_extract "origcaldata" 0x1000 0x800
+ ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) 2)
+ fi
+ ;;
*)
caldata_die "board $board is not supported yet"
;;
netgear,wndr4500-v3)
caldata_extract "caldata" 0x5000 0x440
;;
+ meraki,z1)
+ . /lib/upgrade/nand.sh
+
+ if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
+ caldata_extract_ubi "caldata" 0x15000 0x1000
+ else
+ caldata_extract "origcaldata" 0x15000 01000
+ ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) 3)
+ fi
+ ;;
*)
caldata_die "board $board is not supported yet"
;;