soc/intel/cannonlake: Add/use chipset devicetrees

Change-Id: I8ceae832e60cd3094b4a34ab3a279e5a011f2c80
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78544
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
diff --git a/src/soc/intel/cannonlake/Kconfig b/src/soc/intel/cannonlake/Kconfig
index fbee465..92a99c4 100644
--- a/src/soc/intel/cannonlake/Kconfig
+++ b/src/soc/intel/cannonlake/Kconfig
@@ -9,6 +9,7 @@
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
 	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select DISPLAY_FSP_VERSION_INFO
+	select DRIVERS_USB_ACPI
 	select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2
 	select FSP_COMPRESS_FSP_S_LZMA
 	select FSP_M_XIP
@@ -163,6 +164,11 @@
 	  Refer to Platform FSP integration guide document to know
 	  the exact FSP requirement for Heap setup.
 
+config CHIPSET_DEVICETREE
+	string
+	default "soc/intel/cannonlake/chipset_pch_h.cb" if SOC_INTEL_CANNONLAKE_PCH_H
+	default "soc/intel/cannonlake/chipset.cb"
+
 config IFD_CHIPSET
 	string
 	default "cnl"
diff --git a/src/soc/intel/cannonlake/chipset.cb b/src/soc/intel/cannonlake/chipset.cb
new file mode 100644
index 0000000..8c8771e
--- /dev/null
+++ b/src/soc/intel/cannonlake/chipset.cb
@@ -0,0 +1,126 @@
+chip soc/intel/cannonlake
+
+	device cpu_cluster 0 on end
+	device domain 0 on
+		device pci 00.0 alias system_agent on	end	# Host Bridge
+		device pci 01.0 alias peg0         off	end	# PCIe x16
+		device pci 01.1 alias peg1         off	end	# PCIe x8
+		device pci 01.2 alias peg2         off	end	# PCIe x4
+		device pci 02.0 alias igpu         off	end	# Integrated Graphics Device
+		device pci 04.0 alias dptf         off	end	# SA Thermal device
+		device pci 05.0 alias ipu          off	end	# Imaging Processing Unit
+		device pci 08.0 alias gna          off	end	# Gaussian mixture model, Neural network accelerator
+		device pci 12.0 alias thermal      off	end	# Thermal Subsystem
+		device pci 12.5 alias ufs          off	end	# UFS SCS
+		device pci 12.6 alias gspi2        off	end	# GSPI #2
+		device pci 13.0 alias ish          off	end	# ISH
+		device pci 14.0 alias xhci         off		# USB xHCI
+			chip drivers/usb/acpi
+				register "type" = "UPC_TYPE_HUB"
+				device usb 0.0 alias xhci_root_hub off
+					chip drivers/usb/acpi
+						device usb 2.0 alias usb2_port1 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.1 alias usb2_port2 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.2 alias usb2_port3 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.3 alias usb2_port4 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.4 alias usb2_port5 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.5 alias usb2_port6 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.6 alias usb2_port7 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.7 alias usb2_port8 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.8 alias usb2_port9 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.9 alias usb2_port10 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.10 alias usb2_port11 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.11 alias usb2_port12 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.0 alias usb3_port1 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.1 alias usb3_port2 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.2 alias usb3_port3 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.3 alias usb3_port4 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.4 alias usb3_port5 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.5 alias usb3_port6 off end
+					end
+				end
+			end
+		end
+		device pci 14.1 alias xdci         off	end	# USB xDCI (OTG)
+		device pci 14.2 alias shared_sram  off  end	# Shared SRAM
+		device pci 14.3 alias cnvi_wifi    off	end	# CNVi Wifi
+		device pci 14.5 alias sdxc         off	end	# SDCard
+		device pci 15.0 alias i2c0         off	end	# I2C #0
+		device pci 15.1 alias i2c1         off	end	# I2C #1
+		device pci 15.2 alias i2c2         off	end	# I2C #2
+		device pci 15.3 alias i2c3         off	end	# I2C #3
+		device pci 16.0 alias heci1        on	end	# Management Engine Interface 1
+		device pci 16.1 alias heci2        off	end	# Management Engine Interface 2
+		device pci 16.2 alias csme_ider    off	end	# Management Engine IDE-R
+		device pci 16.3 alias csme_ktr     off	end	# Management Engine KT Redirection
+		device pci 16.4 alias heci3        off	end	# Management Engine Interface 3
+		device pci 16.5 alias heci4        off	end	# Management Engine Interface 4
+		device pci 17.0 alias sata         off	end	# SATA
+		device pci 19.0 alias i2c4         off	end	# I2C #4
+		device pci 19.1 alias i2c5         off	end	# I2C #5
+		device pci 19.2 alias uart2        off	end	# UART #2
+		device pci 1a.0 alias emmc         off	end	# eMMC
+		device pci 1c.0 alias pcie_rp1     off	end	# PCI Express Port 1
+		device pci 1c.1 alias pcie_rp2     off	end	# PCI Express Port 2
+		device pci 1c.2 alias pcie_rp3     off	end	# PCI Express Port 3
+		device pci 1c.3 alias pcie_rp4     off	end	# PCI Express Port 4
+		device pci 1c.4 alias pcie_rp5     off	end	# PCI Express Port 5
+		device pci 1c.5 alias pcie_rp6     off	end	# PCI Express Port 6
+		device pci 1c.6 alias pcie_rp7     off	end	# PCI Express Port 7
+		device pci 1c.7 alias pcie_rp8     off	end	# PCI Express Port 8
+		device pci 1d.0 alias pcie_rp9     off	end	# PCI Express Port 9
+		device pci 1d.1 alias pcie_rp10    off	end	# PCI Express Port 10
+		device pci 1d.2 alias pcie_rp11    off	end	# PCI Express Port 11
+		device pci 1d.3 alias pcie_rp12    off	end	# PCI Express Port 12
+		device pci 1d.4 alias pcie_rp13    off	end	# PCI Express Port 13
+		device pci 1d.5 alias pcie_rp14    off	end	# PCI Express Port 14
+		device pci 1d.6 alias pcie_rp15    off	end	# PCI Express Port 15
+		device pci 1d.7 alias pcie_rp16    off	end	# PCI Express Port 16
+		device pci 1e.0 alias uart0        off	end	# UART #0
+		device pci 1e.1 alias uart1        off	end	# UART #1
+		device pci 1e.2 alias gspi0        off	end	# GSPI #0
+		device pci 1e.3 alias gspi1        off	end	# GSPI #1
+		device pci 1f.0 alias lpc_espi     on	end	# LPC Interface
+		device pci 1f.1 alias p2sb      hidden	end	# P2SB
+		device pci 1f.2 alias pmc       hidden	end	# Power Management Controller
+		device pci 1f.3 alias hda          off	end	# Intel HDA
+		device pci 1f.4 alias smbus        off	end	# SMBus
+		device pci 1f.5 alias fast_spi     on	end	# PCH SPI
+		device pci 1f.6 alias gbe          off	end	# GbE
+		device pci 1f.7 alias tracehub     off	end	# TraceHub
+	end
+end
diff --git a/src/soc/intel/cannonlake/chipset_pch_h.cb b/src/soc/intel/cannonlake/chipset_pch_h.cb
new file mode 100644
index 0000000..022e31f
--- /dev/null
+++ b/src/soc/intel/cannonlake/chipset_pch_h.cb
@@ -0,0 +1,134 @@
+chip soc/intel/cannonlake
+
+	device cpu_cluster 0 on end
+	device domain 0 on
+		device pci 00.0 alias system_agent on	end	# Host Bridge
+		device pci 01.0 alias peg0         off	end	# PCIe x16
+		device pci 01.1 alias peg1         off	end	# PCIe x8
+		device pci 01.2 alias peg2         off	end	# PCIe x4
+		device pci 02.0 alias igpu         off	end	# Integrated Graphics Device
+		device pci 04.0 alias dptf         off	end	# SA Thermal device
+		device pci 05.0 alias ipu          off	end	# Imaging Processing Unit
+		device pci 08.0 alias gna          off	end	# Gaussian mixture model, Neural network accelerator
+		device pci 12.0 alias thermal      off	end	# Thermal Subsystem
+		device pci 12.5 alias ufs          off	end	# UFS SCS
+		device pci 12.6 alias gspi2        off	end	# GSPI #2
+		device pci 13.0 alias ish          off	end	# ISH
+		device pci 14.0 alias xhci         off		# USB xHCI
+			chip drivers/usb/acpi
+				register "type" = "UPC_TYPE_HUB"
+				device usb 0.0 alias xhci_root_hub off
+					chip drivers/usb/acpi
+						device usb 2.0 alias usb2_port1 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.1 alias usb2_port2 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.2 alias usb2_port3 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.3 alias usb2_port4 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.4 alias usb2_port5 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.5 alias usb2_port6 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.6 alias usb2_port7 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.7 alias usb2_port8 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.8 alias usb2_port9 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.9 alias usb2_port10 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.10 alias usb2_port11 off end
+					end
+					chip drivers/usb/acpi
+						device usb 2.11 alias usb2_port12 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.0 alias usb3_port1 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.1 alias usb3_port2 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.2 alias usb3_port3 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.3 alias usb3_port4 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.4 alias usb3_port5 off end
+					end
+					chip drivers/usb/acpi
+						device usb 3.5 alias usb3_port6 off end
+					end
+				end
+			end
+		end
+		device pci 14.1 alias xdci         off	end	# USB xDCI (OTG)
+		device pci 14.2 alias shared_sram  off  end	# Shared SRAM
+		device pci 14.3 alias cnvi_wifi    off	end	# CNVi Wifi
+		device pci 14.5 alias sdxc         off	end	# SDCard
+		device pci 15.0 alias i2c0         off	end	# I2C #0
+		device pci 15.1 alias i2c1         off	end	# I2C #1
+		device pci 15.2 alias i2c2         off	end	# I2C #2
+		device pci 15.3 alias i2c3         off	end	# I2C #3
+		device pci 16.0 alias heci1        on	end	# Management Engine Interface 1
+		device pci 16.1 alias heci2        off	end	# Management Engine Interface 2
+		device pci 16.2 alias csme_ider    off	end	# Management Engine IDE-R
+		device pci 16.3 alias csme_ktr     off	end	# Management Engine KT Redirection
+		device pci 16.4 alias heci3        off	end	# Management Engine Interface 3
+		device pci 16.5 alias heci4        off	end	# Management Engine Interface 4
+		device pci 17.0 alias sata         off	end	# SATA
+		device pci 19.0 alias i2c4         off	end	# I2C #4
+		device pci 19.1 alias i2c5         off	end	# I2C #5
+		device pci 19.2 alias uart2        off	end	# UART #2
+		device pci 1a.0 alias emmc         off	end	# eMMC
+		device pci 1b.0 alias pcie_rp17    off	end	# PCI Express Port 17
+		device pci 1b.1 alias pcie_rp18    off	end	# PCI Express Port 18
+		device pci 1b.2 alias pcie_rp19    off	end	# PCI Express Port 19
+		device pci 1b.3 alias pcie_rp20    off	end	# PCI Express Port 20
+		device pci 1b.4 alias pcie_rp21    off	end	# PCI Express Port 21
+		device pci 1b.5 alias pcie_rp22    off	end	# PCI Express Port 22
+		device pci 1b.6 alias pcie_rp23    off	end	# PCI Express Port 23
+		device pci 1b.7 alias pcie_rp24    off	end	# PCI Express Port 24
+		device pci 1c.0 alias pcie_rp1     off	end	# PCI Express Port 1
+		device pci 1c.1 alias pcie_rp2     off	end	# PCI Express Port 2
+		device pci 1c.2 alias pcie_rp3     off	end	# PCI Express Port 3
+		device pci 1c.3 alias pcie_rp4     off	end	# PCI Express Port 4
+		device pci 1c.4 alias pcie_rp5     off	end	# PCI Express Port 5
+		device pci 1c.5 alias pcie_rp6     off	end	# PCI Express Port 6
+		device pci 1c.6 alias pcie_rp7     off	end	# PCI Express Port 7
+		device pci 1c.7 alias pcie_rp8     off	end	# PCI Express Port 8
+		device pci 1d.0 alias pcie_rp9     off	end	# PCI Express Port 9
+		device pci 1d.1 alias pcie_rp10    off	end	# PCI Express Port 10
+		device pci 1d.2 alias pcie_rp11    off	end	# PCI Express Port 11
+		device pci 1d.3 alias pcie_rp12    off	end	# PCI Express Port 12
+		device pci 1d.4 alias pcie_rp13    off	end	# PCI Express Port 13
+		device pci 1d.5 alias pcie_rp14    off	end	# PCI Express Port 14
+		device pci 1d.6 alias pcie_rp15    off	end	# PCI Express Port 15
+		device pci 1d.7 alias pcie_rp16    off	end	# PCI Express Port 16
+		device pci 1e.0 alias uart0        off	end	# UART #0
+		device pci 1e.1 alias uart1        off	end	# UART #1
+		device pci 1e.2 alias gspi0        off	end	# GSPI #0
+		device pci 1e.3 alias gspi1        off	end	# GSPI #1
+		device pci 1f.0 alias lpc_espi     on	end	# LPC Interface
+		device pci 1f.1 alias p2sb      hidden	end	# P2SB
+		device pci 1f.2 alias pmc       hidden	end	# Power Management Controller
+		device pci 1f.3 alias hda          off	end	# Intel HDA
+		device pci 1f.4 alias smbus        off	end	# SMBus
+		device pci 1f.5 alias fast_spi     on	end	# PCH SPI
+		device pci 1f.6 alias gbe          off	end	# GbE
+		device pci 1f.7 alias tracehub     off	end	# TraceHub
+	end
+end