acpigen_ps2_keybd: map KEY_HOMEPAGE to 0xaa scancode and TK_HOME

Chromium OS EC has some specialized handling of chromebook specific
function keys on the keyboard top row, these have a function specific
action key code that is exposed to the OS and used to map their
position, and also a specific scancode that has to be mapped to a Linux
event code.

This adds the necessary mapping for KEY_HOMEPAGE, which is going to be
used in new devices.

The scancode picked is 0xe012, which maps to e02a or 0xaa, the
corresponding EC CL is:

https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/7118961

BUG=b:446007724
TEST=flashed and tested on a brox board with chromiumos, checked the
code with evtest

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Change-Id: I395721a342f507453dae19373df2f189ac1b5dac
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90024
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
This commit is contained in:
Fabio Baltieri 2025-11-05 10:41:11 +00:00 committed by Matt DeVillier
commit a7efa40e39
4 changed files with 4 additions and 0 deletions

View file

@ -59,6 +59,7 @@ static const uint32_t action_keymaps[] = {
[PS2_KEY_DICTATE] = KEYMAP(0xa7, KEY_DICTATE), /* e027*/
[PS2_KEY_ACCESSIBILITY] = KEYMAP(0xa9, KEY_ACCESSIBILITY), /* e029 */
[PS2_KEY_DO_NOT_DISTURB] = KEYMAP(0xa8, KEY_DO_NOT_DISTURB), /* e028 */
[PS2_KEY_HOMEPAGE] = KEYMAP(0xaa, KEY_HOMEPAGE), /* e02a */
};
/* Keymap for numeric keypad keys */

View file

@ -247,6 +247,7 @@ static const enum ps2_action_key ps2_enum_val[] = {
[TK_DICTATE] = PS2_KEY_DICTATE,
[TK_ACCESSIBILITY] = PS2_KEY_ACCESSIBILITY,
[TK_DONOTDISTURB] = PS2_KEY_DO_NOT_DISTURB,
[TK_HOME] = PS2_KEY_HOMEPAGE,
};
static void fill_ssdt_ps2_keyboard(const struct device *dev)

View file

@ -7138,6 +7138,7 @@ enum action_key {
TK_DICTATE = 21,
TK_ACCESSIBILITY = 22,
TK_DONOTDISTURB = 23,
TK_HOME = 24,
TK_COUNT
};

View file

@ -30,6 +30,7 @@ enum ps2_action_key {
PS2_KEY_DICTATE,
PS2_KEY_ACCESSIBILITY,
PS2_KEY_DO_NOT_DISTURB,
PS2_KEY_HOMEPAGE,
};
#define PS2_MIN_TOP_ROW_KEYS 2