aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/patches-2.6.39/520-register_buttons.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/lantiq/patches-2.6.39/520-register_buttons.patch')
-rw-r--r--target/linux/lantiq/patches-2.6.39/520-register_buttons.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-2.6.39/520-register_buttons.patch b/target/linux/lantiq/patches-2.6.39/520-register_buttons.patch
new file mode 100644
index 0000000000..0d8d58ea53
--- /dev/null
+++ b/target/linux/lantiq/patches-2.6.39/520-register_buttons.patch
@@ -0,0 +1,46 @@
+--- a/arch/mips/lantiq/xway/devices.c
++++ b/arch/mips/lantiq/xway/devices.c
+@@ -154,6 +154,26 @@
+ lantiq_emulate_madwifi_eep = 1;
+ }
+
++/* gpio buttons */
++static struct gpio_buttons_platform_data ltq_gpio_buttons_platform_data;
++
++static struct platform_device ltq_gpio_buttons_platform_device =
++{
++ .name = "gpio-buttons",
++ .id = 0,
++ .dev = {
++ .platform_data = (void *) &ltq_gpio_buttons_platform_data,
++ },
++};
++
++void __init
++ltq_register_gpio_buttons(struct gpio_button *buttons, int cnt)
++{
++ ltq_gpio_buttons_platform_data.buttons = buttons;
++ ltq_gpio_buttons_platform_data.nbuttons = cnt;
++ platform_device_register(&ltq_gpio_buttons_platform_device);
++}
++
+ static struct resource ltq_spi_resources[] = {
+ {
+ .start = LTQ_SSC_BASE_ADDR,
+--- a/arch/mips/lantiq/xway/devices.h
++++ b/arch/mips/lantiq/xway/devices.h
+@@ -11,6 +11,7 @@
+
+ #include "../devices.h"
+ #include <linux/phy.h>
++#include <linux/gpio_buttons.h>
+
+ extern void ltq_register_gpio(void);
+ extern void ltq_register_gpio_stp(void);
+@@ -18,5 +19,6 @@
+ extern void ltq_register_etop(struct ltq_eth_data *eth);
+ extern void ltq_register_gpio_ebu(unsigned int value);
+ extern void ltq_register_madwifi_eep(void);
++extern void ltq_register_gpio_buttons(struct gpio_button *buttons, int cnt);
+
+ #endif