From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 1 Sep 2011 13:34:35 +0200 Subject: [U-Boot] [PATCH 09/15] RX-51: Fix keymap In-Reply-To: <1314876881-9669-1-git-send-email-pali.rohar@gmail.com> References: <201109011304.46581.marek.vasut@gmail.com> <1314876881-9669-1-git-send-email-pali.rohar@gmail.com> Message-ID: <1314876881-9669-9-git-send-email-pali.rohar@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de * make functions and variables static * add support for additional key combination with ctrl and fn * add support for keys: up, down, left, right, volume_up, volume_down --- board/nokia/rx51/rx51.c | 34 +++++++++++++++++++--------------- 1 files changed, 19 insertions(+), 15 deletions(-) diff --git a/board/nokia/rx51/rx51.c b/board/nokia/rx51/rx51.c index a90e4dd..01187de 100644 --- a/board/nokia/rx51/rx51.c +++ b/board/nokia/rx51/rx51.c @@ -132,32 +132,32 @@ void set_muxconf_regs(void) * TWL4030 keypad handler for cfb_console */ -char keymap[] = { +static char keymap[] = { /* normal */ 'q', 'o', 'p', ',', '\b', 0, 'a', 's', 'w', 'd', 'f', 'g', 'h', 'j', 'k', 'l', - 'e', '.', 0, '\r', 0, 'z', 'x', 'c', - 'r', 'v', 'b', 'n', 'm', ' ', 0, 0, - 't', 0, 0, 0, 0, 0, 0, 0, + 'e', '.', 24, '\r', 0, 'z', 'x', 'c', + 'r', 'v', 'b', 'n', 'm', ' ', ' ', 27, + 't', 25, 26, 0, 0, 0, 0, 0, 'y', 0, 0, 0, 0, 0, 0, 0, 'u', 0, 0, 0, 0, 0, 0, 0, - 'i', 0, 0, 0, 0, 0, 0, 0, + 'i', 5, 6, 0, 0, 0, 0, 0, /* fn */ '1', '9', '0', '=', '\b', 0, '*', '+', '2', '#', '-', '_', '(', ')', '&', '!', - '3', '?', 0, '\r', 0, 0, '$', 0, - '4', '/', '\\', '"', '\'', '@', 0, 0, - '5', 0, 0, 0, 0, 0, 0, 0, + '3', '?', '^', '\r', 0, 156, '$', 238, + '4', '/', '\\', '"', '\'', '@', 0, '<', + '5', '|', '>', 0, 0, 0, 0, 0, '6', 0, 0, 0, 0, 0, 0, 0, '7', 0, 0, 0, 0, 0, 0, 0, - '8', 0, 0, 0, 0, 0, 0, 0, + '8', 16, 17, 0, 0, 0, 0, 0, }; -u8 keys[8]; -u8 old_keys[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +static u8 keys[8]; +static u8 old_keys[8] = {0, 0, 0, 0, 0, 0, 0, 0}; #define KEYBUF_SIZE 4 -u8 keybuf[KEYBUF_SIZE]; -u8 keybuf_head = 0, keybuf_tail = 0; +static u8 keybuf[KEYBUF_SIZE]; +static u8 keybuf_head = 0, keybuf_tail = 0; int rx51_kp_init(void) { @@ -210,12 +210,16 @@ void hw_watchdog_reset(void) twl_wd_start = get_timer(0); } -char rx51_kp_fill(u8 k, u8 mods) +static void rx51_kp_fill(u8 k, u8 mods) { if (mods & 2) { /* fn */ k = keymap[k+64]; } else { k = keymap[k]; + if (mods & 1) { /* ctrl */ + if (k >= 'a' && k <= 'z') + k -= 'a' + 1; + } if (mods & 4) { /* shift */ if (k >= 'a' && k <= 'z') k += 'A' - 'a'; @@ -231,7 +235,7 @@ char rx51_kp_fill(u8 k, u8 mods) int rx51_kp_tstc(void) { - u8 c, r, dk, k, i; + u8 c, r, dk, i; u8 intr; u8 mods; -- 1.7.4.1