summaryrefslogtreecommitdiff
path: root/src/mainboard/lenovo
diff options
context:
space:
mode:
authorAlexey Kharlamov <der@2-47.ru>2018-01-09 00:50:06 +0300
committerPatrick Georgi <pgeorgi@google.com>2019-03-06 20:00:00 +0000
commit93d6ba0889d0247ac264172858ef57698c960464 (patch)
treee71b9c4fc4afd1c31a60f6b406bcc6b741fed536 /src/mainboard/lenovo
parentb697c90a4c7bf8ae2c693af538b6573fd469228a (diff)
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 <der@2-47.ru> Signed-off-by: Evgeny Zinoviev <me@ch1p.com> Change-Id: I2a90f9e9b32462b8a5e9bc8d3087ae0fea563ea5 Reviewed-on: https://review.coreboot.org/c/coreboot/+/23178 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'src/mainboard/lenovo')
-rw-r--r--src/mainboard/lenovo/t400/Kconfig1
-rw-r--r--src/mainboard/lenovo/t400/acpi/ec.asl1
-rw-r--r--src/mainboard/lenovo/t420/Kconfig1
-rw-r--r--src/mainboard/lenovo/t420/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/t420s/Kconfig1
-rw-r--r--src/mainboard/lenovo/t420s/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/t430/Kconfig1
-rw-r--r--src/mainboard/lenovo/t430/acpi/ec.asl1
-rw-r--r--src/mainboard/lenovo/t430s/Kconfig1
-rw-r--r--src/mainboard/lenovo/t430s/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/t520/Kconfig1
-rw-r--r--src/mainboard/lenovo/t520/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/t530/Kconfig1
-rw-r--r--src/mainboard/lenovo/t530/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/Kconfig1
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/x200/Kconfig1
-rw-r--r--src/mainboard/lenovo/x200/acpi/ec.asl1
-rw-r--r--src/mainboard/lenovo/x201/Kconfig1
-rw-r--r--src/mainboard/lenovo/x201/acpi/ec.asl3
-rw-r--r--src/mainboard/lenovo/x220/Kconfig1
-rw-r--r--src/mainboard/lenovo/x220/acpi/ec.asl2
-rw-r--r--src/mainboard/lenovo/x230/Kconfig1
-rw-r--r--src/mainboard/lenovo/x230/acpi/ec.asl2
24 files changed, 34 insertions, 0 deletions
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 <ec/lenovo/h8/acpi/ec.asl>
+#include <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_24.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/ec.asl>
+#include <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/ec.asl>
+#include <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_24.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_24.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>
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 <ec/lenovo/h8/acpi/thinkpad_bat_thresholds_b0.asl>