Commit 3d014b01 authored by Albert Aribaud's avatar Albert Aribaud Committed by Nicolas Pitre

[ARM] EDMINIV2: add support for LED and power button

This patch provides standard GPIO LED control
for the ED Mini V2, with software blinking only
(CPLD hardware blinking capability is not used).

This patch also provides status of the power
button as a standard GPIO input event.
Signed-off-by: default avatarAlbert Aribaud <albert.aribaud@free.fr>
Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
parent 2d0c9e73
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/mv643xx_eth.h> #include <linux/mv643xx_eth.h>
#include <linux/leds.h>
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/ata_platform.h> #include <linux/ata_platform.h>
#include <linux/gpio.h> #include <linux/gpio.h>
...@@ -119,6 +122,61 @@ static struct mv_sata_platform_data edmini_v2_sata_data = { ...@@ -119,6 +122,61 @@ static struct mv_sata_platform_data edmini_v2_sata_data = {
.n_ports = 2, .n_ports = 2,
}; };
/*****************************************************************************
* GPIO LED (simple - doesn't use hardware blinking support)
****************************************************************************/
#define EDMINI_V2_GPIO_LED_POWER 16
static struct gpio_led edmini_v2_leds[] = {
{
.name = "power:blue",
.gpio = EDMINI_V2_GPIO_LED_POWER,
.active_low = 1,
},
};
static struct gpio_led_platform_data edmini_v2_led_data = {
.num_leds = ARRAY_SIZE(edmini_v2_leds),
.leds = edmini_v2_leds,
};
static struct platform_device edmini_v2_gpio_leds = {
.name = "leds-gpio",
.id = -1,
.dev = {
.platform_data = &edmini_v2_led_data,
},
};
/****************************************************************************
* GPIO key
****************************************************************************/
#define EDMINI_V2_GPIO_KEY_POWER 18
static struct gpio_keys_button edmini_v2_buttons[] = {
{
.code = KEY_POWER,
.gpio = EDMINI_V2_GPIO_KEY_POWER,
.desc = "Power Button",
.active_low = 0,
},
};
static struct gpio_keys_platform_data edmini_v2_button_data = {
.buttons = edmini_v2_buttons,
.nbuttons = ARRAY_SIZE(edmini_v2_buttons),
};
static struct platform_device edmini_v2_gpio_buttons = {
.name = "gpio-keys",
.id = -1,
.dev = {
.platform_data = &edmini_v2_button_data,
},
};
/***************************************************************************** /*****************************************************************************
* General Setup * General Setup
****************************************************************************/ ****************************************************************************/
...@@ -170,6 +228,8 @@ static void __init edmini_v2_init(void) ...@@ -170,6 +228,8 @@ static void __init edmini_v2_init(void)
orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE,
EDMINI_V2_NOR_BOOT_SIZE); EDMINI_V2_NOR_BOOT_SIZE);
platform_device_register(&edmini_v2_nor_flash); platform_device_register(&edmini_v2_nor_flash);
platform_device_register(&edmini_v2_gpio_leds);
platform_device_register(&edmini_v2_gpio_buttons);
pr_notice("edmini_v2: USB device port, flash write and power-off " pr_notice("edmini_v2: USB device port, flash write and power-off "
"are not yet supported.\n"); "are not yet supported.\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment