The gpio-keys driver takes ascii key codes from platform_data and Linux keycodes from device tree. Convert the ascii keys over to Linux keycodes to get rid of the special cases in the driver.
Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de> --- arch/arm/boards/archosg9/board.c | 5 +++-- arch/arm/boards/at91sam9261ek/init.c | 7 ++++--- arch/arm/boards/at91sam9m10g45ek/init.c | 15 ++++++++------- arch/arm/boards/usb-a926x/init.c | 9 +++++---- drivers/input/gpio_keys.c | 9 +-------- 5 files changed, 21 insertions(+), 24 deletions(-) diff --git a/arch/arm/boards/archosg9/board.c b/arch/arm/boards/archosg9/board.c index f80714e..6f82f5e 100644 --- a/arch/arm/boards/archosg9/board.c +++ b/arch/arm/boards/archosg9/board.c @@ -26,6 +26,7 @@ #include <gpio_keys.h> #include <twl6030_pwrbtn.h> #include <readkey.h> +#include <input/input.h> #include "archos_features.h" #define GPIO_LCD_PWON 38 @@ -72,8 +73,8 @@ static struct twl6030_pwrbtn_platform_data pwrbtn_data = { .code = BB_KEY_ENTER }; static struct gpio_keys_button keys[] = { - { .code = BB_KEY_UP , .gpio = 43, .active_low = 1 }, - { .code = BB_KEY_DOWN, .gpio = 44, .active_low = 1 }, + { .code = KEY_UP , .gpio = 43, .active_low = 1 }, + { .code = KEY_DOWN, .gpio = 44, .active_low = 1 }, }; static struct gpio_keys_platform_data gk_data = { .buttons = keys, diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c index a0b0219..6cb1701 100644 --- a/arch/arm/boards/at91sam9261ek/init.c +++ b/arch/arm/boards/at91sam9261ek/init.c @@ -39,6 +39,7 @@ #include <readkey.h> #include <led.h> #include <spi/spi.h> +#include <input/input.h> static struct atmel_nand_data nand_pdata = { .ale = 22, @@ -235,13 +236,13 @@ static void ek_add_device_lcdc(void) {} #ifdef CONFIG_KEYBOARD_GPIO struct gpio_keys_button keys[] = { { - .code = BB_KEY_UP, + .code = KEY_UP, .gpio = AT91_PIN_PA26, }, { - .code = BB_KEY_DOWN, + .code = KEY_DOWN, .gpio = AT91_PIN_PA25, }, { - .code = BB_KEY_ENTER, + .code = KEY_ENTER, .gpio = AT91_PIN_PA24, }, }; diff --git a/arch/arm/boards/at91sam9m10g45ek/init.c b/arch/arm/boards/at91sam9m10g45ek/init.c index e00908b..fb444d8 100644 --- a/arch/arm/boards/at91sam9m10g45ek/init.c +++ b/arch/arm/boards/at91sam9m10g45ek/init.c @@ -40,6 +40,7 @@ #include <gpio_keys.h> #include <readkey.h> #include <spi/spi.h> +#include <input/input.h> /* * board revision encoding @@ -183,25 +184,25 @@ static void ek_device_add_leds(void) {} #ifdef CONFIG_KEYBOARD_GPIO struct gpio_keys_button keys[] = { { - .code = BB_KEY_HOME, + .code = KEY_HOME, .gpio = AT91_PIN_PB6, }, { - .code = BB_KEY_RETURN, + .code = KEY_ENTER, .gpio = AT91_PIN_PB7, }, { - .code = BB_KEY_LEFT, + .code = KEY_LEFT, .gpio = AT91_PIN_PB14, }, { - .code = BB_KEY_RIGHT, + .code = KEY_RIGHT, .gpio = AT91_PIN_PB15, }, { - .code = BB_KEY_UP, + .code = KEY_UP, .gpio = AT91_PIN_PB16, }, { - .code = BB_KEY_DOWN, + .code = KEY_DOWN, .gpio = AT91_PIN_PB17, }, { - .code = BB_KEY_RETURN, + .code = KEY_ENTER, .gpio = AT91_PIN_PB18, }, }; diff --git a/arch/arm/boards/usb-a926x/init.c b/arch/arm/boards/usb-a926x/init.c index 958c3c3..a9a0549 100644 --- a/arch/arm/boards/usb-a926x/init.c +++ b/arch/arm/boards/usb-a926x/init.c @@ -41,6 +41,7 @@ #include <gpio_keys.h> #include <readkey.h> #include <spi/spi.h> +#include <input/input.h> static void usb_a9260_set_board_type(void) { @@ -340,16 +341,16 @@ struct gpio_led dab_mmx_leds[] = { #ifdef CONFIG_KEYBOARD_GPIO struct gpio_keys_button keys[] = { { - .code = BB_KEY_UP, + .code = KEY_UP, .gpio = AT91_PIN_PB25, }, { - .code = BB_KEY_HOME, + .code = KEY_HOME, .gpio = AT91_PIN_PB13, }, { - .code = BB_KEY_DOWN, + .code = KEY_DOWN, .gpio = AT91_PIN_PA26, }, { - .code = BB_KEY_ENTER, + .code = KEY_ENTER, .gpio = AT91_PIN_PC9, }, }; diff --git a/drivers/input/gpio_keys.c b/drivers/input/gpio_keys.c index 5b03fd7..acb9e07 100644 --- a/drivers/input/gpio_keys.c +++ b/drivers/input/gpio_keys.c @@ -36,8 +36,6 @@ struct gpio_keys { struct kfifo *recv_fifo; struct poller_struct poller; struct console_device cdev; - - int use_keycodes; }; static inline struct gpio_keys * @@ -91,10 +89,7 @@ static int gpio_keys_getc(struct console_device *cdev) kfifo_get(gk->recv_fifo, (u_char*)&code, sizeof(int)); - if (IS_ENABLED(CONFIG_OFDEVICE) && gk->use_keycodes) - return keycode_bb_keys[code]; - else - return code; + return keycode_bb_keys[code]; } static int gpio_keys_probe_pdata(struct gpio_keys *gk, struct device_d *dev) @@ -162,8 +157,6 @@ static int gpio_keys_probe_dt(struct gpio_keys *gk, struct device_d *dev) i++; } - gk->use_keycodes = 1; - return 0; } -- 2.6.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox