From 93d6ba0889d0247ac264172858ef57698c960464 Mon Sep 17 00:00:00 2001 From: Alexey Kharlamov Date: Tue, 9 Jan 2018 00:50:06 +0300 Subject: ec/lenovo/h8: Implement ACPI methods to set battery thresholds There are two known reverse-engineered ways to manage battery thresholds. This patch implements them and adds a way to enable them for different mainboards. Tested on W530 with 4.18.3-gentoo kernel and X220 with 4.20.11. Works fine with new Linux userspace API for controlling battery thresholds, available since 4.17. (/sys/class/power_supply/BAT0/charge_(start|stop)_threshold). The new API is supported by TLP (you might need to set NATACPI_ENABLE=1 in /etc/tlp.conf). tpacpi-bat works fine too. Signed-off-by: Alexey Kharlamov Signed-off-by: Evgeny Zinoviev Change-Id: I2a90f9e9b32462b8a5e9bc8d3087ae0fea563ea5 Reviewed-on: https://review.coreboot.org/c/coreboot/+/23178 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph --- src/mainboard/lenovo/t400/Kconfig | 1 + src/mainboard/lenovo/t400/acpi/ec.asl | 1 + src/mainboard/lenovo/t420/Kconfig | 1 + src/mainboard/lenovo/t420/acpi/ec.asl | 2 ++ src/mainboard/lenovo/t420s/Kconfig | 1 + src/mainboard/lenovo/t420s/acpi/ec.asl | 2 ++ src/mainboard/lenovo/t430/Kconfig | 1 + src/mainboard/lenovo/t430/acpi/ec.asl | 1 + src/mainboard/lenovo/t430s/Kconfig | 1 + src/mainboard/lenovo/t430s/acpi/ec.asl | 2 ++ src/mainboard/lenovo/t520/Kconfig | 1 + src/mainboard/lenovo/t520/acpi/ec.asl | 2 ++ src/mainboard/lenovo/t530/Kconfig | 1 + src/mainboard/lenovo/t530/acpi/ec.asl | 2 ++ src/mainboard/lenovo/x1_carbon_gen1/Kconfig | 1 + src/mainboard/lenovo/x1_carbon_gen1/acpi/ec.asl | 2 ++ src/mainboard/lenovo/x200/Kconfig | 1 + src/mainboard/lenovo/x200/acpi/ec.asl | 1 + src/mainboard/lenovo/x201/Kconfig | 1 + src/mainboard/lenovo/x201/acpi/ec.asl | 3 +++ src/mainboard/lenovo/x220/Kconfig | 1 + src/mainboard/lenovo/x220/acpi/ec.asl | 2 ++ src/mainboard/lenovo/x230/Kconfig | 1 + src/mainboard/lenovo/x230/acpi/ec.asl | 2 ++ 24 files changed, 34 insertions(+) (limited to 'src/mainboard/lenovo') diff --git a/src/mainboard/lenovo/t400/Kconfig b/src/mainboard/lenovo/t400/Kconfig index 57e31f22f0..9f9405162c 100644 --- a/src/mainboard/lenovo/t400/Kconfig +++ b/src/mainboard/lenovo/t400/Kconfig @@ -9,6 +9,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_I82801IX select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select H8_DOCK_EARLY_INIT select BOARD_ROMSIZE_KB_8192 select DRIVERS_GENERIC_IOAPIC diff --git a/src/mainboard/lenovo/t400/acpi/ec.asl b/src/mainboard/lenovo/t400/acpi/ec.asl index c3569e8c41..cb3dd8710d 100644 --- a/src/mainboard/lenovo/t400/acpi/ec.asl +++ b/src/mainboard/lenovo/t400/acpi/ec.asl @@ -1 +1,2 @@ #include +#include diff --git a/src/mainboard/lenovo/t420/Kconfig b/src/mainboard/lenovo/t420/Kconfig index d4492321af..f40e9c0c92 100644 --- a/src/mainboard/lenovo/t420/Kconfig +++ b/src/mainboard/lenovo/t420/Kconfig @@ -8,6 +8,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_BD82X6X select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_8192 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/t420/acpi/ec.asl b/src/mainboard/lenovo/t420/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/t420/acpi/ec.asl +++ b/src/mainboard/lenovo/t420/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/t420s/Kconfig b/src/mainboard/lenovo/t420s/Kconfig index 05868161eb..71b94afa52 100644 --- a/src/mainboard/lenovo/t420s/Kconfig +++ b/src/mainboard/lenovo/t420s/Kconfig @@ -8,6 +8,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_BD82X6X select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_8192 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/t420s/acpi/ec.asl b/src/mainboard/lenovo/t420s/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/t420s/acpi/ec.asl +++ b/src/mainboard/lenovo/t420s/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/t430/Kconfig b/src/mainboard/lenovo/t430/Kconfig index ed9128cdf1..687edea021 100644 --- a/src/mainboard/lenovo/t430/Kconfig +++ b/src/mainboard/lenovo/t430/Kconfig @@ -5,6 +5,7 @@ config BOARD_SPECIFIC_OPTIONS select BOARD_ROMSIZE_KB_12288 select DRIVERS_RICOH_RCE822 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select EC_LENOVO_PMH7 select NO_UART_ON_SUPERIO select HAVE_ACPI_RESUME diff --git a/src/mainboard/lenovo/t430/acpi/ec.asl b/src/mainboard/lenovo/t430/acpi/ec.asl index 63d6a824bc..ec45363125 100644 --- a/src/mainboard/lenovo/t430/acpi/ec.asl +++ b/src/mainboard/lenovo/t430/acpi/ec.asl @@ -14,3 +14,4 @@ */ #include +#include diff --git a/src/mainboard/lenovo/t430s/Kconfig b/src/mainboard/lenovo/t430s/Kconfig index 3a4320555f..47ff441d83 100644 --- a/src/mainboard/lenovo/t430s/Kconfig +++ b/src/mainboard/lenovo/t430s/Kconfig @@ -8,6 +8,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_C216 select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_16384 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/t430s/acpi/ec.asl b/src/mainboard/lenovo/t430s/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/t430s/acpi/ec.asl +++ b/src/mainboard/lenovo/t430s/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/t520/Kconfig b/src/mainboard/lenovo/t520/Kconfig index 3e9f1d6c50..c4140836da 100644 --- a/src/mainboard/lenovo/t520/Kconfig +++ b/src/mainboard/lenovo/t520/Kconfig @@ -6,6 +6,7 @@ config BOARD_LENOVO_BASEBOARD_T520 select SOUTHBRIDGE_INTEL_BD82X6X select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_8192 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/t520/acpi/ec.asl b/src/mainboard/lenovo/t520/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/t520/acpi/ec.asl +++ b/src/mainboard/lenovo/t520/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/t530/Kconfig b/src/mainboard/lenovo/t530/Kconfig index f714c5043a..14f9fb2478 100644 --- a/src/mainboard/lenovo/t530/Kconfig +++ b/src/mainboard/lenovo/t530/Kconfig @@ -6,6 +6,7 @@ config BOARD_LENOVO_BASEBOARD_T530 select SOUTHBRIDGE_INTEL_C216 select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_12288 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/t530/acpi/ec.asl b/src/mainboard/lenovo/t530/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/t530/acpi/ec.asl +++ b/src/mainboard/lenovo/t530/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/x1_carbon_gen1/Kconfig b/src/mainboard/lenovo/x1_carbon_gen1/Kconfig index 45e0587651..202fabd5fd 100644 --- a/src/mainboard/lenovo/x1_carbon_gen1/Kconfig +++ b/src/mainboard/lenovo/x1_carbon_gen1/Kconfig @@ -8,6 +8,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_C216 select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_12288 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/x1_carbon_gen1/acpi/ec.asl b/src/mainboard/lenovo/x1_carbon_gen1/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/x1_carbon_gen1/acpi/ec.asl +++ b/src/mainboard/lenovo/x1_carbon_gen1/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/x200/Kconfig b/src/mainboard/lenovo/x200/Kconfig index 6d32a693ce..7b905bcfff 100644 --- a/src/mainboard/lenovo/x200/Kconfig +++ b/src/mainboard/lenovo/x200/Kconfig @@ -8,6 +8,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_I82801IX select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_8192 select DRIVERS_GENERIC_IOAPIC diff --git a/src/mainboard/lenovo/x200/acpi/ec.asl b/src/mainboard/lenovo/x200/acpi/ec.asl index c3569e8c41..cb3dd8710d 100644 --- a/src/mainboard/lenovo/x200/acpi/ec.asl +++ b/src/mainboard/lenovo/x200/acpi/ec.asl @@ -1 +1,2 @@ #include +#include diff --git a/src/mainboard/lenovo/x201/Kconfig b/src/mainboard/lenovo/x201/Kconfig index ca2556e7bc..69e20385bf 100644 --- a/src/mainboard/lenovo/x201/Kconfig +++ b/src/mainboard/lenovo/x201/Kconfig @@ -21,6 +21,7 @@ config BOARD_SPECIFIC_OPTIONS select MAINBOARD_HAS_TPM1 select INTEL_GMA_HAVE_VBT select MAINBOARD_USES_IFD_GBE_REGION + select H8_HAS_BAT_TRESHOLDS_IMPL config MAINBOARD_DIR string diff --git a/src/mainboard/lenovo/x201/acpi/ec.asl b/src/mainboard/lenovo/x201/acpi/ec.asl index d631f121fb..411a0ece82 100644 --- a/src/mainboard/lenovo/x201/acpi/ec.asl +++ b/src/mainboard/lenovo/x201/acpi/ec.asl @@ -19,3 +19,6 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#define H8_BAT_THRESHOLDS_BIT7 +#include diff --git a/src/mainboard/lenovo/x220/Kconfig b/src/mainboard/lenovo/x220/Kconfig index e58926ac0b..70245d20bc 100644 --- a/src/mainboard/lenovo/x220/Kconfig +++ b/src/mainboard/lenovo/x220/Kconfig @@ -7,6 +7,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_C216 select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_8192 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/x220/acpi/ec.asl b/src/mainboard/lenovo/x220/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/x220/acpi/ec.asl +++ b/src/mainboard/lenovo/x220/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include diff --git a/src/mainboard/lenovo/x230/Kconfig b/src/mainboard/lenovo/x230/Kconfig index 787b31fb4c..3ec537a242 100644 --- a/src/mainboard/lenovo/x230/Kconfig +++ b/src/mainboard/lenovo/x230/Kconfig @@ -8,6 +8,7 @@ config BOARD_SPECIFIC_OPTIONS select SOUTHBRIDGE_INTEL_C216 select EC_LENOVO_PMH7 select EC_LENOVO_H8 + select H8_HAS_BAT_TRESHOLDS_IMPL select NO_UART_ON_SUPERIO select BOARD_ROMSIZE_KB_12288 select HAVE_ACPI_TABLES diff --git a/src/mainboard/lenovo/x230/acpi/ec.asl b/src/mainboard/lenovo/x230/acpi/ec.asl index d631f121fb..4b11e56bed 100644 --- a/src/mainboard/lenovo/x230/acpi/ec.asl +++ b/src/mainboard/lenovo/x230/acpi/ec.asl @@ -19,3 +19,5 @@ Scope(\_SB.PCI0.LPCB.EC) { } + +#include -- cgit v1.2.3