aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/acpi/acpigen_ps2_keybd.c11
-rw-r--r--src/ec/google/chromeec/ec_acpi.c1
-rw-r--r--src/include/acpi/acpigen_ps2_keybd.h1
-rw-r--r--src/mainboard/purism/librem_jsl/ramstage.c2
4 files changed, 13 insertions, 2 deletions
diff --git a/src/acpi/acpigen_ps2_keybd.c b/src/acpi/acpigen_ps2_keybd.c
index cc21d5df5a..4a05225d6f 100644
--- a/src/acpi/acpigen_ps2_keybd.c
+++ b/src/acpi/acpigen_ps2_keybd.c
@@ -211,6 +211,7 @@ static void ssdt_generate_keymap(struct acpi_dp *dp, uint8_t num_top_row_keys,
bool can_send_function_keys,
bool has_numeric_keypad,
bool has_scrnlock_key,
+ bool has_assistant_key,
bool has_alpha_num_punct_keys)
{
struct acpi_dp *dp_array;
@@ -270,6 +271,12 @@ static void ssdt_generate_keymap(struct acpi_dp *dp, uint8_t num_top_row_keys,
total++;
}
+ /* Add the keymap for the assistant key if present */
+ if (has_assistant_key) {
+ acpi_dp_add_integer(dp_array, NULL, KEYMAP(0x5c, KEY_ASSISTANT));
+ total++;
+ }
+
/* Provide alphanumeric and punctuation keys (rest of the keyboard) if
* present
*/
@@ -291,6 +298,7 @@ void acpigen_ps2_keyboard_dsd(const char *scope, uint8_t num_top_row_keys,
bool can_send_function_keys,
bool has_numeric_keypad,
bool has_scrnlock_key,
+ bool has_assistant_key,
bool has_alpha_num_punct_keys)
{
struct acpi_dp *dsd;
@@ -312,7 +320,8 @@ void acpigen_ps2_keyboard_dsd(const char *scope, uint8_t num_top_row_keys,
ssdt_generate_physmap(dsd, num_top_row_keys, action_keys);
ssdt_generate_keymap(dsd, num_top_row_keys, action_keys,
can_send_function_keys, has_numeric_keypad,
- has_scrnlock_key, has_alpha_num_punct_keys);
+ has_scrnlock_key, has_assistant_key,
+ has_alpha_num_punct_keys);
acpi_dp_write(dsd);
acpigen_pop_len(); /* Scope */
}
diff --git a/src/ec/google/chromeec/ec_acpi.c b/src/ec/google/chromeec/ec_acpi.c
index e24f8ac824..61d1e5c814 100644
--- a/src/ec/google/chromeec/ec_acpi.c
+++ b/src/ec/google/chromeec/ec_acpi.c
@@ -257,6 +257,7 @@ static void fill_ssdt_ps2_keyboard(const struct device *dev)
!!(keybd.capabilities & KEYBD_CAP_FUNCTION_KEYS),
!!(keybd.capabilities & KEYBD_CAP_NUMERIC_KEYPAD),
!!(keybd.capabilities & KEYBD_CAP_SCRNLOCK_KEY),
+ !!(keybd.capabilities & KEYBD_CAP_ASSISTANT_KEY),
true);
}
diff --git a/src/include/acpi/acpigen_ps2_keybd.h b/src/include/acpi/acpigen_ps2_keybd.h
index 263eb05ab7..5a55356c08 100644
--- a/src/include/acpi/acpigen_ps2_keybd.h
+++ b/src/include/acpi/acpigen_ps2_keybd.h
@@ -37,6 +37,7 @@ void acpigen_ps2_keyboard_dsd(const char *scope, uint8_t num_top_row_keys,
enum ps2_action_key action_keys[],
bool can_send_function_keys,
bool has_numeric_keypad, bool has_scrnlock_key,
+ bool has_assistant_key,
bool has_alpha_num_punct_keys);
#endif /* __ACPI_ACPIGEN_PS2_KEYBD_H__ */
diff --git a/src/mainboard/purism/librem_jsl/ramstage.c b/src/mainboard/purism/librem_jsl/ramstage.c
index b9dd5f2f4d..78a1de03dc 100644
--- a/src/mainboard/purism/librem_jsl/ramstage.c
+++ b/src/mainboard/purism/librem_jsl/ramstage.c
@@ -19,7 +19,7 @@ static void mainboard_fill_ssdt(const struct device *dev)
PS2_KEY_VOL_UP
};
acpigen_ps2_keyboard_dsd("_SB.PCI0.PS2K", ARRAY_SIZE(ps2_action_keys),
- ps2_action_keys, false, false, false, false);
+ ps2_action_keys, false, false, false, false, false);
}
static void mainboard_init(void *chip_info)