ath79: add support for PQI Air Pen
authorYuheiOKAWA <tochiro.srchack@gmail.com>
Thu, 4 Oct 2018 16:08:51 +0000 (01:08 +0900)
committerMathias Kresin <dev@kresin.me>
Sun, 28 Oct 2018 09:59:14 +0000 (10:59 +0100)
SoC: AR9330 (or AR9331 revision?)
Ethernet x1, Wireless 2.4G, uSD card slot x1.
USB Power, include Li-Po Battery.

Flash 8MiB. (factory is dual image)
1. write image is use half 4MiB size from factory.
  write initramfs image to mtd6 and mtd7.
2. change next boot setting. next is mtd6 boot.
  echo -ne "\x01" | dd of=/dev/mtdblock8 conv=notrunc bs=1 count=1 seek=0

3. rewrite sysupgrade image.
  change next boot setting. next is mtd4.
  echo -ne "\x00" | dd of=/dev/mtdblock8 conv=notrunc bs=1 count=1 seek=0

OEM mtd.
dev:    size   erasesize  name
mtd0: 00040000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "ART"
mtd3: 00010000 00010000 "NVRAM"
mtd4: 00140000 00010000 "uImage"
mtd5: 00280000 00010000 "rootfs"
mtd6: 00140000 00010000 "uImage2"
mtd7: 00280000 00010000 "rootfs2"
mtd8: 00010000 00010000 "CONF"

Signed-off-by: YuheiOKAWA <tochiro.srchack@gmail.com>
target/linux/ath79/base-files/etc/board.d/02_network
target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/dts/ar9330_pqi-air-pen.dts [new file with mode: 0644]
target/linux/ath79/image/tiny.mk

index b4699933da98ad84b38b79e11a627d1efd5bab13..5f02c5769adb49b61743e712784be4f05c954b5c 100755 (executable)
@@ -14,6 +14,7 @@ ath79_setup_interfaces()
        ocedo,raccoon|\
        pcs,cap324|\
        pisen,wmm003n|\
+       pqi,air-pen|\
        tplink,re450-v2|\
        tplink,tl-mr10u|\
        tplink,tl-mr3020-v1|\
index 30de434ae1f2b0c0602588ffc3bf52fb85a3c666..020abe2913145daeff11310eb7d0d370e569f7d4 100644 (file)
@@ -146,6 +146,9 @@ case "$FIRMWARE" in
        ubnt,rocket-m)
                ath9k_eeprom_extract "art" 4096 4096
                ;;
+       pqi,air-pen)
+               ath9k_eeprom_extract "art" 4096 2002
+               ;;
        ubnt,unifi)
                ath9k_eeprom_extract "art" 4096 2048
                ;;
diff --git a/target/linux/ath79/dts/ar9330_pqi-air-pen.dts b/target/linux/ath79/dts/ar9330_pqi-air-pen.dts
new file mode 100644 (file)
index 0000000..6c662d2
--- /dev/null
@@ -0,0 +1,147 @@
+// 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 "ar9330.dtsi"
+
+/ {
+       model = "PQI Air-Pen";
+       compatible = "pqi,air-pen", "qca,ar9330";
+
+       aliases {
+               serial0 = &uart;
+               led-boot = &wlan;
+               led-failsafe = &wlan;
+               led-upgrade = &wlan;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wlan: wlan {
+                       label = "air-pen:blue:wlan";
+                       gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               wps {
+                       label = "air-pen:blue:wps";
+                       gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys-polled";
+               poll-interval = <100>;
+
+               wps {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <60>;
+               };
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
+
+&gpio {
+       status = "okay";
+};
+
+&usb {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&spi {
+       num-cs = <1>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <104000000>;
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x040000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               label = "u-boot-env";
+                               reg = <0x040000 0x010000>;
+                       };
+
+                       art: partition@50000 {
+                               label = "art";
+                               reg = <0x050000 0x010000>;
+                               read-only;
+                       };
+
+                       partition@60000 {
+                               label = "NVRAM";
+                               reg = <0x060000 0x010000>;
+                               read-only;
+                       };
+
+                       partition@70000 {
+                               label = "firmware";
+                               reg = <0x070000 0x780000>;
+                       };
+
+                       partition@7f0000 {
+                               label = "CONF";
+                               reg = <0x7f0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x1002>;
+
+       gmac-config {
+               device = <&gmac>;
+
+               switch-phy-addr-swap = <0>;
+               switch-phy-swap = <0>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+       compatible = "syscon", "simple-mfd";
+};
+
+&wmac {
+       status = "okay";
+       mtd-cal-data = <&art 0x1000>;
+       mtd-mac-address = <&art 0x2>;
+};
index bc738c2f771dbc93f6a028a54808d6e9a5f887ac..4dda24edacecb75f749079575952f314c2fd7a1a 100644 (file)
@@ -30,3 +30,12 @@ define Device/buffalo_whr-g301n
   SUPPORTED_DEVICES += whr-g301n
 endef
 TARGET_DEVICES += buffalo_whr-g301n
+
+define Device/pqi_air-pen
+  ATH_SOC := ar9330
+  DEVICE_TITLE := PQI Air-Pen
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+  IMAGE_SIZE := 7680k
+  SUPPORTED_DEVICES += pqi-air-pen
+endef
+TARGET_DEVICES += pqi_air-pen