diff --git a/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h b/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h index 2c3260f..aa461bd 100644 --- a/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h +++ b/arch/mips/include/asm/mach-jz4740/board-qi_lb60.h @@ -35,6 +35,7 @@ #define GPIO_LCD_CS JZ_GPIO_PORTC(21) #define GPIO_DISP_OFF_N JZ_GPIO_PORTD(21) #define GPIO_PWM JZ_GPIO_PORTD(27) +#define GPIO_WAKEUP_N JZ_GPIO_PORTD(29) #define GPIO_AMP_EN JZ_GPIO_PORTD(4) diff --git a/arch/mips/jz4740/platform.c b/arch/mips/jz4740/platform.c index 81cfcb4..9cace99 100644 --- a/arch/mips/jz4740/platform.c +++ b/arch/mips/jz4740/platform.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include @@ -513,6 +515,29 @@ static struct platform_device jz_battery_device = { }, }; +/* GPIO Key: power */ +static const struct gpio_keys_button qi_lb60_gpio_keys_buttons[] = { + [0] = { + .code = KEY_POWER, + .gpio = GPIO_WAKEUP_N, + .active_low = 1, + .desc = "Power", + }, +}; + +static const struct gpio_keys_platform_data qi_lb60_gpio_keys_data = { + .nbuttons = ARRAY_SIZE(qi_lb60_gpio_keys_buttons), + .buttons = qi_lb60_gpio_keys_buttons, +}; + +static struct platform_device qi_lb60_gpio_keys = { + .name = "gpio-keys", + .id = -1, + .dev = { + .platform_data = &qi_lb60_gpio_keys_data, + } +}; + /* All */ static struct platform_device *jz_platform_devices[] __initdata = { &jz_usb_ohci_device, @@ -528,6 +553,7 @@ static struct platform_device *jz_platform_devices[] __initdata = { &jz_rtc_device, &jz_adc_device, &jz_battery_device, + &qi_lb60_gpio_keys, }; static int __init jz_platform_init(void)