[U-Boot] [PATCH v3 2/5] usb: kbd: implement special keys
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Oct 10 21:36:56 UTC 2019
Provide support for F1-F12, Insert, Delete, Home, End, Page Up, Page Down.
Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
Reviewed-by: Simon Glass <sjg at chromium.org>
---
v3:
no change
v2:
no change
---
common/usb_kbd.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 7510a210be..a42b792dd9 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -233,6 +233,60 @@ static int usb_kbd_translate(struct usb_kbd_pdata *data, unsigned char scancode,
debug("%c", keycode);
switch (scancode) {
+ case 0x3a: /* F1 */
+ usb_kbd_put_sequence(data, "\eOP");
+ break;
+ case 0x3b: /* F2 */
+ usb_kbd_put_sequence(data, "\eOQ");
+ break;
+ case 0x3c: /* F3 */
+ usb_kbd_put_sequence(data, "\eOR");
+ break;
+ case 0x3d: /* F4 */
+ usb_kbd_put_sequence(data, "\eOS");
+ break;
+ case 0x3e: /* F5 */
+ usb_kbd_put_sequence(data, "\e[15~");
+ break;
+ case 0x3f: /* F6 */
+ usb_kbd_put_sequence(data, "\e[17~");
+ break;
+ case 0x40: /* F7 */
+ usb_kbd_put_sequence(data, "\e[18~");
+ break;
+ case 0x41: /* F8 */
+ usb_kbd_put_sequence(data, "\e[19~");
+ break;
+ case 0x42: /* F9 */
+ usb_kbd_put_sequence(data, "\e[20~");
+ break;
+ case 0x43: /* F10 */
+ usb_kbd_put_sequence(data, "\e[21~");
+ break;
+ case 0x44: /* F11 */
+ usb_kbd_put_sequence(data, "\e[23~");
+ break;
+ case 0x45: /* F12 */
+ usb_kbd_put_sequence(data, "\e[24~");
+ break;
+ case 0x49: /* INSERT */
+ usb_kbd_put_sequence(data, "\e[2~");
+ break;
+ case 0x4a: /* HOME */
+ usb_kbd_put_sequence(data, "\e[H");
+ break;
+ case 0x4b: /* PAGE UP */
+ usb_kbd_put_sequence(data, "\e[5~");
+ break;
+ case 0x4c: /* DELETE */
+ usb_kbd_put_sequence(data, "\e[3~");
+ break;
+ case 0x4d: /* END */
+ usb_kbd_put_sequence(data, "\e[F");
+ break;
+ case 0x4e: /* PAGE DOWN */
+ usb_kbd_put_sequence(data, "\e[6~");
+ break;
case 0x4f: /* Right arrow key */
usb_kbd_put_sequence(data, "\e[C");
break;
--
2.23.0
More information about the U-Boot
mailing list