ar71xx: add kernel support for the OpenMesh MR600v2
Signed-off-by: Marek Lindner <marek@open-mesh.com> Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35428
This commit is contained in:
parent
150bb9d0b1
commit
8837d3a49b
2 changed files with 79 additions and 6 deletions
|
@ -35,8 +35,17 @@
|
||||||
#include "machtypes.h"
|
#include "machtypes.h"
|
||||||
|
|
||||||
#define MR600_GPIO_LED_WLAN58 12
|
#define MR600_GPIO_LED_WLAN58 12
|
||||||
#define MR600_GPIO_LED_WPS 13
|
#define MR600_GPIO_LED_WPS 13
|
||||||
#define MR600_GPIO_LED_POWER 14
|
#define MR600_GPIO_LED_POWER 14
|
||||||
|
|
||||||
|
#define MR600V2_GPIO_LED_WLAN58_RED 12
|
||||||
|
#define MR600V2_GPIO_LED_WPS 13
|
||||||
|
#define MR600V2_GPIO_LED_POWER 14
|
||||||
|
#define MR600V2_GPIO_LED_WLAN24_GREEN 18
|
||||||
|
#define MR600V2_GPIO_LED_WLAN24_YELLOW 19
|
||||||
|
#define MR600V2_GPIO_LED_WLAN24_RED 20
|
||||||
|
#define MR600V2_GPIO_LED_WLAN58_GREEN 21
|
||||||
|
#define MR600V2_GPIO_LED_WLAN58_YELLOW 22
|
||||||
|
|
||||||
#define MR600_GPIO_BTN_RESET 17
|
#define MR600_GPIO_BTN_RESET 17
|
||||||
|
|
||||||
|
@ -65,6 +74,49 @@ static struct gpio_led mr600_leds_gpio[] __initdata = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct gpio_led mr600v2_leds_gpio[] __initdata = {
|
||||||
|
{
|
||||||
|
.name = "mr600:blue:power",
|
||||||
|
.gpio = MR600V2_GPIO_LED_POWER,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:blue:wps",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WPS,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:red:wlan24",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WLAN24_RED,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:yellow:wlan24",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WLAN24_YELLOW,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:green:wlan24",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WLAN24_GREEN,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:red:wlan58",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WLAN58_RED,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:yellow:wlan58",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WLAN58_YELLOW,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.name = "mr600:green:wlan58",
|
||||||
|
.gpio = MR600V2_GPIO_LED_WLAN58_GREEN,
|
||||||
|
.active_low = 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
static struct gpio_keys_button mr600_gpio_keys[] __initdata = {
|
static struct gpio_keys_button mr600_gpio_keys[] __initdata = {
|
||||||
{
|
{
|
||||||
.desc = "Reset button",
|
.desc = "Reset button",
|
||||||
|
@ -76,15 +128,14 @@ static struct gpio_keys_button mr600_gpio_keys[] __initdata = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init mr600_setup(void)
|
static void __init mr600_base_setup(unsigned num_leds, struct gpio_led *leds)
|
||||||
{
|
{
|
||||||
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
|
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||||
u8 mac[6];
|
u8 mac[6];
|
||||||
|
|
||||||
ath79_register_m25p80(NULL);
|
ath79_register_m25p80(NULL);
|
||||||
|
|
||||||
ath79_register_leds_gpio(-1, ARRAY_SIZE(mr600_leds_gpio),
|
ath79_register_leds_gpio(-1, num_leds, leds);
|
||||||
mr600_leds_gpio);
|
|
||||||
ath79_register_gpio_keys_polled(-1, MR600_KEYS_POLL_INTERVAL,
|
ath79_register_gpio_keys_polled(-1, MR600_KEYS_POLL_INTERVAL,
|
||||||
ARRAY_SIZE(mr600_gpio_keys),
|
ARRAY_SIZE(mr600_gpio_keys),
|
||||||
mr600_gpio_keys);
|
mr600_gpio_keys);
|
||||||
|
@ -110,4 +161,16 @@ static void __init mr600_setup(void)
|
||||||
ath79_register_eth(0);
|
ath79_register_eth(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __init mr600_setup(void)
|
||||||
|
{
|
||||||
|
mr600_base_setup(ARRAY_SIZE(mr600_leds_gpio), mr600_leds_gpio);
|
||||||
|
}
|
||||||
|
|
||||||
MIPS_MACHINE(ATH79_MACH_MR600, "MR600", "OpenMesh MR600", mr600_setup);
|
MIPS_MACHINE(ATH79_MACH_MR600, "MR600", "OpenMesh MR600", mr600_setup);
|
||||||
|
|
||||||
|
static void __init mr600v2_setup(void)
|
||||||
|
{
|
||||||
|
mr600_base_setup(ARRAY_SIZE(mr600v2_leds_gpio), mr600v2_leds_gpio);
|
||||||
|
}
|
||||||
|
|
||||||
|
MIPS_MACHINE(ATH79_MACH_MR600V2, "MR600v2", "OpenMesh MR600v2", mr600v2_setup);
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
--- a/arch/mips/ath79/machtypes.h
|
||||||
|
+++ b/arch/mips/ath79/machtypes.h
|
||||||
|
@@ -47,6 +47,7 @@ enum ath79_mach_type {
|
||||||
|
ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */
|
||||||
|
ATH79_MACH_JWAP003, /* jjPlus JWAP003 */
|
||||||
|
ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */
|
||||||
|
+ ATH79_MACH_MR600V2, /* OpenMesh MR600v2 */
|
||||||
|
ATH79_MACH_MR600, /* OpenMesh MR600 */
|
||||||
|
ATH79_MACH_MZK_W04NU, /* Planex MZK-W04NU */
|
||||||
|
ATH79_MACH_MZK_W300NH, /* Planex MZK-W300NH */
|
Loading…
Reference in a new issue