[LEDE-DEV] ar71xx: support for Zyxel NWA1121-NI
Jo-Philipp Wich
jo at mein.io
Thu Jan 26 08:30:02 PST 2017
Hi Alex,
this patch just introduces kernel support, do you plan to follow-up with
further support patches as well (sysupgrade, ar71xx.sh, ...) ?
Please find some more comments inline below.
~ Jo
> Add support for Zyxel NWA1121-NI 802.11abgn access point.
>
> From 159cda7e026f3042f950248b4e62490fd7a6bbc6 Mon Sep 17 00:00:00 2001
> From: Alex Prokofiev <alexpro at itp.ac.ru>
> Date: Wed, 25 Jan 2017 21:42:38 +0300
> Subject: [PATCH] Support for Zyxel NWA1121-NI
>
> Signed-off-by: Alex Prokofiev <alexpro at itp.ac.ru>
> ---
> .../ar71xx/files/arch/mips/ath79/mach-nwa1121.c | 108
> +++++++++++++++++++++
> 1 file changed, 108 insertions(+)
> create mode 100644
> target/linux/ar71xx/files/arch/mips/ath79/mach-nwa1121.c
>
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-nwa1121.c
> b/target/linux/ar71xx/files/arch/mips/ath79/mach-nwa1121.c
> new file mode 100644
> index 0000000000..783351b50f
> --- /dev/null
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-nwa1121.c
> @@ -0,0 +1,108 @@
> +/*
> + * 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.
You should probably assign your own copyright somehwere.
> + */
> +
> +#include <linux/pci.h>
> +#include <linux/phy.h>
> +#include <linux/platform_device.h>
> +#include <linux/ath9k_platform.h>
> +#include <linux/ar8216_platform.h>
> +
> +#include <asm/mach-ath79/ar71xx_regs.h>
> +
> +#include "common.h"
> +#include "dev-ap9x-pci.h"
> +#include "dev-eth.h"
> +#include "dev-gpio-buttons.h"
> +#include "dev-leds-gpio.h"
> +#include "dev-m25p80.h"
> +#include "dev-spi.h"
> +#include "dev-wmac.h"
> +#include "machtypes.h"
> +#include "nvram.h"
> +
> +#define NWA1121_GPIO_RESET 4
> +#define NWA1121_GPIO_ORANGE 11
> +#define NWA1121_GPIO_GREEN 12
> +
> +#define NWA1121_ENV 0x1ffe0000
> +#define NWA1121_ART 0x1fff1000
> +
> +
> +static const char *nwa1121_part_probes[] = {
> + "cmdlinepart",
> + NULL,
> +};
> +
> +static struct flash_platform_data nwa1121_flash_data = {
> + .part_probes = nwa1121_part_probes,
> +};
> +
> +static struct gpio_led nwa1121_leds_gpio[] __initdata = {
> + {
> + .name = "zyxel:orange",
> + .gpio = NWA1121_GPIO_ORANGE,
> + .active_low = 1,
> + }, {
> + .name = "zyxel:green",
> + .gpio = NWA1121_GPIO_GREEN,
> + .active_low = 1,
> + }
> +};
> +
> +static struct gpio_keys_button nwa1121_gpio_keys[] __initdata = {
> + {
> + .desc = "reset",
> + .type = EV_KEY,
> + .code = KEY_RESTART,
> + .gpio = NWA1121_GPIO_RESET,
> + .debounce_interval = 60,
> + .active_low = 1,
> + }
> +};
> +
> +static int nwa1121_get_env(const char *name, char *mac)
> +{
> + u8 *env = (u8 *) KSEG1ADDR(NWA1121_ENV);
> + int err;
Make sure that the code is tab-indented.
> +
> + printk(KERN_INFO "get_env: %s\n", name);
Please remove this debug code
> +
> + err = ath79_nvram_parse_mac_addr(env, 0x10000 /*64k*/, name, mac);
Remove the inline comment.
> +
> + return err;
Tab-indent here.
> +}
> +
> +static void __init nwa1121_setup(void)
> +{
> + u8 *ee = (u8 *) KSEG1ADDR(NWA1121_ART);
> + u8 wifi0mac[ETH_ALEN];
> + u8 eth0mac[ETH_ALEN];
> +
> + ath79_register_m25p80(&nwa1121_flash_data);
> +
> + ath79_register_leds_gpio(-1, ARRAY_SIZE(nwa1121_leds_gpio),
> nwa1121_leds_gpio);
> + ath79_register_gpio_keys_polled(-1, 20,
> ARRAY_SIZE(nwa1121_gpio_keys), nwa1121_gpio_keys);
> +
> + nwa1121_get_env("wifi0mac=", wifi0mac);
> + ath79_register_wmac(ee, wifi0mac);
> +
> + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_RGMII_GMAC0 /* |
> AR934X_ETH_CFG_SW_ONLY_MODE */);
> + ath79_setup_ar934x_eth_rx_delay(1, 1);
> + ath79_register_mdio(0, 0x0);
> +
> + nwa1121_get_env("eth0mac=", eth0mac);
> + ath79_init_mac(ath79_eth0_data.mac_addr, eth0mac, 0);
> +
> + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
> + ath79_eth0_data.phy_mask = BIT(0);
> + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
> + ath79_eth0_pll_data.pll_1000 = 0x0e000000;
> + ath79_eth0_data.speed = SPEED_1000;
> + ath79_register_eth(0);
> +}
> +
> +MIPS_MACHINE(ATH79_MACH_NWA1121, "NWA1121",
> + "ZYXEL NWA1121", nwa1121_setup);
More information about the Lede-dev
mailing list