aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/tigerlake/chip.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/tigerlake/chip.c')
-rw-r--r--src/soc/intel/tigerlake/chip.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/soc/intel/tigerlake/chip.c b/src/soc/intel/tigerlake/chip.c
index c1764cde93..a923074acc 100644
--- a/src/soc/intel/tigerlake/chip.c
+++ b/src/soc/intel/tigerlake/chip.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
+#include <console/console.h>
#include <device/device.h>
#include <device/pci.h>
#include <fsp/api.h>
@@ -151,11 +152,17 @@ static struct device_operations cpu_bus_ops = {
static void soc_enable(struct device *dev)
{
- /* Set the operations if it is a special bus type */
+ /*
+ * Set the operations if it is a special bus type or a hidden PCI
+ * device.
+ */
if (dev->path.type == DEVICE_PATH_DOMAIN)
dev->ops = &pci_domain_ops;
else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER)
dev->ops = &cpu_bus_ops;
+ else if (dev->path.type == DEVICE_PATH_PCI &&
+ dev->path.pci.devfn == PCH_DEVFN_PMC)
+ dev->ops = &pmc_ops;
}
struct chip_operations soc_intel_tigerlake_ops = {