payloads/libpayload/drivers/i8042: Add macros for i8042 commands

This change adds macros for commands (written to 0x64) and keyboard
commands (written to 0x60) for 8042 controller.

BUG=b:110024487

Change-Id: I74b2388d048e35b5bdf5bd862d0975e88f1bd6af
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/27289
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Furquan Shaikh
2018-06-29 09:24:54 -07:00
committed by Patrick Georgi
parent 118fb60b3a
commit 1299dc107d
3 changed files with 87 additions and 14 deletions

View File

@@ -32,7 +32,8 @@
#include <libpayload-config.h>
#include <libpayload.h>
#define I8042_CMD_DIS_KB 0xad
#include "i8042.h"
#define POWER_BUTTON 0x90
struct layout_maps {
@@ -203,12 +204,12 @@ unsigned char keyboard_get_scancode(void)
case 0x3a:
if (modifier & KB_MOD_CAPSLOCK) {
modifier &= ~KB_MOD_CAPSLOCK;
if (keyboard_cmd(0xed))
keyboard_cmd(0 << 2);
if (keyboard_cmd(I8042_KBCMD_SET_MODE_IND))
keyboard_cmd(I8042_MODE_CAPS_LOCK_OFF);
} else {
modifier |= KB_MOD_CAPSLOCK;
if (keyboard_cmd(0xed))
keyboard_cmd(1 << 2);
if (keyboard_cmd(I8042_KBCMD_SET_MODE_IND))
keyboard_cmd(I8042_MODE_CAPS_LOCK_ON);
}
break;
}
@@ -304,19 +305,19 @@ void keyboard_init(void)
keyboard_getchar();
/* Enable first PS/2 port */
i8042_cmd(0xae);
i8042_cmd(I8042_CMD_EN_KB);
/* Set scancode set 1 */
ret = keyboard_cmd(0xf0);
ret = keyboard_cmd(I8042_KBCMD_SET_SCANCODE);
if (!ret)
return;
ret = keyboard_cmd(0x01);
ret = keyboard_cmd(I8042_SCANCODE_SET_1);
if (!ret)
return;
/* Enable scanning */
ret = keyboard_cmd(0xf4);
ret = keyboard_cmd(I8042_KBCMD_EN);
if (!ret)
return;