forked from Minki/linux
[ARM] Orion5x: add GPIO LED and buttons for wrt350n v2
Signed-off-by: Dirk Teurlings <dirk@upexia.nl> Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: Nicolas Pitre <nico@marvell.com>
This commit is contained in:
parent
81143d2a65
commit
e9cfa167b6
@ -15,6 +15,9 @@
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <linux/ethtool.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/input.h>
|
||||
#include <net/dsa.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/gpio.h>
|
||||
@ -24,6 +27,80 @@
|
||||
#include "common.h"
|
||||
#include "mpp.h"
|
||||
|
||||
/*
|
||||
* LEDs attached to GPIO
|
||||
*/
|
||||
static struct gpio_led wrt350n_v2_led_pins[] = {
|
||||
{
|
||||
.name = "wrt350nv2:green:power",
|
||||
.gpio = 0,
|
||||
.active_low = 1,
|
||||
}, {
|
||||
.name = "wrt350nv2:green:security",
|
||||
.gpio = 1,
|
||||
.active_low = 1,
|
||||
}, {
|
||||
.name = "wrt350nv2:orange:power",
|
||||
.gpio = 5,
|
||||
.active_low = 1,
|
||||
}, {
|
||||
.name = "wrt350nv2:green:usb",
|
||||
.gpio = 6,
|
||||
.active_low = 1,
|
||||
}, {
|
||||
.name = "wrt350nv2:green:wireless",
|
||||
.gpio = 7,
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_led_platform_data wrt350n_v2_led_data = {
|
||||
.leds = wrt350n_v2_led_pins,
|
||||
.num_leds = ARRAY_SIZE(wrt350n_v2_led_pins),
|
||||
};
|
||||
|
||||
static struct platform_device wrt350n_v2_leds = {
|
||||
.name = "leds-gpio",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &wrt350n_v2_led_data,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* Buttons attached to GPIO
|
||||
*/
|
||||
static struct gpio_keys_button wrt350n_v2_buttons[] = {
|
||||
{
|
||||
.code = KEY_RESTART,
|
||||
.gpio = 3,
|
||||
.desc = "Reset Button",
|
||||
.active_low = 1,
|
||||
}, {
|
||||
.code = KEY_WLAN,
|
||||
.gpio = 2,
|
||||
.desc = "WPS Button",
|
||||
.active_low = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static struct gpio_keys_platform_data wrt350n_v2_button_data = {
|
||||
.buttons = wrt350n_v2_buttons,
|
||||
.nbuttons = ARRAY_SIZE(wrt350n_v2_buttons),
|
||||
};
|
||||
|
||||
static struct platform_device wrt350n_v2_button_device = {
|
||||
.name = "gpio-keys",
|
||||
.id = -1,
|
||||
.num_resources = 0,
|
||||
.dev = {
|
||||
.platform_data = &wrt350n_v2_button_data,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* General setup
|
||||
*/
|
||||
static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = {
|
||||
{ 0, MPP_GPIO }, /* Power LED green (0=on) */
|
||||
{ 1, MPP_GPIO }, /* Security LED (0=on) */
|
||||
@ -140,6 +217,8 @@ static void __init wrt350n_v2_init(void)
|
||||
orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE,
|
||||
WRT350N_V2_NOR_BOOT_SIZE);
|
||||
platform_device_register(&wrt350n_v2_nor_flash);
|
||||
platform_device_register(&wrt350n_v2_leds);
|
||||
platform_device_register(&wrt350n_v2_button_device);
|
||||
}
|
||||
|
||||
static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||
|
Loading…
Reference in New Issue
Block a user