aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/au1000/patches/002-sys_btn_gpio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/au1000/patches/002-sys_btn_gpio.patch')
-rw-r--r--target/linux/au1000/patches/002-sys_btn_gpio.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/target/linux/au1000/patches/002-sys_btn_gpio.patch b/target/linux/au1000/patches/002-sys_btn_gpio.patch
new file mode 100644
index 0000000000..741f557cfc
--- /dev/null
+++ b/target/linux/au1000/patches/002-sys_btn_gpio.patch
@@ -0,0 +1,56 @@
+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));
+ }
+