<p>Arthur Heymans has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/c/coreboot/+/30240">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">smsc/sch5147: Implement ACPI handling of a few LDN<br><br>Change-Id: Ide30a7396b6248e2037041e177dc8514533718a4<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>---<br>M src/mainboard/lenovo/thinkcentre_a58/acpi/superio.asl<br>A src/superio/smsc/sch5147/acpi/superio.asl<br>2 files changed, 258 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/40/30240/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/lenovo/thinkcentre_a58/acpi/superio.asl b/src/mainboard/lenovo/thinkcentre_a58/acpi/superio.asl</span><br><span>index 48e70a7..8902579 100644</span><br><span>--- a/src/mainboard/lenovo/thinkcentre_a58/acpi/superio.asl</span><br><span>+++ b/src/mainboard/lenovo/thinkcentre_a58/acpi/superio.asl</span><br><span>@@ -1 +1,25 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/* TODO */</span><br><span>\ No newline at end of file</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SUPERIO_DEV</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SUPERIO_PNP_BASE</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SCH5147_SHOW_UARTA</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SCH5147_SHOW_UARTB</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SCH5147_SHOW_KBC</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SCH5147_SHOW_HWMON</span><br><span style="color: hsl(120, 100%, 40%);">+#define SUPERIO_DEV         SIO0</span><br><span style="color: hsl(120, 100%, 40%);">+#define SUPERIO_PNP_BASE  0x2e</span><br><span style="color: hsl(120, 100%, 40%);">+#define SCH5147_SHOW_UARTA</span><br><span style="color: hsl(120, 100%, 40%);">+#define SCH5147_SHOW_UARTB</span><br><span style="color: hsl(120, 100%, 40%);">+#define SCH5147_SHOW_KBC</span><br><span style="color: hsl(120, 100%, 40%);">+#include <superio/smsc/sch5147/acpi/superio.asl></span><br><span>diff --git a/src/superio/smsc/sch5147/acpi/superio.asl b/src/superio/smsc/sch5147/acpi/superio.asl</span><br><span>new file mode 100644</span><br><span>index 0000000..f24db60</span><br><span>--- /dev/null</span><br><span>+++ b/src/superio/smsc/sch5147/acpi/superio.asl</span><br><span>@@ -0,0 +1,233 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * This file is part of the coreboot project.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(120, 100%, 40%);">+ * it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(120, 100%, 40%);">+ * the Free Software Foundation; version 2 of the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*</span><br><span style="color: hsl(120, 100%, 40%);">+ * Include this file into a mainboard's DSDT _SB device tree and it will</span><br><span style="color: hsl(120, 100%, 40%);">+ * expose the W83627DHG SuperIO and some of its functionality.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * It allows the change of IO ports, IRQs and DMA settings on logical</span><br><span style="color: hsl(120, 100%, 40%);">+ * devices, disabling and reenabling logical devices and controlling power</span><br><span style="color: hsl(120, 100%, 40%);">+ * saving mode on logical devices or the whole chip.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ *   LDN                State</span><br><span style="color: hsl(120, 100%, 40%);">+ * 0x0 FDC               Not implemented</span><br><span style="color: hsl(120, 100%, 40%);">+ * 0x3 PP              Not implemented</span><br><span style="color: hsl(120, 100%, 40%);">+ * 0x4 UARTA           Implemented</span><br><span style="color: hsl(120, 100%, 40%);">+ * 0x5 UARTB               Implemented</span><br><span style="color: hsl(120, 100%, 40%);">+ * 0x7 KBC         Implemented</span><br><span style="color: hsl(120, 100%, 40%);">+ * 0xa Runtime reg Not implemented</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Controllable through preprocessor defines:</span><br><span style="color: hsl(120, 100%, 40%);">+ * SUPERIO_DEV              Device identifier for this SIO (e.g. SIO0)</span><br><span style="color: hsl(120, 100%, 40%);">+ * SUPERIO_PNP_BASE I/o address of the first PnP configuration register</span><br><span style="color: hsl(120, 100%, 40%);">+ * SCH5147_SHOW_UARTA      If defined, UARTA will be exposed.</span><br><span style="color: hsl(120, 100%, 40%);">+ * SCH5147_SHOW_UARTB       If defined, UARTB will be exposed.</span><br><span style="color: hsl(120, 100%, 40%);">+ * SCH5147_SHOW_KBC If defined, the KBC will be exposed.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#undef SUPERIO_CHIP_NAME</span><br><span style="color: hsl(120, 100%, 40%);">+#define SUPERIO_CHIP_NAME SCH5147</span><br><span style="color: hsl(120, 100%, 40%);">+#include <superio/acpi/pnp.asl></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#undef PNP_DEFAULT_PSC</span><br><span style="color: hsl(120, 100%, 40%);">+#define PNP_DEFAULT_PSC Return (0) /* no power management */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Device(SUPERIO_DEV) {</span><br><span style="color: hsl(120, 100%, 40%);">+      Name (_HID, EisaId("PNP0A05"))</span><br><span style="color: hsl(120, 100%, 40%);">+      Name (_STR, Unicode("SMSC SCH5147 Super I/O"))</span><br><span style="color: hsl(120, 100%, 40%);">+      Name (_UID, SUPERIO_UID(SUPERIO_DEV,))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Mutex for accesses to the configuration ports */</span><br><span style="color: hsl(120, 100%, 40%);">+   Mutex(CRMX, 1)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* SuperIO configuration ports */</span><br><span style="color: hsl(120, 100%, 40%);">+     OperationRegion (CREG, SystemIO, SUPERIO_PNP_BASE, 0x02)</span><br><span style="color: hsl(120, 100%, 40%);">+      Field (CREG, ByteAcc, NoLock, Preserve)</span><br><span style="color: hsl(120, 100%, 40%);">+       {</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_ADDR_REG,   8,</span><br><span style="color: hsl(120, 100%, 40%);">+            PNP_DATA_REG,   8</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     IndexField (ADDR, DATA, ByteAcc, NoLock, Preserve)</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+             Offset (0x07),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_LOGICAL_DEVICE,     8, /* Logical device selector */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            Offset (0x30),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_DEVICE_ACTIVE,      1, /* Logical device activation */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+          Offset (0x60),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_IO0_HIGH_BYTE,      8, /* First I/O port base - high byte */</span><br><span style="color: hsl(120, 100%, 40%);">+              PNP_IO0_LOW_BYTE,       8, /* First I/O port base - low byte */</span><br><span style="color: hsl(120, 100%, 40%);">+               Offset (0x62),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_IO1_HIGH_BYTE,      8, /* Second I/O port base - high byte */</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_IO1_LOW_BYTE,       8, /* Second I/O port base - low byte */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            Offset (0x70),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_IRQ0,               8, /* First IRQ */</span><br><span style="color: hsl(120, 100%, 40%);">+            Offset (0x72),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_IRQ1,               8, /* Second IRQ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         Offset (0x74),</span><br><span style="color: hsl(120, 100%, 40%);">+                PNP_DMA0,               8, /* DMA */</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Method (_CRS)</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             /* Announce the used i/o ports to the OS */</span><br><span style="color: hsl(120, 100%, 40%);">+           Return (ResourceTemplate () {</span><br><span style="color: hsl(120, 100%, 40%);">+                 IO (Decode16, SUPERIO_PNP_BASE, SUPERIO_PNP_BASE, 0x01, 0x02)</span><br><span style="color: hsl(120, 100%, 40%);">+         })</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   #undef PNP_ENTER_MAGIC_1ST</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef PNP_ENTER_MAGIC_2ND</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef PNP_ENTER_MAGIC_3RD</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef PNP_ENTER_MAGIC_4TH</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef PNP_EXIT_MAGIC_1ST</span><br><span style="color: hsl(120, 100%, 40%);">+     #undef PNP_EXIT_SPECIAL_REG</span><br><span style="color: hsl(120, 100%, 40%);">+   #undef PNP_EXIT_SPECIAL_VAL</span><br><span style="color: hsl(120, 100%, 40%);">+   #define PNP_ENTER_MAGIC_1ST     0x55</span><br><span style="color: hsl(120, 100%, 40%);">+  #define PNP_EXIT_MAGIC_1ST      0xaa</span><br><span style="color: hsl(120, 100%, 40%);">+  #include <superio/acpi/pnp_config.asl></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef SCH5147_SHOW_UARTA</span><br><span style="color: hsl(120, 100%, 40%);">+     #undef SUPERIO_UART_LDN</span><br><span style="color: hsl(120, 100%, 40%);">+       #undef SUPERIO_UART_DDN</span><br><span style="color: hsl(120, 100%, 40%);">+       #undef SUPERIO_UART_PM_REG</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef SUPERIO_UART_PM_VAL</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef SUPERIO_UART_PM_LDN</span><br><span style="color: hsl(120, 100%, 40%);">+    #define SUPERIO_UART_LDN 4</span><br><span style="color: hsl(120, 100%, 40%);">+    #include <superio/acpi/pnp_uart.asl></span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef SCH5147_SHOW_UARTB</span><br><span style="color: hsl(120, 100%, 40%);">+       #undef SUPERIO_UART_LDN</span><br><span style="color: hsl(120, 100%, 40%);">+       #undef SUPERIO_UART_DDN</span><br><span style="color: hsl(120, 100%, 40%);">+       #undef SUPERIO_UART_PM_REG</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef SUPERIO_UART_PM_VAL</span><br><span style="color: hsl(120, 100%, 40%);">+    #undef SUPERIO_UART_PM_LDN</span><br><span style="color: hsl(120, 100%, 40%);">+    #define SUPERIO_UART_LDN 5</span><br><span style="color: hsl(120, 100%, 40%);">+    #include <superio/acpi/pnp_uart.asl></span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef SCH5147_SHOW_KBC</span><br><span style="color: hsl(120, 100%, 40%);">+ /* we can't read back the IO resources so hardcode them */</span><br><span style="color: hsl(120, 100%, 40%);">+        #define SUPERIO_KBC_LDN 7</span><br><span style="color: hsl(120, 100%, 40%);">+Device (SUPERIO_ID(KBD, SUPERIO_KBC_LDN)) {</span><br><span style="color: hsl(120, 100%, 40%);">+        Name (_HID, EisaId ("PNP0303"))</span><br><span style="color: hsl(120, 100%, 40%);">+     Name (_UID, SUPERIO_UID(KBD, SUPERIO_KBC_LDN))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      Method (_STA)</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_GENERIC_STA(SUPERIO_KBC_LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Method (_DIS)</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             ENTER_CONFIG_MODE (SUPERIO_KBC_LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+             Store (Zero, PNP_DEVICE_ACTIVE)</span><br><span style="color: hsl(120, 100%, 40%);">+             EXIT_CONFIG_MODE ()</span><br><span style="color: hsl(120, 100%, 40%);">+           #if defined(SUPERIO_KBC_PS2LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+               Notify (SUPERIO_ID(PS2, SUPERIO_KBC_PS2LDN), 1)</span><br><span style="color: hsl(120, 100%, 40%);">+               #elif defined(SUPERIO_KBC_PS2M)</span><br><span style="color: hsl(120, 100%, 40%);">+               Notify (SUPERIO_ID(PS2, SUPERIO_KBC_LDN), 1)</span><br><span style="color: hsl(120, 100%, 40%);">+          #endif</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Method (_PSC) {</span><br><span style="color: hsl(120, 100%, 40%);">+               PNP_DEFAULT_PSC</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Method (_CRS, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+  {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (CRS, ResourceTemplate () {</span><br><span style="color: hsl(120, 100%, 40%);">+                      IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)</span><br><span style="color: hsl(120, 100%, 40%);">+                     IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)</span><br><span style="color: hsl(120, 100%, 40%);">+                     IRQNoFlags (IR0) {}</span><br><span style="color: hsl(120, 100%, 40%);">+           })</span><br><span style="color: hsl(120, 100%, 40%);">+            ENTER_CONFIG_MODE (SUPERIO_KBC_LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_READ_IRQ(PNP_IRQ0, CRS, IR0)</span><br><span style="color: hsl(120, 100%, 40%);">+            EXIT_CONFIG_MODE ()</span><br><span style="color: hsl(120, 100%, 40%);">+           Return (CRS)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Name (_PRS, ResourceTemplate ()</span><br><span style="color: hsl(120, 100%, 40%);">+       {</span><br><span style="color: hsl(120, 100%, 40%);">+             StartDependentFn (0,0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)</span><br><span style="color: hsl(120, 100%, 40%);">+                     IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)</span><br><span style="color: hsl(120, 100%, 40%);">+                     IRQNoFlags () {1}</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             EndDependentFn()</span><br><span style="color: hsl(120, 100%, 40%);">+      })</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  Method (_SRS, 1, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+  {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (TMPL, ResourceTemplate () {</span><br><span style="color: hsl(120, 100%, 40%);">+                     IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)</span><br><span style="color: hsl(120, 100%, 40%);">+                     IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)</span><br><span style="color: hsl(120, 100%, 40%);">+                     IRQNoFlags (IR0) {}</span><br><span style="color: hsl(120, 100%, 40%);">+           })</span><br><span style="color: hsl(120, 100%, 40%);">+            ENTER_CONFIG_MODE (SUPERIO_KBC_LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_WRITE_IRQ(PNP_IRQ0, Arg0, IR0)</span><br><span style="color: hsl(120, 100%, 40%);">+            Store (One, PNP_DEVICE_ACTIVE)</span><br><span style="color: hsl(120, 100%, 40%);">+              EXIT_CONFIG_MODE ()</span><br><span style="color: hsl(120, 100%, 40%);">+           Notify (SUPERIO_ID(PS2, SUPERIO_KBC_LDN), 1)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Device (SUPERIO_ID(PS2, SUPERIO_KBC_LDN)) {</span><br><span style="color: hsl(120, 100%, 40%);">+   Name (_HID, EisaId ("PNP0F13"))</span><br><span style="color: hsl(120, 100%, 40%);">+     Name (_UID, SUPERIO_UID(PS2, SUPERIO_KBC_LDN))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      Method (_STA)</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             Return (^^SUPERIO_ID(KBD, SUPERIO_KBC_LDN)._STA ())</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Method (_PSC) {</span><br><span style="color: hsl(120, 100%, 40%);">+               Return (^^SUPERIO_ID(KBD, SUPERIO_KBC_LDN)._PSC ())</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Method (_CRS, 0, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+  {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (CRS, ResourceTemplate () {</span><br><span style="color: hsl(120, 100%, 40%);">+                      IRQNoFlags (IR1) {}</span><br><span style="color: hsl(120, 100%, 40%);">+           })</span><br><span style="color: hsl(120, 100%, 40%);">+            ENTER_CONFIG_MODE (SUPERIO_KBC_LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_READ_IRQ(PNP_IRQ1, CRS, IR1)</span><br><span style="color: hsl(120, 100%, 40%);">+            EXIT_CONFIG_MODE ()</span><br><span style="color: hsl(120, 100%, 40%);">+           Return (CRS)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   Name (_PRS, ResourceTemplate ()</span><br><span style="color: hsl(120, 100%, 40%);">+       {</span><br><span style="color: hsl(120, 100%, 40%);">+             StartDependentFn (0,0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      IRQNoFlags () {12}</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+             EndDependentFn()</span><br><span style="color: hsl(120, 100%, 40%);">+      })</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  Method (_SRS, 1, Serialized)</span><br><span style="color: hsl(120, 100%, 40%);">+  {</span><br><span style="color: hsl(120, 100%, 40%);">+             Name (TMPL, ResourceTemplate () {</span><br><span style="color: hsl(120, 100%, 40%);">+                     IRQNoFlags (IR1) {}</span><br><span style="color: hsl(120, 100%, 40%);">+           })</span><br><span style="color: hsl(120, 100%, 40%);">+            ENTER_CONFIG_MODE (SUPERIO_KBC_LDN)</span><br><span style="color: hsl(120, 100%, 40%);">+             PNP_WRITE_IRQ(PNP_IRQ1, Arg0, IR1)</span><br><span style="color: hsl(120, 100%, 40%);">+          EXIT_CONFIG_MODE ()</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/30240">change 30240</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/c/coreboot/+/30240"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ide30a7396b6248e2037041e177dc8514533718a4 </div>
<div style="display:none"> Gerrit-Change-Number: 30240 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>