superio/nuvoton/nct5539d: use SuperIO ACPI generator

Adds SuperIO SSDT ACPI generator[1] support.
Not tested on real hardware.

[1] https://review.coreboot.org/c/coreboot/+/33033

Change-Id: If9fd56efd40ee0f860e206882418c8bdc7c16802
Signed-off-by: Maxim Polyakov <max.senia.poliak@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/36380
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Maxim Polyakov 2019-10-27 15:07:00 +03:00 committed by Felix Held
parent c4f77d943a
commit 0dd8fe7ec3
2 changed files with 27 additions and 0 deletions

View File

@ -14,3 +14,5 @@
##
ramstage-$(CONFIG_SUPERIO_NUVOTON_NCT5539D) += superio.c
ramstage-$(CONFIG_SUPERIO_NUVOTON_NCT5539D) += ../../common/ssdt.c
ramstage-$(CONFIG_SUPERIO_NUVOTON_NCT5539D) += ../../common/generic.c

View File

@ -40,6 +40,26 @@ static void nct5539d_init(struct device *dev)
}
}
#if CONFIG(HAVE_ACPI_TABLES)
/* Provide ACPI HIDs for generic Super I/O SSDT */
static const char *nct5539d_acpi_hid(const struct device *dev)
{
if ((dev->path.type != DEVICE_PATH_PNP) ||
(dev->path.pnp.port == 0) ||
((dev->path.pnp.device & 0xff) > NCT5539D_DS))
return NULL;
switch (dev->path.pnp.device & 0xff) {
case NCT5539D_SP1:
return ACPI_HID_COM;
case NCT5539D_KBC:
return ACPI_HID_KEYBOARD;
default:
return ACPI_HID_PNP;
}
}
#endif
static struct device_operations ops = {
.read_resources = pnp_read_resources,
.set_resources = pnp_set_resources,
@ -47,6 +67,11 @@ static struct device_operations ops = {
.enable = pnp_alt_enable,
.init = nct5539d_init,
.ops_pnp_mode = &pnp_conf_mode_8787_aa,
#if CONFIG(HAVE_ACPI_TABLES)
.acpi_fill_ssdt_generator = superio_common_fill_ssdt_generator,
.acpi_name = superio_common_ldn_acpi_name,
.acpi_hid = nct5539d_acpi_hid,
#endif
};
static struct pnp_info pnp_dev_info[] = {