From 56f5cc7ee3dbdd258f14a9148918ec8aad10d50c Mon Sep 17 00:00:00 2001
From: Da Lao <dalao@tutanota.com>
Date: Sun, 5 Apr 2020 00:23:09 +0800
Subject: ec/lenovo/h8: Config the ec hardware ids for newer thinkpads

Currently coreboot is using the ec hardware id IBM0068 for all
thinkpads, but for newer thinkpads the id maybe LEN0068 or LEN0268.
On Windows, the Lenovo Vantage app can't get battery details when using
IBM0068. This patch config this id by motherboard. The hardware IDs for
the following models can be found by searching for disassembled
dsdt.asl on vendor BIOS:
(But this info is not easy to find online. So I only changed some of
the thinkpads.)

T420:
https://github.com/tluck/Lenovo-T420-Clover/blob/master/EFI/CLOVER/ACPI/1600x900-EDID/DSDT.edid-2e2-hs.dsl
LEN0068

T430:
https://github.com/ThiagoSchetini/macosx-thinkpad-t430/blob/master/vanilla%20ACPI%20dsl's/DSDT.dsl
LEN0068

T520: Confirmed by Patrick Rudolph
LEN0068

W520: Confirmed by Patrick Rudolph
LEN0068

T530: Confirmed by Prasun Gera
LEN0068

W530: https://bugzilla.kernel.org/show_bug.cgi?id=66731
LEN0068

X230/X230T:
https://github.com/tuandzung/ThinkPad-X230-macOS-10.12.x/blob/master/DSDT/DSDT.dsl
LEN0068

T440p: https://github.com/doudou/t440p/blob/master/acpi/2.30/dsdt.dsl
LEN0068

Signed-off-by: Da Lao <dalao@tutanota.com>
Change-Id: I797080ec8ba7ce39d47fe587319f8f32d6938875
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40128
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
---
 src/ec/lenovo/h8/Kconfig           | 7 +++++++
 src/ec/lenovo/h8/acpi/thinkpad.asl | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

(limited to 'src/ec')

diff --git a/src/ec/lenovo/h8/Kconfig b/src/ec/lenovo/h8/Kconfig
index 6bd290f50e..2ea4faa9e2 100644
--- a/src/ec/lenovo/h8/Kconfig
+++ b/src/ec/lenovo/h8/Kconfig
@@ -44,4 +44,11 @@ config H8_HAS_PRIMARY_FN_KEYS
 	bool
 	default n
 
+config THINKPADEC_HKEY_EISAID
+	string
+	default "IBM0068"
+	help
+	  Motherboards of newer thinkpad models can override the default to match
+	  vendor drivers and quirks.
+
 endif # EC_LENOVO_H8
diff --git a/src/ec/lenovo/h8/acpi/thinkpad.asl b/src/ec/lenovo/h8/acpi/thinkpad.asl
index 0b8ca15eb2..eca0d4471d 100644
--- a/src/ec/lenovo/h8/acpi/thinkpad.asl
+++ b/src/ec/lenovo/h8/acpi/thinkpad.asl
@@ -8,7 +8,7 @@ Device (HKEY)
 	External (\HKBL, IntObj)
 	External (\HUWB, IntObj)
 
-	Name (_HID, EisaId ("IBM0068"))
+	Name (_HID, EisaId (CONFIG_THINKPADEC_HKEY_EISAID))
 
 	Name (BTN, 0)
 
-- 
cgit v1.2.3