ec/lenovo/h8: Add option to set F1-F12 as primary function

Tested on Lenovo ThinkPad T440p.

Change-Id: I83dc2c19341475abeeacd374a1b6cf152ec9b497
Signed-off-by: Iru Cai <mytbk920423@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34639
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
Iru Cai 2019-07-31 21:01:52 +08:00 committed by Patrick Georgi
parent 63c95d2e87
commit 7e8eb6bdbe
2 changed files with 18 additions and 0 deletions

View File

@ -40,6 +40,10 @@ config H8_FN_KEY_AS_VBOOT_RECOVERY_SW
If VBOOT is enabled, press Fn-Key at power on to force a recovery mode If VBOOT is enabled, press Fn-Key at power on to force a recovery mode
boot instead of regular FW_MAIN_x boot. boot instead of regular FW_MAIN_x boot.
config H8_HAS_PRIMARY_FN_KEYS
bool
default n
endif endif
config H8_DOCK_EARLY_INIT config H8_DOCK_EARLY_INIT

View File

@ -86,6 +86,14 @@ static void h8_sticky_fn(int on)
ec_clr_bit(0x0, 3); ec_clr_bit(0x0, 3);
} }
static void f1_to_f12_as_primary(int on)
{
if (on)
ec_set_bit(0x3b, 3);
else
ec_clr_bit(0x3b, 3);
}
static void h8_log_ec_version(void) static void h8_log_ec_version(void)
{ {
char ecfw[17]; char ecfw[17];
@ -334,6 +342,12 @@ static void h8_enable(struct device *dev)
val = 0; val = 0;
h8_sticky_fn(val); h8_sticky_fn(val);
if (CONFIG(H8_HAS_PRIMARY_FN_KEYS)) {
if (get_option(&val, "f1_to_f12_as_primary") != CB_SUCCESS)
val = 1;
f1_to_f12_as_primary(val);
}
if (get_option(&val, "first_battery") != CB_SUCCESS) if (get_option(&val, "first_battery") != CB_SUCCESS)
val = PRIMARY_BATTERY; val = PRIMARY_BATTERY;
h8_charge_priority(val); h8_charge_priority(val);