--- 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 #include +#include 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