summaryrefslogtreecommitdiff
path: root/src/soc/intel/alderlake
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/alderlake')
-rw-r--r--src/soc/intel/alderlake/chip.c5
-rw-r--r--src/soc/intel/alderlake/include/soc/p2sb.h2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/soc/intel/alderlake/chip.c b/src/soc/intel/alderlake/chip.c
index 25b412eed8..7cdeb7cc9a 100644
--- a/src/soc/intel/alderlake/chip.c
+++ b/src/soc/intel/alderlake/chip.c
@@ -16,6 +16,7 @@
#include <soc/hsphy.h>
#include <soc/intel/common/vbt.h>
#include <soc/itss.h>
+#include <soc/p2sb.h>
#include <soc/pci_devs.h>
#include <soc/pcie.h>
#include <soc/ramstage.h>
@@ -244,6 +245,7 @@ static struct device_operations cpu_bus_ops = {
static void soc_enable(struct device *dev)
{
+ struct device_operations *soc_p2sb_ops = (struct device_operations *)&p2sb_ops;
/*
* Set the operations if it is a special bus type or a hidden PCI
* device.
@@ -255,6 +257,9 @@ static void soc_enable(struct device *dev)
else if (dev->path.type == DEVICE_PATH_PCI &&
dev->path.pci.devfn == PCH_DEVFN_PMC)
dev->ops = &pmc_ops;
+ else if (dev->path.type == DEVICE_PATH_PCI &&
+ dev->path.pci.devfn == PCH_DEVFN_P2SB)
+ dev->ops = soc_p2sb_ops;
else if (dev->path.type == DEVICE_PATH_GPIO)
block_gpio_enable(dev);
}
diff --git a/src/soc/intel/alderlake/include/soc/p2sb.h b/src/soc/intel/alderlake/include/soc/p2sb.h
index 27268511a5..367ace2004 100644
--- a/src/soc/intel/alderlake/include/soc/p2sb.h
+++ b/src/soc/intel/alderlake/include/soc/p2sb.h
@@ -14,4 +14,6 @@
#define PCH_P2SB_EPMASK0 0x220
+extern const struct device_operations p2sb_ops;
+
#endif