soc/intel/broadwell: Separate PCH in devicetree

Flesh out the PCH configuration into a separate chip. Keep it within the
Broadwell SoC directory for now, to ease moving files around. The boards
were prepared beforehand and the devicetrees require next to no changes.

Tested on out-of-tree Acer Aspire E5-573, still boots.

Change-Id: I28d948f3e6d85e669d12b29516d867c1d1ae9e1a
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46700
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/intel/broadwell/pch.c b/src/soc/intel/broadwell/pch.c
index 2a27d92..e0c5bb0 100644
--- a/src/soc/intel/broadwell/pch.c
+++ b/src/soc/intel/broadwell/pch.c
@@ -166,10 +166,16 @@
 	}
 }
 
-void broadwell_pch_enable_dev(struct device *dev)
+static void broadwell_pch_enable_dev(struct device *dev)
 {
 	u16 reg16;
 
+	if (dev->path.type != DEVICE_PATH_PCI)
+		return;
+
+	if (dev->ops && dev->ops->enable)
+		return;
+
 	/* These devices need special enable/disable handling */
 	switch (PCI_SLOT(dev->path.pci.devfn)) {
 	case PCH_DEV_SLOT_PCIE:
@@ -195,4 +201,9 @@
 	}
 }
 
+struct chip_operations soc_intel_broadwell_pch_ops = {
+	CHIP_NAME("Intel Broadwell PCH")
+	.enable_dev = &broadwell_pch_enable_dev,
+};
+
 #endif