summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEvgeny Sorokin <me@ch1p.io>2024-02-10 03:32:41 +0300
committerFelix Singer <service+coreboot-gerrit@felixsinger.de>2024-02-12 13:03:32 +0000
commitd48d72c9ceeccb56d89f13fa2f78d7c6b8666a0b (patch)
tree8f255ff32c22a294249dd0195f2cb8f1f01953b7 /src
parent60a68295b817a40fd42af2f3c3de118bab97feee (diff)
downloadcoreboot-d48d72c9ceeccb56d89f13fa2f78d7c6b8666a0b.tar.gz
coreboot-d48d72c9ceeccb56d89f13fa2f78d7c6b8666a0b.tar.bz2
coreboot-d48d72c9ceeccb56d89f13fa2f78d7c6b8666a0b.zip
ec/lenovo/h8/acpi: Support pulsing LEDLOGO on Haswell ThinkPads
The name LEDLOGO comes from schematics. It's the red indicator, embedded in the dot of the 'i' of the ThinkPad logo on laptop's lid. In vendor firmware, this led starts fading in-and-out, or, in other words, pulsing, when laptop is put to S3. It helps to determine whether the laptop is in S3 just by taking a look at the logo. As of now, coreboot doesn't do anything with this particular indicator, it's always in enabled (on) state, which is not very convenient. This patch fixes it. Tested on T440p. Change-Id: I85fb69c8c1bed8635a1b31e9b8385c7036bb46dd Signed-off-by: Evgeny Zinoviev <me@ch1p.io> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80437 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r--src/ec/lenovo/h8/Kconfig4
-rw-r--r--src/ec/lenovo/h8/acpi/systemstatus.asl16
-rw-r--r--src/mainboard/lenovo/haswell/Kconfig1
3 files changed, 21 insertions, 0 deletions
diff --git a/src/ec/lenovo/h8/Kconfig b/src/ec/lenovo/h8/Kconfig
index 57d7da6c69fa..6311d54163fb 100644
--- a/src/ec/lenovo/h8/Kconfig
+++ b/src/ec/lenovo/h8/Kconfig
@@ -52,6 +52,10 @@ config H8_HAS_PRIMARY_FN_KEYS
bool
default n
+config H8_HAS_LEDLOGO
+ bool
+ default n
+
config THINKPADEC_HKEY_EISAID
string
default "IBM0068"
diff --git a/src/ec/lenovo/h8/acpi/systemstatus.asl b/src/ec/lenovo/h8/acpi/systemstatus.asl
index 759815428234..80544499ee06 100644
--- a/src/ec/lenovo/h8/acpi/systemstatus.asl
+++ b/src/ec/lenovo/h8/acpi/systemstatus.asl
@@ -12,6 +12,10 @@ Scope (\_SI)
\_SB.PCI0.LPCB.EC.TLED(0x00)
/* suspend TLED off */
\_SB.PCI0.LPCB.EC.TLED(0x07)
+#if CONFIG(H8_HAS_LEDLOGO)
+ /* logo TLED off */
+ \_SB.PCI0.LPCB.EC.TLED(0x0a)
+#endif
}
If (Arg0 == 1) {
@@ -21,6 +25,10 @@ Scope (\_SI)
\_SB.PCI0.LPCB.EC.TLED(0x80)
/* suspend TLED off */
\_SB.PCI0.LPCB.EC.TLED(0x07)
+#if CONFIG(H8_HAS_LEDLOGO)
+ /* logo TLED on */
+ \_SB.PCI0.LPCB.EC.TLED(0x8a)
+#endif
}
If (Arg0 == 2) {
@@ -30,6 +38,10 @@ Scope (\_SI)
\_SB.PCI0.LPCB.EC.TLED(0x80)
/* suspend LED blinking */
\_SB.PCI0.LPCB.EC.TLED(0xc7)
+#if CONFIG(H8_HAS_LEDLOGO)
+ /* logo TLED on */
+ \_SB.PCI0.LPCB.EC.TLED(0x8a)
+#endif
}
If (Arg0 == 3) {
@@ -39,6 +51,10 @@ Scope (\_SI)
\_SB.PCI0.LPCB.EC.TLED(0xa0)
/* suspend TLED on */
\_SB.PCI0.LPCB.EC.TLED(0x87)
+#if CONFIG(H8_HAS_LEDLOGO)
+ /* logo TLED pulsing */
+ \_SB.PCI0.LPCB.EC.TLED(0xaa)
+#endif
}
}
}
diff --git a/src/mainboard/lenovo/haswell/Kconfig b/src/mainboard/lenovo/haswell/Kconfig
index 486baf05ca08..6e3955646e61 100644
--- a/src/mainboard/lenovo/haswell/Kconfig
+++ b/src/mainboard/lenovo/haswell/Kconfig
@@ -4,6 +4,7 @@ config BOARD_LENOVO_HASWELL_COMMON
select EC_LENOVO_H8
select EC_LENOVO_PMH7
select H8_HAS_BAT_THRESHOLDS_IMPL
+ select H8_HAS_LEDLOGO
select H8_HAS_PRIMARY_FN_KEYS
select HAVE_ACPI_RESUME
select HAVE_ACPI_TABLES