summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-01-11 10:29:14 +0100
committerVladimir Serbinenko <phcoder@gmail.com>2014-01-12 17:42:11 +0100
commitfc7090b249ddfc7d5332ca8bee0f322607643960 (patch)
tree4c8462b0e78136a05d26081ae6654257368aca92
parent128741682250e196ccc9ff0bf9e7a5db5dfcdbd3 (diff)
downloadcoreboot-fc7090b249ddfc7d5332ca8bee0f322607643960.tar.xz
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> Reviewed-on: http://review.coreboot.org/4660 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r--src/ec/lenovo/h8/h8.c12
-rw-r--r--src/mainboard/lenovo/t60/cmos.layout1
-rw-r--r--src/mainboard/lenovo/x201/cmos.default1
-rw-r--r--src/mainboard/lenovo/x201/cmos.layout3
-rw-r--r--src/mainboard/lenovo/x60/cmos.default1
-rw-r--r--src/mainboard/lenovo/x60/cmos.layout1
6 files changed, 18 insertions, 1 deletions
diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index 8dfec0614c..e44a2781f5 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 a179752960..10f75c03a7 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 4577e70cca..ae57b97b88 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 39591783e3..f91fb5190b 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 5d82ff0078..a2620a94eb 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 45bb95abab..9482072744 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