superio/acpi: allow custom HID on generic device

Some Super I/O PnP devices are detected by string matching the hardware
ID. Allow providing a custom HID to override the default generic one.

Change-Id: I7793b7d53c9d94667675f9dee63358521ac8c4be
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-on: https://review.coreboot.org/20076
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
diff --git a/src/superio/acpi/pnp_generic.asl b/src/superio/acpi/pnp_generic.asl
index f46fbda..c878827 100644
--- a/src/superio/acpi/pnp_generic.asl
+++ b/src/superio/acpi/pnp_generic.asl
@@ -21,6 +21,7 @@
  * Controlled by the following preprocessor defines:
  *
  * SUPERIO_CHIP_NAME	The name of the super i/o chip (unique, required)
+ * SUPERIO_PNP_HID	The EisaId string that identifies this device (optional)
  * SUPERIO_PNP_LDN	The logical device number on the super i/o
  *			chip for this device (required)
  * SUPERIO_PNP_DDN	A string literal that identifies the dos device
@@ -56,7 +57,11 @@
 #endif
 
 Device (SUPERIO_ID(PN, SUPERIO_PNP_LDN)) {
+	#ifdef SUPERIO_PNP_HID
+	Name (_HID, EisaId (SUPERIO_PNP_HID))
+	#else
 	Name (_HID, EisaId ("PNP0c02")) /* TODO: Better fitting EisaId? */
+	#endif
 	Name (_UID, SUPERIO_UID(PN, SUPERIO_PNP_LDN))
 	#ifdef SUPERIO_PNP_DDN
 	Name (_DDN, SUPERIO_PNP_DDN)