ath79: add support for PQI Air Pen

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>
This commit is contained in:
YuheiOKAWA 2018-10-05 01:08:51 +09:00 committed by Mathias Kresin
parent 23f9b2d9a9
commit 27eae6597e
4 changed files with 160 additions and 0 deletions

View file

@ -14,6 +14,7 @@ ath79_setup_interfaces()
ocedo,raccoon|\ ocedo,raccoon|\
pcs,cap324|\ pcs,cap324|\
pisen,wmm003n|\ pisen,wmm003n|\
pqi,air-pen|\
tplink,re450-v2|\ tplink,re450-v2|\
tplink,tl-mr10u|\ tplink,tl-mr10u|\
tplink,tl-mr3020-v1|\ tplink,tl-mr3020-v1|\

View file

@ -146,6 +146,9 @@ case "$FIRMWARE" in
ubnt,rocket-m) ubnt,rocket-m)
ath9k_eeprom_extract "art" 4096 4096 ath9k_eeprom_extract "art" 4096 4096
;; ;;
pqi,air-pen)
ath9k_eeprom_extract "art" 4096 2002
;;
ubnt,unifi) ubnt,unifi)
ath9k_eeprom_extract "art" 4096 2048 ath9k_eeprom_extract "art" 4096 2048
;; ;;

View file

@ -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>;
};

View file

@ -30,3 +30,12 @@ define Device/buffalo_whr-g301n
SUPPORTED_DEVICES += whr-g301n SUPPORTED_DEVICES += whr-g301n
endef endef
TARGET_DEVICES += buffalo_whr-g301n 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