soc/intel/tigerlake: Enable and use USB4 PCIe driver

This change enables the USB4/Thunderbolt common layer for Intel SOC,
and enables the Intel USB4 PCIe driver.  This moves the _DSD variables
from the DSDT into the SSDT and allows them to be configured for each
board if necessary.

Change-Id: I2564512d951046e015c148db42fdaf2d4b8b81dd
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/44917
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig
index 4df2e85..9433080 100644
--- a/src/soc/intel/tigerlake/Kconfig
+++ b/src/soc/intel/tigerlake/Kconfig
@@ -48,6 +48,8 @@
 	select SOC_INTEL_COMMON_BLOCK_SA
 	select SOC_INTEL_COMMON_BLOCK_SMM
 	select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
+	select SOC_INTEL_COMMON_BLOCK_USB4
+	select SOC_INTEL_COMMON_BLOCK_USB4_PCIE
 	select SOC_INTEL_COMMON_PCH_BASE
 	select SOC_INTEL_COMMON_RESET
 	select SOC_INTEL_COMMON_BLOCK_CAR
diff --git a/src/soc/intel/tigerlake/acpi/tcss_dma.asl b/src/soc/intel/tigerlake/acpi/tcss_dma.asl
index f7c4117..085990d 100644
--- a/src/soc/intel/tigerlake/acpi/tcss_dma.asl
+++ b/src/soc/intel/tigerlake/acpi/tcss_dma.asl
@@ -92,30 +92,3 @@
 {
 	Return (Package() { 0x6D, 4 })
 }
-
-Method (_DSD, 0)
-{
-	Return(
-		Package()
-		{
-			/* Thunderbolt GUID for IMR_VALID at ../drivers/acpi/property.c */
-			ToUUID("C44D002F-69F9-4E7D-A904-A7BAABDF43F7"),
-			Package ()
-			{
-				Package (2) { "IMR_VALID", 1 }
-			},
-
-			/* Thunderbolt GUID for WAKE_SUPPORTED at ../drivers/acpi/property.c */
-			ToUUID("6C501103-C189-4296-BA72-9BF5A26EBE5D"),
-			Package ()
-			{
-				Package (2) { "WAKE_SUPPORTED", 1 }
-			}
-		}
-	)
-}
-
-Method (_DSM, 4, Serialized)
-{
-	Return (Buffer() { 0 })
-}
diff --git a/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl b/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl
index b4c0cef..08d8900 100644
--- a/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl
+++ b/src/soc/intel/tigerlake/acpi/tcss_pcierp.asl
@@ -220,85 +220,6 @@
 	}
 }
 
-Method (_DSD, 0) {
-	If ((TUID == 0) || (TUID == 1)) {
-		Return ( Package() {
-			/* acpi_pci_bridge_d3 at ../drivers/pci/pci-acpi.c */
-			ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),
-			Package ()
-			{
-				Package (2) { "HotPlugSupportInD3", 1 },
-			},
-
-			/* pci_acpi_set_untrusted at ../drivers/pci/pci-acpi.c */
-			ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"),
-			Package () {
-				Package (2) { "ExternalFacingPort", 1 },  /* TBT/CIO port */
-				/*
-				 * UID of the TBT RP on platform, range is: 0, 1 ...,
-				 * (NumOfTBTRP - 1).
-				 */
-				Package (2) { "UID", TUID },
-			},
-			ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
-			Package () {
-				Package (2) { "usb4-host-interface", \_SB.PCI0.TDM0 },
-				Package (2) { "usb4-port-number", TUID },
-			}
-		})
-	} ElseIf (TUID == 2) {
-		Return ( Package () {
-			/* acpi_pci_bridge_d3 at ../drivers/pci/pci-acpi.c */
-			ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),
-			Package ()
-			{
-				Package (2) { "HotPlugSupportInD3", 1 },
-			},
-
-			/* pci_acpi_set_untrusted at ../drivers/pci/pci-acpi.c */
-			ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"),
-			Package () {
-				Package (2) { "ExternalFacingPort", 1 },  /* TBT/CIO port */
-				/*
-				 * UID of the TBT RP on platform, range is: 0, 1 ...,
-				 * (NumOfTBTRP - 1).
-				 */
-				Package (2) { "UID", TUID },
-			},
-			ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
-			Package () {
-				Package (2) { "usb4-host-interface", \_SB.PCI0.TDM1 },
-				Package (2) { "usb4-port-number", 0 },
-			}
-		})
-	} Else {  /* TUID == 3 */
-		Return ( Package () {
-			/* acpi_pci_bridge_d3 at ../drivers/pci/pci-acpi.c */
-			ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),
-			Package ()
-			{
-				Package (2) { "HotPlugSupportInD3", 1 },
-			},
-
-			/* pci_acpi_set_untrusted at ../drivers/pci/pci-acpi.c */
-			ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"),
-			Package () {
-				Package (2) { "ExternalFacingPort", 1 },  /* TBT/CIO port */
-				/*
-				 * UID of the TBT RP on platform, range is: 0, 1 ...,
-				 * (NumOfTBTRP - 1).
-				 */
-				Package (2) { "UID", TUID },
-			},
-			ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
-			Package () {
-				Package (2) { "usb4-host-interface", \_SB.PCI0.TDM1 },
-				Package (2) { "usb4-port-number", 1 },
-			}
-		})
-	}
-}
-
 Method (_S0W, 0x0, NotSerialized)
 {
 	Return (0x4)
diff --git a/src/soc/intel/tigerlake/chipset.cb b/src/soc/intel/tigerlake/chipset.cb
index 4f55125..b60801c 100644
--- a/src/soc/intel/tigerlake/chipset.cb
+++ b/src/soc/intel/tigerlake/chipset.cb
@@ -5,10 +5,30 @@
 		device pci 04.0 alias dptf off end
 		device pci 05.0 alias ipu off end
 		device pci 06.0 alias peg off end
-		device pci 07.0 alias tbt_pcie_rp0 off end
-		device pci 07.1 alias tbt_pcie_rp1 off end
-		device pci 07.2 alias tbt_pcie_rp2 off end
-		device pci 07.3 alias tbt_pcie_rp3 off end
+		device pci 07.0 alias tbt_pcie_rp0 off
+			chip soc/intel/common/block/usb4
+				use tbt_dma0 as usb4_port
+				device generic 0 on end
+			end
+		end
+		device pci 07.1 alias tbt_pcie_rp1 off
+			chip soc/intel/common/block/usb4
+				use tbt_dma0 as usb4_port
+				device generic 1 on end
+			end
+		end
+		device pci 07.2 alias tbt_pcie_rp2 off
+			chip soc/intel/common/block/usb4
+				use tbt_dma1 as usb4_port
+				device generic 0 on end
+			end
+		end
+		device pci 07.3 alias tbt_pcie_rp3 off
+			chip soc/intel/common/block/usb4
+				use tbt_dma1 as usb4_port
+				device generic 1 on end
+			end
+		end
 		device pci 08.0 alias gna off end
 		device pci 09.0 alias npk off end
 		device pci 0a.0 alias crashlog off end