linux-mips
[Top] [All Lists]

[PATCH] Add GPIO system button to MTX-1

To: linux-mips@linux-mips.org
Subject: [PATCH] Add GPIO system button to MTX-1
From: Florian Fainelli <florian.fainelli@telecomint.eu>
Date: Mon, 7 Jan 2008 19:00:46 +0100
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
This patch adds support for the GPIO connected system button on the MTX-1 
boards. Default configuration is updated accordingly.

Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu>
---
diff --git a/arch/mips/au1000/mtx-1/platform.c 
b/arch/mips/au1000/mtx-1/platform.c
index 49c0fb4..ce8637b 100644
--- a/arch/mips/au1000/mtx-1/platform.c
+++ b/arch/mips/au1000/mtx-1/platform.c
@@ -22,9 +22,32 @@
 #include <linux/types.h>
 #include <linux/platform_device.h>
 #include <linux/leds.h>
+#include <linux/gpio_keys.h>
+#include <linux/input.h>
 
 #include <asm/gpio.h>
 
+static struct gpio_keys_button mtx1_gpio_button[] = {
+       {
+               .gpio = 207,
+               .code = BTN_0,
+               .desc = "System button",
+       }
+};
+
+static struct gpio_keys_platform_data mtx1_buttons_data = {
+       .buttons = mtx1_gpio_button,
+       .nbuttons = ARRAY_SIZE(mtx1_gpio_button),
+};
+
+static struct platform_device mtx1_button = {
+       .name = "gpio-keys",
+       .id = -1,
+       .dev = {
+               .platform_data = &mtx1_buttons_data,
+       }
+};
+
 static struct resource mtx1_wdt_res[] = {
        [0] = {
                .start  = 15,
@@ -66,11 +89,13 @@ static struct platform_device mtx1_gpio_leds = {
 
 static struct __initdata platform_device * mtx1_devs[] = {
        &mtx1_gpio_leds,
-       &mtx1_wdt
+       &mtx1_wdt,
+       &mtx1_button
 };
 
 static int __init mtx1_register_devices(void)
 {
+       gpio_direction_input(207);
        return platform_add_devices(mtx1_devs, ARRAY_SIZE(mtx1_devs));
 }
 
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index b536d7c..c20b560 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -1617,6 +1617,7 @@ CONFIG_INPUT_EVBUG=m
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_GPIO=y
 CONFIG_KEYBOARD_SUNKBD=m
 CONFIG_KEYBOARD_LKKBD=m
 CONFIG_KEYBOARD_XTKBD=m

<Prev in Thread] Current Thread [Next in Thread>