# TODO: Update for Glinda

chip soc/amd/glinda
	device cpu_cluster 0 on
		ops amd_cpu_bus_ops
	end
	device domain 0 on
		ops glinda_pci_domain_ops
		device pci 00.0 alias gnb on ops glinda_root_complex_operations end
		device pci 00.2 alias iommu off ops amd_iommu_ops end

		device pci 01.0 on end # Dummy device function
		device pci 01.1 alias usb4_pcie_bridge_0 off end
		device pci 01.2 alias usb4_pcie_bridge_1 off end
		device pci 01.3 alias usb4_pcie_bridge_2 off end

		# The PCIe GPP aliases in this SoC match the device and function numbers
		device pci 02.0 on end # Dummy device function, do not disable
		device pci 02.1 alias gpp_bridge_2_1 off ops amd_external_pcie_gpp_ops end
		device pci 02.2 alias gpp_bridge_2_2 off ops amd_external_pcie_gpp_ops end
		device pci 02.3 alias gpp_bridge_2_3 off ops amd_external_pcie_gpp_ops end
		device pci 02.4 alias gpp_bridge_2_4 off ops amd_external_pcie_gpp_ops end
		device pci 02.5 alias gpp_bridge_2_5 off ops amd_external_pcie_gpp_ops end
		device pci 02.6 alias gpp_bridge_2_6 off ops amd_external_pcie_gpp_ops end

		device pci 03.0 on end # Dummy device function, do not disable
		device pci 03.1 alias gpp_bridge_3_1 off ops amd_external_pcie_gpp_ops end
		device pci 03.2 alias gpp_bridge_3_2 off ops amd_external_pcie_gpp_ops end
		device pci 03.3 alias gpp_bridge_3_3 off ops amd_external_pcie_gpp_ops end
		device pci 03.4 alias gpp_bridge_3_4 off ops amd_external_pcie_gpp_ops end
		device pci 03.5 alias gpp_bridge_3_5 off ops amd_external_pcie_gpp_ops end
		device pci 03.6 alias gpp_bridge_3_6 off ops amd_external_pcie_gpp_ops end

		device pci 08.0 on end # Dummy device function, do not disable
		device pci 08.1 alias gpp_bridge_a off  # Internal GPP Bridge 0 to Bus A
			ops amd_internal_pcie_gpp_ops
			device pci 0.0 alias gfx off ops amd_graphics_ops end # Internal GPU (GFX)
			device pci 0.1 alias gfx_hda off end # Display HD Audio Controller (GFXAZ)
			device pci 0.2 alias crypto off end # Crypto Coprocessor
			device pci 0.4 alias xhci_1 off
				ops xhci_pci_ops
				chip drivers/usb/acpi
					register "type" = "UPC_TYPE_HUB"
					device usb 0.0 alias xhci_1_root_hub off
						chip drivers/usb/acpi
							device usb 3.0 alias usb3_port7 off end
						end
						chip drivers/usb/acpi
							device usb 2.0 alias usb2_port7 off end
						end
					end
				end
			end
			device pci 0.5 alias acp off ops amd_acp_ops end # Audio Processor (ACP)
			device pci 0.6 alias hda off end # Audio Processor HD Audio Controller (main AZ)
			device pci 0.7 alias mp2 off end # Sensor Fusion Hub (MP2)
		end

		device pci 08.2 alias gpp_bridge_b off # Internal GPP Bridge 1 to Bus B
			ops amd_internal_pcie_gpp_ops
			device pci 0.0 on end # dummy, do not disable
			device pci 0.1 alias npu off end # Neural Processing Unit (NPU)
		end

		device pci 08.3 alias gpp_bridge_c off # Internal GPP Bridge 2 to Bus C
			ops amd_internal_pcie_gpp_ops

			device pci 0.0 alias xhci_0 off
				ops xhci_pci_ops
				chip drivers/usb/acpi
					register "type" = "UPC_TYPE_HUB"
					device usb 0.3 alias xhci_0_root_hub off
						chip drivers/usb/acpi
							device usb 3.0 alias usb3_port2 off end
						end
						chip drivers/usb/acpi
							device usb 3.1 alias usb3_port3 off end
						end
						chip drivers/usb/acpi
							device usb 2.0 alias usb2_port2 off end
						end
						chip drivers/usb/acpi
							device usb 2.1 alias usb2_port3 off end
						end
						chip drivers/usb/acpi
							device usb 2.2 alias usb2_port4 off end
						end
						chip drivers/usb/acpi
							device usb 2.3 alias usb2_port5 off end
						end
						chip drivers/usb/acpi
							device usb 2.4 alias usb2_port6 off end
						end
					end
				end
			end
			device pci 0.3 alias usb4_xhci_0 off
				ops xhci_pci_ops
				chip drivers/usb/acpi
					register "type" = "UPC_TYPE_HUB"
					device usb 0.0 alias usb4_xhci_0_root_hub off
						chip drivers/usb/acpi
							device usb 3.0 alias usb3_port0 off end
						end
						chip drivers/usb/acpi
							device usb 2.0 alias usb2_port0 off end
						end
					end
				end
			end
			device pci 0.4 alias usb4_xhci_1 off
				ops xhci_pci_ops
				chip drivers/usb/acpi
					register "type" = "UPC_TYPE_HUB"
					device usb 0.0 alias usb4_xhci_1_root_hub off
						chip drivers/usb/acpi
							device usb 3.0 alias usb3_port1 off end
						end
						chip drivers/usb/acpi
							device usb 2.0 alias usb2_port1 off end
						end
					end
				end
			end
			device pci 0.5 alias usb4_router_0 off end
			device pci 0.6 alias usb4_router_1 off end
		end

		device pci 14.0 alias smbus on ops amd_smbus_ops end # primary FCH function
		device pci 14.3 alias lpc_bridge on ops amd_lpc_ops end

		device pci 18.0 alias data_fabric_0 on ops amd_data_fabric_ops end
		device pci 18.1 alias data_fabric_1 on ops amd_data_fabric_ops end
		device pci 18.2 alias data_fabric_2 on ops amd_data_fabric_ops end
		device pci 18.3 alias data_fabric_3 on ops amd_data_fabric_ops end
		device pci 18.4 alias data_fabric_4 on ops amd_data_fabric_ops end
		device pci 18.5 alias data_fabric_5 on ops amd_data_fabric_ops end
		device pci 18.6 alias data_fabric_6 on ops amd_data_fabric_ops end
		device pci 18.7 alias data_fabric_7 on ops amd_data_fabric_ops end
	end

	device mmio 0xfedc2000 alias i2c_0 off ops soc_amd_i2c_mmio_ops end
	device mmio 0xfedc3000 alias i2c_1 off ops soc_amd_i2c_mmio_ops end
	device mmio 0xfedc4000 alias i2c_2 off ops soc_amd_i2c_mmio_ops end
	device mmio 0xfedc5000 alias i2c_3 off ops soc_amd_i2c_mmio_ops end
	device mmio 0xfedc9000 alias uart_0 off ops amd_uart_mmio_ops end
	device mmio 0xfedca000 alias uart_1 off ops amd_uart_mmio_ops end
	device mmio 0xfedce000 alias uart_2 off ops amd_uart_mmio_ops end
	device mmio 0xfedcf000 alias uart_3 off ops amd_uart_mmio_ops end
	device mmio 0xfedd1000 alias uart_4 off ops amd_uart_mmio_ops end
end