diff options
Diffstat (limited to 'target/linux/lantiq/patches-3.0/520-register_buttons.patch')
-rw-r--r-- | target/linux/lantiq/patches-3.0/520-register_buttons.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-3.0/520-register_buttons.patch b/target/linux/lantiq/patches-3.0/520-register_buttons.patch new file mode 100644 index 000000000..4674437f8 --- /dev/null +++ b/target/linux/lantiq/patches-3.0/520-register_buttons.patch @@ -0,0 +1,46 @@ +--- a/arch/mips/lantiq/xway/devices.c ++++ b/arch/mips/lantiq/xway/devices.c +@@ -131,6 +131,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 *) <q_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(<q_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 +@@ -12,6 +12,7 @@ + #include "../devices.h" + #include <linux/phy.h> + #include <linux/spi/spi.h> ++#include <linux/gpio_buttons.h> + + extern void ltq_register_gpio(void); + extern void ltq_register_gpio_stp(void); +@@ -20,5 +21,6 @@ + extern void ltq_register_spi(struct ltq_spi_platform_data *pdata, + struct spi_board_info const *info, unsigned n); + extern void ltq_register_madwifi_eep(void); ++extern void ltq_register_gpio_buttons(struct gpio_button *buttons, int cnt); + + #endif |