diff options
author | Tobias Diedrich <ranma+openocd@tdiedrich.de> | 2017-02-20 02:46:19 +0100 |
---|---|---|
committer | Duncan Laurie <dlaurie@chromium.org> | 2017-02-22 01:03:23 +0100 |
commit | d8a2c1fb17b040dc81ca9da873bfcea41c1fe946 (patch) | |
tree | 2596c91ac33fddaae6392590f4662dd5ec7daaf2 /src/southbridge/amd/cimx/sb800 | |
parent | c248044b20d270d14cf460b04972b7ff741685d0 (diff) |
southbridge/amd: Add LPC bridge acpi path for Family14 and SB800
Adds the necessary plumbing for acpi_device_path() to find the LPC
bridge on the AMD Family14 northbridge with an SB800 southbridge.
This is necessary for TPM support since the acpi path to the LPC bridge
(_SB.PCI0.ISAB) doesn't match the built-in default in tpm.c
(_SB.PCI0.LPCB).
Change-Id: I1ba5865d3531d8a4f41399802d58aacdf95fc604
Signed-off-by: Tobias Diedrich <ranma+coreboot@tdiedrich.de>
Reviewed-on: https://review.coreboot.org/18402
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/southbridge/amd/cimx/sb800')
-rw-r--r-- | src/southbridge/amd/cimx/sb800/late.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/southbridge/amd/cimx/sb800/late.c b/src/southbridge/amd/cimx/sb800/late.c index fa47a96f2e..a7076a6b61 100644 --- a/src/southbridge/amd/cimx/sb800/late.c +++ b/src/southbridge/amd/cimx/sb800/late.c @@ -34,6 +34,7 @@ #include "sb_cimx.h" /* AMD CIMX wrapper entries */ #include "smbus.h" #include "fan.h" +#include "pci_devs.h" #include <southbridge/amd/common/amd_pci_util.h> /*implement in mainboard.c*/ @@ -150,6 +151,20 @@ unsigned long acpi_fill_mcfg(unsigned long current) return current; } +static const char *lpc_acpi_name(struct device *dev) +{ + if (dev->path.type != DEVICE_PATH_PCI) + return NULL; + + switch (dev->path.pci.devfn) { + /* DSDT: acpi/lpc.asl */ + case LPC_DEVFN: + return "LIBR"; + } + + return NULL; +} + static struct device_operations lpc_ops = { .read_resources = lpc_read_resources, .set_resources = lpc_set_resources, @@ -160,6 +175,7 @@ static struct device_operations lpc_ops = { .init = lpc_init, .scan_bus = scan_lpc_bus, .ops_pci = &lops_pci, + .acpi_name = lpc_acpi_name, }; static const struct pci_driver lpc_driver __pci_driver = { |