From 7f543c99f8fe2d554857a1973e6f86a07abf0f63 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 23 Nov 2020 20:45:41 -0700 Subject: [PATCH] Try to use GPIO PM modes Change-Id: I97a9ecabf2839e29d00a76db0c5b17db99965ee3 --- src/mainboard/system76/galp5/acpi/gpio.asl | 44 +++++++++++++++++++ .../system76/galp5/acpi/mainboard.asl | 1 + src/mainboard/system76/lemp10/acpi/gpio.asl | 44 +++++++++++++++++++ .../system76/lemp10/acpi/mainboard.asl | 1 + 4 files changed, 90 insertions(+) create mode 100644 src/mainboard/system76/galp5/acpi/gpio.asl create mode 100644 src/mainboard/system76/lemp10/acpi/gpio.asl diff --git a/src/mainboard/system76/galp5/acpi/gpio.asl b/src/mainboard/system76/galp5/acpi/gpio.asl new file mode 100644 index 0000000000..0e9bb8c1c8 --- /dev/null +++ b/src/mainboard/system76/galp5/acpi/gpio.asl @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include + +Method (PGPM, 1, Serialized) +{ + For (Local0 = 0, Local0 < 6, Local0++) + { + \_SB.PCI0.CGPM (Local0, Arg0) + } +} + +/* + * Method called from _PTS prior to system sleep state entry + * Enables dynamic clock gating for all 5 GPIO communities + */ +Method (MPTS, 1, Serialized) +{ + PGPM (MISCCFG_ENABLE_GPIO_PM_CONFIG) +} + +/* + * Method called from _WAK prior to system sleep state wakeup + * Disables dynamic clock gating for all 5 GPIO communities + */ +Method (MWAK, 1, Serialized) +{ + PGPM (0) +} + +/* + * S0ix Entry/Exit Notifications + * Called from \_SB.PEPD._DSM + */ +Method (MS0X, 1, Serialized) +{ + If (Arg0 == 1) { + /* S0ix Entry */ + PGPM (MISCCFG_ENABLE_GPIO_PM_CONFIG) + } Else { + /* S0ix Exit */ + PGPM (0) + } +} diff --git a/src/mainboard/system76/galp5/acpi/mainboard.asl b/src/mainboard/system76/galp5/acpi/mainboard.asl index c982a9ee4c..d893e22c0f 100644 --- a/src/mainboard/system76/galp5/acpi/mainboard.asl +++ b/src/mainboard/system76/galp5/acpi/mainboard.asl @@ -5,6 +5,7 @@ #include Scope (\_SB) { + #include "gpio.asl" #include "sleep.asl" Scope (PCI0) { #include "backlight.asl" diff --git a/src/mainboard/system76/lemp10/acpi/gpio.asl b/src/mainboard/system76/lemp10/acpi/gpio.asl new file mode 100644 index 0000000000..0e9bb8c1c8 --- /dev/null +++ b/src/mainboard/system76/lemp10/acpi/gpio.asl @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include + +Method (PGPM, 1, Serialized) +{ + For (Local0 = 0, Local0 < 6, Local0++) + { + \_SB.PCI0.CGPM (Local0, Arg0) + } +} + +/* + * Method called from _PTS prior to system sleep state entry + * Enables dynamic clock gating for all 5 GPIO communities + */ +Method (MPTS, 1, Serialized) +{ + PGPM (MISCCFG_ENABLE_GPIO_PM_CONFIG) +} + +/* + * Method called from _WAK prior to system sleep state wakeup + * Disables dynamic clock gating for all 5 GPIO communities + */ +Method (MWAK, 1, Serialized) +{ + PGPM (0) +} + +/* + * S0ix Entry/Exit Notifications + * Called from \_SB.PEPD._DSM + */ +Method (MS0X, 1, Serialized) +{ + If (Arg0 == 1) { + /* S0ix Entry */ + PGPM (MISCCFG_ENABLE_GPIO_PM_CONFIG) + } Else { + /* S0ix Exit */ + PGPM (0) + } +} diff --git a/src/mainboard/system76/lemp10/acpi/mainboard.asl b/src/mainboard/system76/lemp10/acpi/mainboard.asl index c982a9ee4c..d893e22c0f 100644 --- a/src/mainboard/system76/lemp10/acpi/mainboard.asl +++ b/src/mainboard/system76/lemp10/acpi/mainboard.asl @@ -5,6 +5,7 @@ #include Scope (\_SB) { + #include "gpio.asl" #include "sleep.asl" Scope (PCI0) { #include "backlight.asl"