From 27eae6597e5f1570f2f0a8584907b077e724a0e1 Mon Sep 17 00:00:00 2001 From: YuheiOKAWA Date: Fri, 5 Oct 2018 01:08:51 +0900 Subject: [PATCH] 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 --- .../ath79/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath9k-eeprom | 3 + target/linux/ath79/dts/ar9330_pqi-air-pen.dts | 147 ++++++++++++++++++ target/linux/ath79/image/tiny.mk | 9 ++ 4 files changed, 160 insertions(+) create mode 100644 target/linux/ath79/dts/ar9330_pqi-air-pen.dts 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 b4699933da..5f02c5769a 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -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|\ diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index 30de434ae1..020abe2913 100644 --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -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 index 0000000000..6c662d2202 --- /dev/null +++ b/target/linux/ath79/dts/ar9330_pqi-air-pen.dts @@ -0,0 +1,147 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#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 = ; + gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; + debounce-interval = <60>; + }; + + reset { + label = "reset"; + linux,code = ; + 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; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&art 0x1002>; + + gmac-config { + device = <&gmac>; + + switch-phy-addr-swap = <0>; + switch-phy-swap = <0>; + }; +}; + +ð1 { + status = "okay"; + compatible = "syscon", "simple-mfd"; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&art 0x2>; +}; diff --git a/target/linux/ath79/image/tiny.mk b/target/linux/ath79/image/tiny.mk index bc738c2f77..4dda24edac 100644 --- a/target/linux/ath79/image/tiny.mk +++ b/target/linux/ath79/image/tiny.mk @@ -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