Vladimir Serbinenko (phcoder@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4660
-gerrit
commit c47bbb7fd2f0fa0e9837c534055654318950329d Author: Vladimir Serbinenko phcoder@gmail.com Date: Sat Jan 11 10:29:14 2014 +0100
ec/lenovo/h8: Add an option to swap ctrl and fn.
Tested on my X201 and X230.
Change-Id: I3c7ec65681157d15c6e87eea64779a08e03ae5a8 Signed-off-by: Vladimir Serbinenko phcoder@gmail.com --- src/ec/lenovo/h8/h8.c | 12 ++++++++++++ src/mainboard/lenovo/t60/cmos.layout | 1 + src/mainboard/lenovo/x201/cmos.default | 1 + src/mainboard/lenovo/x201/cmos.layout | 3 ++- src/mainboard/lenovo/x60/cmos.default | 1 + src/mainboard/lenovo/x60/cmos.layout | 1 + 6 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c index 8dfec06..e44a278 100644 --- a/src/ec/lenovo/h8/h8.c +++ b/src/ec/lenovo/h8/h8.c @@ -62,6 +62,14 @@ static void h8_wwan_enable(int on) ec_clr_bit(0x3a, 6); }
+static void h8_fn_ctrl_swap(int on) +{ + if (on) + ec_set_bit(0xce, 4); + else + ec_clr_bit(0xce, 4); +} + static void h8_log_ec_version(void) { char ecfw[17]; @@ -190,6 +198,10 @@ static void h8_enable(device_t dev)
h8_wwan_enable(val);
+ if (get_option(&val, "fn_ctrl_swap") != CB_SUCCESS) + val = 0; + h8_fn_ctrl_swap(val); + if (get_option(&val, "first_battery") != CB_SUCCESS) val = 1;
diff --git a/src/mainboard/lenovo/t60/cmos.layout b/src/mainboard/lenovo/t60/cmos.layout index a179752..10f75c0 100644 --- a/src/mainboard/lenovo/t60/cmos.layout +++ b/src/mainboard/lenovo/t60/cmos.layout @@ -112,6 +112,7 @@ entries 1062 1 e 1 wwan 1064 8 h 0 volume 1072 1 e 9 first_battery +1074 1 e 1 fn_ctrl_swap # -----------------------------------------------------------------
enumerations diff --git a/src/mainboard/lenovo/x201/cmos.default b/src/mainboard/lenovo/x201/cmos.default index 4577e70..ae57b97 100644 --- a/src/mainboard/lenovo/x201/cmos.default +++ b/src/mainboard/lenovo/x201/cmos.default @@ -9,3 +9,4 @@ first_battery=Primary bluetooth=Enable wwan=Enable touchpad=Enable +fn_ctrl_swap=Disable diff --git a/src/mainboard/lenovo/x201/cmos.layout b/src/mainboard/lenovo/x201/cmos.layout index 3959178..f91fb51 100644 --- a/src/mainboard/lenovo/x201/cmos.layout +++ b/src/mainboard/lenovo/x201/cmos.layout @@ -90,7 +90,8 @@ entries 412 1 e 1 bluetooth 413 1 e 1 wwan 414 1 e 1 touchpad -#415 569 r 0 unused +417 1 e 1 fn_ctrl_swap +#419 565 r 0 unused
# coreboot config options: check sums 984 16 h 0 check_sum diff --git a/src/mainboard/lenovo/x60/cmos.default b/src/mainboard/lenovo/x60/cmos.default index 5d82ff0..a2620a9 100644 --- a/src/mainboard/lenovo/x60/cmos.default +++ b/src/mainboard/lenovo/x60/cmos.default @@ -12,3 +12,4 @@ volume=0x3 tft_brightness=0xff first_battery=Primary bluetooth=Enable +fn_ctrl_swap=Disable diff --git a/src/mainboard/lenovo/x60/cmos.layout b/src/mainboard/lenovo/x60/cmos.layout index 45bb95a..9482072 100644 --- a/src/mainboard/lenovo/x60/cmos.layout +++ b/src/mainboard/lenovo/x60/cmos.layout @@ -112,6 +112,7 @@ entries 1080 1 e 9 first_battery 1081 1 e 1 bluetooth 1082 1 e 1 wwan +1085 1 e 1 fn_ctrl_swap # -----------------------------------------------------------------
enumerations