[LEDE-DEV] [PATCH] ar71xx: add support for PQI Air Pen
John Crispin
john at phrozen.org
Tue Jan 10 00:08:00 PST 2017
Hi,
comments inline
On 09/01/2017 02:41, YuheiOKAWA wrote:
> SoC: AR9331
> Ethernet x1, Wireless 2.4G, uSD card slot x1.
> USB Power, include Li-Po Battery.
>
could be a bit more verbose here
> Signed-off-by: YuheiOKAWA <tochiro.srchack at gmail.com>
> ---
> target/linux/ar71xx/base-files/etc/board.d/01_leds | 4 +
> .../linux/ar71xx/base-files/etc/board.d/02_network | 1 +
> target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 +
> .../ar71xx/base-files/lib/upgrade/platform.sh | 1 +
> target/linux/ar71xx/config-4.4 | 1 +
> .../ar71xx/files/arch/mips/ath79/Kconfig.openwrt | 10 +++
> target/linux/ar71xx/files/arch/mips/ath79/Makefile | 1 +
> .../files/arch/mips/ath79/mach-pqi-air-pen.c | 99 ++++++++++++++++++++++
> .../linux/ar71xx/files/arch/mips/ath79/machtypes.h | 1 +
> target/linux/ar71xx/image/generic.mk | 10 +++
> 10 files changed, 131 insertions(+)
> create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-pqi-air-pen.c
>
> diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds
> index 5a2bf0c..14d9b3c 100755
> --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds
> +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds
> @@ -427,6 +427,10 @@ omy-x1)
> ucidef_set_led_default "power" "POWER" "omy:green:power" "1"
> ucidef_set_led_default "wan" "WAN" "omy:green:wan" "eth0"
> ;;
> +pqi-air-pen)
> + ucidef_set_led_wlan "wlan" "WLAN" "pqi-air-pen:blue:wlan" "phy0tpt"
> + ucidef_set_led_default "wps" "WPS" "pqi-air-pen:blue:wps" "0"
> + ;;
> qihoo-c301)
> ucidef_set_led_wlan "wlan2g" "WLAN2G" "qihoo:red:status" "phy1tpt"
> ;;
[...]
> diff --git a/target/linux/ar71xx/config-4.4 b/target/linux/ar71xx/config-4.4
> index 4b2f736..129af79 100644
> --- a/target/linux/ar71xx/config-4.4
> +++ b/target/linux/ar71xx/config-4.4
> @@ -136,6 +136,7 @@ CONFIG_ATH79_MACH_OMY_X1=y
> CONFIG_ATH79_MACH_ONION_OMEGA=y
> CONFIG_ATH79_MACH_PB42=y
> CONFIG_ATH79_MACH_PB44=y
> +CONFIG_ATH79_MACH_PQI_AIR_PEN=y
> CONFIG_ATH79_MACH_QIHOO_C301=y
> CONFIG_ATH79_MACH_R6100=y
> # CONFIG_ATH79_MACH_RB2011 is not set
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
> index 21d6b51..902a7e9 100644
> --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
> @@ -1734,6 +1734,16 @@ config ATH79_MACH_CARAMBOLA2
> select ATH79_DEV_USB
> select ATH79_DEV_WMAC
>
> +config ATH79_MACH_PQI_AIR_PEN
alphabetical ordering is wrong
> + bool "PQI Air Pen"
> + select SOC_AR933X
> + select ATH79_DEV_ETH
> + select ATH79_DEV_GPIO_BUTTONS
> + select ATH79_DEV_LEDS_GPIO
> + select ATH79_DEV_M25P80
> + select ATH79_DEV_USB
> + select ATH79_DEV_WMAC
> +
> config ATH79_MACH_CF_E316N_V2
> bool "COMFAST CF-E316N v2 support"
> select SOC_AR934X
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile
> index 6384c06..2280483 100644
> --- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile
> @@ -65,6 +65,7 @@ obj-$(CONFIG_ATH79_MACH_C60) += mach-c60.o
> obj-$(CONFIG_ATH79_MACH_CAP324) += mach-cap324.o
> obj-$(CONFIG_ATH79_MACH_CAP4200AG) += mach-cap4200ag.o
> obj-$(CONFIG_ATH79_MACH_CARAMBOLA2) += mach-carambola2.o
> +obj-$(CONFIG_ATH79_MACH_PQI_AIR_PEN) += mach-pqi-air-pen.o
alphabetical ordering is wrong
> obj-$(CONFIG_ATH79_MACH_CF_E316N_V2) += mach-cf-e316n-v2.o
> obj-$(CONFIG_ATH79_MACH_CF_E320N_V2) += mach-cf-e316n-v2.o
> obj-$(CONFIG_ATH79_MACH_CF_E380AC_V1) += mach-cf-e316n-v2.o
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-pqi-air-pen.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-pqi-air-pen.c
> new file mode 100644
> index 0000000..f8803c4
> --- /dev/null
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-pqi-air-pen.c
> @@ -0,0 +1,99 @@
> +/*
> + * PQI Air Pen stick support
> + *
> + * Copyright (C) 2016 YuheiOKAWA <tochiro.srchack at gmail.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published
> + * by the Free Software Foundation.
> +*/
> +
> +#include <linux/gpio.h>
> +
> +#include <asm/mach-ath79/ath79.h>
> +
> +#include "common.h"
> +#include "dev-eth.h"
> +#include "dev-gpio-buttons.h"
> +#include "dev-leds-gpio.h"
> +#include "dev-m25p80.h"
> +#include "dev-usb.h"
> +#include "dev-wmac.h"
> +#include "machtypes.h"
> +
> +#define PQI_AIR_PEN_GPIO_LED_WLAN 0
> +#define PQI_AIR_PEN_GPIO_LED_WPS 23
> +
> +#define PQI_AIR_PEN_GPIO_BTN_WPS 22
> +#define PQI_AIR_PEN_GPIO_BTN_RESET 12
> +
> +#define PQI_AIR_PEN_KEYS_POLL_INTERVAL 20 /* msecs */
spaces vs tabs error
> +#define PQI_AIR_PEN_KEYS_DEBOUNCE_INTERVAL (3 * PQI_AIR_PEN_KEYS_POLL_INTERVAL)
> +
> +#define PQI_AIR_PEN_WMAC_CALDATA_OFFSET 0x1000
spaces vs tabs error
> +#define PQI_AIR_PEN_LAN_MAC_OFFSET 0x1002
> +#define PQI_AIR_PEN_WMAC_MAC_OFFSET 0x1002
> +
> +static struct gpio_led pqi_air_pen_leds_gpio[] __initdata = {
> + {
> + .name = "pqi-air-pen:blue:wlan",
> + .gpio = PQI_AIR_PEN_GPIO_LED_WLAN,
> + .active_low = 0,
> + },
> + {
> + .name = "pqi-air-pen:blue:wps",
> + .gpio = PQI_AIR_PEN_GPIO_LED_WPS,
> + .active_low = 0,
> + },
> +};
> +
> +static struct gpio_keys_button pqi_air_pen_gpio_keys[] __initdata = {
> + {
> + .desc = "wps",
> + .type = EV_KEY,
> + .code = KEY_WPS_BUTTON,
> + .debounce_interval = PQI_AIR_PEN_KEYS_DEBOUNCE_INTERVAL,
> + .gpio = PQI_AIR_PEN_GPIO_BTN_WPS,
> + .active_low = 0,
> + },
> + {
> + .desc = "reset",
> + .type = EV_KEY,
> + .code = KEY_RESTART,
> + .debounce_interval = PQI_AIR_PEN_KEYS_DEBOUNCE_INTERVAL,
> + .gpio = PQI_AIR_PEN_GPIO_BTN_RESET,
> + .active_low = 0,
> + },
> +};
> +
> +static void __init pqi_air_pen_setup(void)
> +{
> + /* ART base address */
> + u8 *art = (u8 *) KSEG1ADDR(0x9f050000);
> +
> + /* register flash. */
> + ath79_register_m25p80(NULL);
> +
> + /* register wireless mac with cal data */
> + ath79_register_wmac(art + PQI_AIR_PEN_WMAC_CALDATA_OFFSET, art + PQI_AIR_PEN_WMAC_MAC_OFFSET);
> +
> + /* false PHY_SWAP and PHY_ADDR_SWAP bits */
> + ath79_setup_ar933x_phy4_switch(false, false);
> +
> + /* register gpio LEDs and keys */
> + ath79_register_leds_gpio(-1, ARRAY_SIZE(pqi_air_pen_leds_gpio),
> + pqi_air_pen_leds_gpio);
> + ath79_register_gpio_keys_polled(-1, PQI_AIR_PEN_KEYS_POLL_INTERVAL,
> + ARRAY_SIZE(pqi_air_pen_gpio_keys),
> + pqi_air_pen_gpio_keys);
> +
> + /* enable usb */
> + ath79_register_usb();
> +
> + /* register eth0 as LAN */
> + ath79_init_mac(ath79_eth0_data.mac_addr, art + PQI_AIR_PEN_LAN_MAC_OFFSET, 0);
> + ath79_register_mdio(0, 0x0);
> + ath79_register_eth(0);
> +}
> +
> +MIPS_MACHINE(ATH79_MACH_PQI_AIR_PEN, "PQI-AIR-PEN", "PQI Air Pen",pqi_air_pen_setup);
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
> index 9402185..689a0a1 100644
> --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h
> @@ -50,6 +50,7 @@ enum ath79_mach_type {
> ATH79_MACH_CAP324, /* PowerCloud CAP324 */
> ATH79_MACH_CAP4200AG, /* Senao CAP4200AG */
> ATH79_MACH_CARAMBOLA2, /* 8devices Carambola2 */
> + ATH79_MACH_PQI_AIR_PEN, /* PQI Air Pen */
alphabetical ordering error
> ATH79_MACH_CF_E316N_V2, /* COMFAST CF-E316N v2 */
> ATH79_MACH_CF_E320N_V2, /* COMFAST CF-E320N v2 */
> ATH79_MACH_CF_E380AC_V1, /* COMFAST CF-E380AC v1 */
> diff --git a/target/linux/ar71xx/image/generic.mk b/target/linux/ar71xx/image/generic.mk
> index e2867e6..b0cbc57 100644
> --- a/target/linux/ar71xx/image/generic.mk
> +++ b/target/linux/ar71xx/image/generic.mk
> @@ -27,6 +27,16 @@ define Device/carambola2
> endef
> TARGET_DEVICES += carambola2
>
> +define Device/pqi-air-pen
> + DEVICE_TITLE := PQI Air Pen
> + DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage
> + BOARDNAME = PQI-AIR-PEN
> + IMAGE_SIZE = 7744k
> + CONSOLE = ttyATH0,115200
> + MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(art)ro,64k(NVRAM)ro,7680k(firmware),64k(CONF)
> +endef
> +TARGET_DEVICES += pqi-air-pen
> +
and a final alphabetical ordering issue
John
> define Device/cf-e316n-v2
> DEVICE_TITLE := COMFAST CF-E316N v2
> BOARDNAME = CF-E316N-V2
>
More information about the Lede-dev
mailing list