summaryrefslogtreecommitdiff
path: root/src/superio/acpi
diff options
context:
space:
mode:
authorMichał Żygowski <michal.zygowski@3mdeb.com>2024-02-14 12:30:32 +0100
committerFelix Held <felix-coreboot@felixheld.de>2024-03-01 15:37:48 +0000
commit5ad8a5fa47275cb7de5b096aa0273c83481c4aa6 (patch)
tree474a1ea1a952bdc6825d26c19b0ee489c59a1a1e /src/superio/acpi
parent53f26e400db0a739941fdbebc215ea5fb177f9d8 (diff)
superio/acpi: Add SUPERIO_PNP_NO_DIS to support always active LDNs
Some LDNs do not implement the activate bit at all, e.g. ITE GPIO LDNs are an example where the LDN is always active. The pnp_generic.asl can be used to describe the GPIO LDN resources configured by the platform, however the register 0x30 is always 0 for these LDNs, so OS will not claim the reported resource for the GPIO device, because _STA will return inactive LDN. Add SUPERIO_PNP_NO_DIS macro to generate _STA method returning an always active LDN and skip _DIS generation. Define the SUPERIO_PNP_NO_DIS for SIOs which use the pnp_generic.asl preserving the previous states, except the ITE GPIO LDNs. Change-Id: Ieb827fdffe7660b875cba6ca99b0560b4cab66b4 Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80496 Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Felix Held <felix-coreboot@felixheld.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/superio/acpi')
-rw-r--r--src/superio/acpi/pnp_generic.asl9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/superio/acpi/pnp_generic.asl b/src/superio/acpi/pnp_generic.asl
index a5540e39e8..ebefd2a182 100644
--- a/src/superio/acpi/pnp_generic.asl
+++ b/src/superio/acpi/pnp_generic.asl
@@ -13,6 +13,7 @@
* chip for this device (required)
* SUPERIO_PNP_DDN A string literal that identifies the dos device
* name (DDN) of this device (e.g. "COM1", optional)
+ * SUPERIO_PNP_NO_DIS If defined, the PNP device has no Enable/Disable methods
* SUPERIO_PNP_PM_REG Identifier of a 1-bit register to power down
* the logical device (optional)
* SUPERIO_PNP_PM_VAL The value for SUPERIO_PNP_PM_REG to power the logical
@@ -54,6 +55,13 @@ Device (SUPERIO_ID(PN, SUPERIO_PNP_LDN)) {
Name (_DDN, SUPERIO_PNP_DDN)
#endif
+
+#ifdef SUPERIO_PNP_NO_DIS
+ Method (_STA)
+ {
+ Return (DEVICE_PRESENT_ACTIVE)
+ }
+#else
Method (_STA)
{
PNP_GENERIC_STA(SUPERIO_PNP_LDN)
@@ -63,6 +71,7 @@ Device (SUPERIO_ID(PN, SUPERIO_PNP_LDN)) {
{
PNP_GENERIC_DIS(SUPERIO_PNP_LDN)
}
+#endif
#ifdef SUPERIO_PNP_PM_REG
Method (_PSC) {