diff options
author | Simon Glass <sjg@chromium.org> | 2015-10-18 21:17:13 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-11-19 20:13:40 -0700 |
commit | 66877b0f5fc96906d70f1264b3b8102d2156360f (patch) | |
tree | f8f031613a60f517294918d270803d99e2e72487 /drivers/input/input.c | |
parent | 92778b2784e15a1ac88d4cf64a12eee8163b221c (diff) | |
download | u-boot-66877b0f5fc96906d70f1264b3b8102d2156360f.tar.gz |
input: Add the keycode translation tables separately
Require the caller to add the keycode translation tables separately so that
it can select which ones to use. In a later patch we will add the option to
add German tables.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers/input/input.c')
-rw-r--r-- | drivers/input/input.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c index 9033935773..82e8381c34 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -457,19 +457,27 @@ void input_set_delays(struct input_config *config, int repeat_delay_ms, config->repeat_rate_ms = repeat_rate_ms; } +int input_add_tables(struct input_config *config) +{ + int ret; + + ret = input_add_table(config, -1, -1, + kbd_plain_xlate, ARRAY_SIZE(kbd_plain_xlate)); + if (ret) + return ret; + ret = input_add_table(config, KEY_LEFTSHIFT, KEY_RIGHTSHIFT, + kbd_shift_xlate, ARRAY_SIZE(kbd_shift_xlate)); + if (ret) + return ret; + + return input_add_table(config, KEY_LEFTCTRL, KEY_RIGHTCTRL, + kbd_ctrl_xlate, ARRAY_SIZE(kbd_ctrl_xlate)); +} + int input_init(struct input_config *config, int leds) { memset(config, '\0', sizeof(*config)); config->leds = leds; - if (input_add_table(config, -1, -1, - kbd_plain_xlate, ARRAY_SIZE(kbd_plain_xlate)) || - input_add_table(config, KEY_LEFTSHIFT, KEY_RIGHTSHIFT, - kbd_shift_xlate, ARRAY_SIZE(kbd_shift_xlate)) || - input_add_table(config, KEY_LEFTCTRL, KEY_RIGHTCTRL, - kbd_ctrl_xlate, ARRAY_SIZE(kbd_ctrl_xlate))) { - debug("%s: Could not add modifier tables\n", __func__); - return -ENOSPC; - } return 0; } |