From f281b6d175905e625f481bf8b8a2b7b10d037582 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Mon, 14 Aug 2017 18:41:32 +0200 Subject: ec/lenovo/h8/ssdt: Add UWB ACPI interface Add ACPI methods GUWB and SUWB for thinkpad_acpi. Required for power control of the UWB module. Change-Id: I8f9a56e45c0d765b0e06b8d3600bd3575dd09491 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/21003 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held --- src/ec/lenovo/h8/acpi/ec.asl | 3 +++ src/ec/lenovo/h8/acpi/thinkpad.asl | 32 ++++++++++++++++++++++++++++++++ src/ec/lenovo/h8/ssdt.c | 2 ++ 3 files changed, 37 insertions(+) (limited to 'src/ec/lenovo') diff --git a/src/ec/lenovo/h8/acpi/ec.asl b/src/ec/lenovo/h8/acpi/ec.asl index 17afba2dec..8a1b9c4343 100644 --- a/src/ec/lenovo/h8/acpi/ec.asl +++ b/src/ec/lenovo/h8/acpi/ec.asl @@ -46,6 +46,9 @@ Device(EC) Offset (0x30), , 6, ALMT, 1, /* Audio Mute + LED */ + Offset (0x31), + , 2, + UWBE, 1, /* Ultra Wideband enable */ Offset (0x3a), AMUT, 1, /* Audio Mute (internal use) */ , 3, diff --git a/src/ec/lenovo/h8/acpi/thinkpad.asl b/src/ec/lenovo/h8/acpi/thinkpad.asl index a0812e5d48..e67bc8f65f 100644 --- a/src/ec/lenovo/h8/acpi/thinkpad.asl +++ b/src/ec/lenovo/h8/acpi/thinkpad.asl @@ -20,6 +20,7 @@ Device (HKEY) External (\HBDC, IntObj) External (\HWAN, IntObj) External (\HKBL, IntObj) + External (\HUWB, IntObj) Name (_HID, EisaId ("IBM0068")) @@ -259,4 +260,35 @@ Device (HKEY) Store (And(Arg0, 1), \_SB.PCI0.LPCB.EC.WWEB) } } + + /* + * Returns the current state: + * Bit 0: UWB HW present + * Bit 1: UWB radio enabled + */ + Method (GUWB, 0) + { + If (HUWB) { + Store (One, Local0) + If(\_SB.PCI0.LPCB.EC.UWBE) + { + Or(Local0, 2, Local0) + } + Return (Local0) + } Else { + Return (0) + } + } + + /* + * Set the current state: + * Bit 1: UWB radio enabled + */ + Method (SUWB, 1) + { + If (HUWB) { + ShiftRight (And(Arg0, 2), 1, Local0) + Store (Local0, \_SB.PCI0.LPCB.EC.UWBE) + } + } } diff --git a/src/ec/lenovo/h8/ssdt.c b/src/ec/lenovo/h8/ssdt.c index 4df4bd8a87..eccefe25ee 100644 --- a/src/ec/lenovo/h8/ssdt.c +++ b/src/ec/lenovo/h8/ssdt.c @@ -51,6 +51,8 @@ void h8_ssdt_generator(struct device *dev) acpigen_write_name_byte("HWAN", h8_has_wwan(dev) ? ONE_OP : ZERO_OP); acpigen_write_name_byte("HKBL", (conf && conf->has_keyboard_backlight) ? ONE_OP : ZERO_OP); + acpigen_write_name_byte("HUWB", (conf && conf->has_uwb) ? + ONE_OP : ZERO_OP); acpigen_pop_len(); /* Scope HKEY */ } -- cgit v1.2.3