diff options
author | Stefan Ott <stefan@ott.net> | 2017-05-10 02:01:44 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2017-05-11 16:43:26 +0200 |
commit | f63fbdb63ae19bb0cc75ef2f3ab0301e8db4a1da (patch) | |
tree | b544c9e96fc00415e7a021e7b428b42fb4e4a430 | |
parent | 10984d1034a5525d590b9501f4d34b44bccc52be (diff) |
mb/lenovo/x201: Add support for ThinkLight
The thinkpad-acpi driver uses the UCMS (CMOS) ACPI method to control the
ThinkLight from the Operating System. This patch adds partial support for
that method, enough to enable or disable the ThinkLight:
echo on >/proc/acpi/ibm/light
echo off >/proc/acpi/ibm/light
With the original BIOS the UCMS method exposes a wide range of values
through a generic /proc/acpi/ibm/cmos interface. With the changes suggested
in this patch that interface is also exposed but only accepts the commands
to enable or disable the ThinkLight; all other commands are ignored.
This change would potentially benefit all currently supported Thinkpad
models, I only have an X201 available for tests though.
Change-Id: I80285f6630b5830766d82e3ecd174c4a51aa9066
Signed-off-by: Stefan Ott <stefan@ott.net>
Reviewed-on: https://review.coreboot.org/19644
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
-rw-r--r-- | src/ec/lenovo/h8/acpi/ec.asl | 5 | ||||
-rw-r--r-- | src/mainboard/lenovo/x201/acpi/platform.asl | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/ec/lenovo/h8/acpi/ec.asl b/src/ec/lenovo/h8/acpi/ec.asl index ed62afeb0f..eed0e162a7 100644 --- a/src/ec/lenovo/h8/acpi/ec.asl +++ b/src/ec/lenovo/h8/acpi/ec.asl @@ -107,6 +107,11 @@ Device(EC) Store(Arg0, USPW) } + Method (LGHT, 1, NotSerialized) + { + Store(Arg0, KBLT) + } + /* Sleep Button pressed */ Method(_Q13, 0, NotSerialized) diff --git a/src/mainboard/lenovo/x201/acpi/platform.asl b/src/mainboard/lenovo/x201/acpi/platform.asl index 3aa12e9f88..0a6d5f3448 100644 --- a/src/mainboard/lenovo/x201/acpi/platform.asl +++ b/src/mainboard/lenovo/x201/acpi/platform.asl @@ -67,6 +67,21 @@ Method(_WAK,1) Return(Package(){0,0}) } +Method(UCMS, 1, Serialized) +{ + Switch(ToInteger(Arg0)) + { + Case (0x0c) /* Turn on ThinkLight */ + { + \_SB.PCI0.LPCB.EC.LGHT(1) + } + Case (0x0d) /* Turn off ThinkLight */ + { + \_SB.PCI0.LPCB.EC.LGHT(0) + } + } +} + /* System Bus */ Scope(\_SB) |