ramips: rt305x: add kernel support for the Planex MZK-W300NH2 Router
This is a Japanese market router, for details check http://www.planex.co.jp/product/router/mzk-w300nh2/. It has only 16MB RAM, but base OpenWRT install worked fine for days without issues. Even an image with built-in Luci worked, but don't expect smooth experience, due to the lack of RAM. Wifi was not extensively tested, but seems it is working. GPIO LEDs & buttons, factory flash image and switch config are confirmed working. Tested against revision 34882 + this patch. [juhosg: move user-space support and image generation changes into separate patches] Signed-off-by: Samir Ibradžić <sibradzic@gmail.com> Patchwork: http://patchwork.openwrt.org/patch/3077/ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 34925
This commit is contained in:
parent
76537041eb
commit
d6d06aceb0
6 changed files with 103 additions and 0 deletions
|
@ -62,6 +62,7 @@ enum ramips_mach_type {
|
||||||
RAMIPS_MACH_WL351, /* Sitecom WL-351 v1 002 */
|
RAMIPS_MACH_WL351, /* Sitecom WL-351 v1 002 */
|
||||||
RAMIPS_MACH_WR512_3GN, /* SH-WR512NU/WS-WR512N1-like 3GN*/
|
RAMIPS_MACH_WR512_3GN, /* SH-WR512NU/WS-WR512N1-like 3GN*/
|
||||||
RAMIPS_MACH_WR6202, /* Accton WR6202 */
|
RAMIPS_MACH_WR6202, /* Accton WR6202 */
|
||||||
|
RAMIPS_MACH_MZKW300NH2, /* Planex MZK-W300NH2 Router */
|
||||||
RAMIPS_MACH_XDXRN502J, /* unknown XDX-RN502J */
|
RAMIPS_MACH_XDXRN502J, /* unknown XDX-RN502J */
|
||||||
RAMIPS_MACH_UR_336UN, /* UPVEL ROUTER */
|
RAMIPS_MACH_UR_336UN, /* UPVEL ROUTER */
|
||||||
|
|
||||||
|
|
|
@ -189,6 +189,11 @@ config RT305X_MACH_NBG_419N
|
||||||
select RALINK_DEV_GPIO_BUTTONS
|
select RALINK_DEV_GPIO_BUTTONS
|
||||||
select RALINK_DEV_GPIO_LEDS
|
select RALINK_DEV_GPIO_LEDS
|
||||||
|
|
||||||
|
config RT305X_MACH_MZKW300NH2
|
||||||
|
bool "Planex MZK-W300NH2 Router support"
|
||||||
|
select RALINK_DEV_GPIO_BUTTONS
|
||||||
|
select RALINK_DEV_GPIO_LEDS
|
||||||
|
|
||||||
config RT305X_MACH_XDX_RN502J
|
config RT305X_MACH_XDX_RN502J
|
||||||
bool "Unknown board XDX-RN502J"
|
bool "Unknown board XDX-RN502J"
|
||||||
select RALINK_DEV_GPIO_BUTTONS
|
select RALINK_DEV_GPIO_BUTTONS
|
||||||
|
|
|
@ -49,4 +49,5 @@ obj-$(CONFIG_RT305X_MACH_WL_330N3G) += mach-wl-330n3g.o
|
||||||
obj-$(CONFIG_RT305X_MACH_WL341V3) += mach-wl341v3.o
|
obj-$(CONFIG_RT305X_MACH_WL341V3) += mach-wl341v3.o
|
||||||
obj-$(CONFIG_RT305X_MACH_WL351) += mach-wl351.o
|
obj-$(CONFIG_RT305X_MACH_WL351) += mach-wl351.o
|
||||||
obj-$(CONFIG_RT305X_MACH_WR6202) += mach-wr6202.o
|
obj-$(CONFIG_RT305X_MACH_WR6202) += mach-wr6202.o
|
||||||
|
obj-$(CONFIG_RT305X_MACH_MZKW300NH2) += mach-mzk-w300nh2.o
|
||||||
obj-$(CONFIG_RT305X_MACH_XDX_RN502J) += mach-xdx-rn502j.o
|
obj-$(CONFIG_RT305X_MACH_XDX_RN502J) += mach-xdx-rn502j.o
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* Planex MZK-W300NH2 board support
|
||||||
|
*
|
||||||
|
* Copyright (C) 2012 Samir Ibradžić sibradzic@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/init.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
|
#include <asm/mach-ralink/machine.h>
|
||||||
|
#include <asm/mach-ralink/dev-gpio-buttons.h>
|
||||||
|
#include <asm/mach-ralink/dev-gpio-leds.h>
|
||||||
|
#include <asm/mach-ralink/rt305x.h>
|
||||||
|
#include <asm/mach-ralink/rt305x_regs.h>
|
||||||
|
|
||||||
|
#include "devices.h"
|
||||||
|
|
||||||
|
#define MZKW300NH2_GPIO_BUTTON_RESET 0 /* active low */
|
||||||
|
#define MZKW300NH2_GPIO_BUTTON_WPS 12 /* active low */
|
||||||
|
#define MZKW300NH2_GPIO_SWITCH_MODE_RT 13 /* active low */
|
||||||
|
|
||||||
|
#define MZKW300NH2_GPIO_LED_POWER 9
|
||||||
|
#define MZKW300NH2_GPIO_LED_WLAN 14
|
||||||
|
#define MZKW300NH2_GPIO_LED_WPS 11
|
||||||
|
|
||||||
|
#define MZKW300NH2_KEYS_POLL_INTERVAL 20
|
||||||
|
#define MZKW300NH2_KEYS_DEBOUNCE_INTERVAL (3 * MZKW300NH2_KEYS_POLL_INTERVAL)
|
||||||
|
|
||||||
|
static struct gpio_led mzkw300nh2_leds_gpio[] __initdata = {
|
||||||
|
{
|
||||||
|
.name = "mzkw300nh2:green:power",
|
||||||
|
.gpio = MZKW300NH2_GPIO_LED_POWER,
|
||||||
|
.active_low = 1,
|
||||||
|
}, {
|
||||||
|
.name = "mzkw300nh2:amber:wlan",
|
||||||
|
.gpio = MZKW300NH2_GPIO_LED_WLAN,
|
||||||
|
.active_low = 1,
|
||||||
|
}, {
|
||||||
|
.name = "mzkw300nh2:amber:wps",
|
||||||
|
.gpio = MZKW300NH2_GPIO_LED_WPS,
|
||||||
|
.active_low = 1,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct gpio_keys_button mzkw300nh2_gpio_buttons[] __initdata = {
|
||||||
|
{
|
||||||
|
.desc = "wps",
|
||||||
|
.type = EV_KEY,
|
||||||
|
.code = KEY_WPS_BUTTON,
|
||||||
|
.debounce_interval = MZKW300NH2_KEYS_DEBOUNCE_INTERVAL,
|
||||||
|
.gpio = MZKW300NH2_GPIO_BUTTON_WPS,
|
||||||
|
.active_low = 1,
|
||||||
|
}, {
|
||||||
|
.desc = "reset",
|
||||||
|
.type = EV_KEY,
|
||||||
|
.code = KEY_RESTART,
|
||||||
|
.debounce_interval = MZKW300NH2_KEYS_DEBOUNCE_INTERVAL,
|
||||||
|
.gpio = MZKW300NH2_GPIO_BUTTON_RESET,
|
||||||
|
.active_low = 1,
|
||||||
|
}, {
|
||||||
|
.desc = "rt",
|
||||||
|
.type = EV_KEY,
|
||||||
|
.code = BTN_0,
|
||||||
|
.debounce_interval = MZKW300NH2_KEYS_DEBOUNCE_INTERVAL,
|
||||||
|
.gpio = MZKW300NH2_GPIO_SWITCH_MODE_RT,
|
||||||
|
.active_low = 1,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static void __init mzkw300nh2_init(void)
|
||||||
|
{
|
||||||
|
rt305x_gpio_init(RT305X_GPIO_MODE_UART0(RT305X_GPIO_MODE_GPIO) |
|
||||||
|
RT305X_GPIO_MODE_I2C |
|
||||||
|
RT305X_GPIO_MODE_SPI |
|
||||||
|
RT305X_GPIO_MODE_JTAG);
|
||||||
|
|
||||||
|
rt305x_register_flash(0);
|
||||||
|
rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW;
|
||||||
|
rt305x_register_ethernet();
|
||||||
|
ramips_register_gpio_leds(-1, ARRAY_SIZE(mzkw300nh2_leds_gpio),
|
||||||
|
mzkw300nh2_leds_gpio);
|
||||||
|
ramips_register_gpio_buttons(-1, MZKW300NH2_KEYS_POLL_INTERVAL,
|
||||||
|
ARRAY_SIZE(mzkw300nh2_gpio_buttons),
|
||||||
|
mzkw300nh2_gpio_buttons);
|
||||||
|
rt305x_register_wifi();
|
||||||
|
rt305x_register_wdt();
|
||||||
|
}
|
||||||
|
|
||||||
|
MIPS_MACHINE(RAMIPS_MACH_MZKW300NH2, "MZK-W300NH2", "Planex MZK-W300NH2",
|
||||||
|
mzkw300nh2_init);
|
|
@ -109,6 +109,7 @@ CONFIG_RT305X_MACH_FONERA20N=y
|
||||||
CONFIG_RT305X_MACH_FREESTATION5=y
|
CONFIG_RT305X_MACH_FREESTATION5=y
|
||||||
CONFIG_RT305X_MACH_HW550_3G=y
|
CONFIG_RT305X_MACH_HW550_3G=y
|
||||||
CONFIG_RT305X_MACH_MOFI3500_3GN=y
|
CONFIG_RT305X_MACH_MOFI3500_3GN=y
|
||||||
|
CONFIG_RT305X_MACH_MZKW300NH2=y
|
||||||
CONFIG_RT305X_MACH_NBG_419N=y
|
CONFIG_RT305X_MACH_NBG_419N=y
|
||||||
CONFIG_RT305X_MACH_NW718=y
|
CONFIG_RT305X_MACH_NW718=y
|
||||||
CONFIG_RT305X_MACH_OMNI_EMB=y
|
CONFIG_RT305X_MACH_OMNI_EMB=y
|
||||||
|
|
|
@ -119,6 +119,7 @@ CONFIG_RT305X_MACH_FONERA20N=y
|
||||||
CONFIG_RT305X_MACH_FREESTATION5=y
|
CONFIG_RT305X_MACH_FREESTATION5=y
|
||||||
CONFIG_RT305X_MACH_HW550_3G=y
|
CONFIG_RT305X_MACH_HW550_3G=y
|
||||||
CONFIG_RT305X_MACH_MOFI3500_3GN=y
|
CONFIG_RT305X_MACH_MOFI3500_3GN=y
|
||||||
|
CONFIG_RT305X_MACH_MZKW300NH2=y
|
||||||
CONFIG_RT305X_MACH_NBG_419N=y
|
CONFIG_RT305X_MACH_NBG_419N=y
|
||||||
CONFIG_RT305X_MACH_NW718=y
|
CONFIG_RT305X_MACH_NW718=y
|
||||||
CONFIG_RT305X_MACH_OMNI_EMB=y
|
CONFIG_RT305X_MACH_OMNI_EMB=y
|
||||||
|
|
Loading…
Reference in a new issue