From 56f5cc7ee3dbdd258f14a9148918ec8aad10d50c Mon Sep 17 00:00:00 2001 From: Da Lao Date: Sun, 5 Apr 2020 00:23:09 +0800 Subject: [PATCH] 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 Change-Id: I797080ec8ba7ce39d47fe587319f8f32d6938875 Reviewed-on: https://review.coreboot.org/c/coreboot/+/40128 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph --- src/ec/lenovo/h8/Kconfig | 7 +++++++ src/ec/lenovo/h8/acpi/thinkpad.asl | 2 +- src/mainboard/lenovo/t420/Kconfig | 3 +++ src/mainboard/lenovo/t430/Kconfig | 3 +++ src/mainboard/lenovo/t440p/Kconfig | 3 +++ src/mainboard/lenovo/t520/Kconfig | 3 +++ src/mainboard/lenovo/t530/Kconfig | 3 +++ src/mainboard/lenovo/x230/Kconfig | 3 +++ 8 files changed, 26 insertions(+), 1 deletion(-) 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) diff --git a/src/mainboard/lenovo/t420/Kconfig b/src/mainboard/lenovo/t420/Kconfig index dfc8ed1d61..182ca46d58 100644 --- a/src/mainboard/lenovo/t420/Kconfig +++ b/src/mainboard/lenovo/t420/Kconfig @@ -81,4 +81,7 @@ config PS2K_EISAID config PS2M_EISAID default "LEN0015" +config THINKPADEC_HKEY_EISAID + default "LEN0068" + endif # BOARD_LENOVO_T420 diff --git a/src/mainboard/lenovo/t430/Kconfig b/src/mainboard/lenovo/t430/Kconfig index 45c7ae307a..6139452e86 100644 --- a/src/mainboard/lenovo/t430/Kconfig +++ b/src/mainboard/lenovo/t430/Kconfig @@ -75,4 +75,7 @@ config PS2K_EISAID config PS2M_EISAID default "LEN0015" +config THINKPADEC_HKEY_EISAID + default "LEN0068" + endif diff --git a/src/mainboard/lenovo/t440p/Kconfig b/src/mainboard/lenovo/t440p/Kconfig index e6785488df..7310dc106b 100644 --- a/src/mainboard/lenovo/t440p/Kconfig +++ b/src/mainboard/lenovo/t440p/Kconfig @@ -76,4 +76,7 @@ config PS2K_EISAID config PS2M_EISAID default "LEN0036" +config THINKPADEC_HKEY_EISAID + default "LEN0068" + endif diff --git a/src/mainboard/lenovo/t520/Kconfig b/src/mainboard/lenovo/t520/Kconfig index aebb2dee46..3529367d3f 100644 --- a/src/mainboard/lenovo/t520/Kconfig +++ b/src/mainboard/lenovo/t520/Kconfig @@ -90,4 +90,7 @@ config PS2K_EISAID config PS2M_EISAID default "LEN0015" +config THINKPADEC_HKEY_EISAID + default "LEN0068" + endif diff --git a/src/mainboard/lenovo/t530/Kconfig b/src/mainboard/lenovo/t530/Kconfig index 2a0e3ea039..4dc77e9266 100644 --- a/src/mainboard/lenovo/t530/Kconfig +++ b/src/mainboard/lenovo/t530/Kconfig @@ -91,4 +91,7 @@ config PS2K_EISAID config PS2M_EISAID default "LEN0015" +config THINKPADEC_HKEY_EISAID + default "LEN0068" + endif diff --git a/src/mainboard/lenovo/x230/Kconfig b/src/mainboard/lenovo/x230/Kconfig index 37b264dab2..f134bc863c 100644 --- a/src/mainboard/lenovo/x230/Kconfig +++ b/src/mainboard/lenovo/x230/Kconfig @@ -89,4 +89,7 @@ config PS2K_EISAID config PS2M_EISAID default "LEN0020" +config THINKPADEC_HKEY_EISAID + default "LEN0068" + endif # BOARD_LENOVO_X230 || BOARD_LENOVO_X230T