chip soc/intel/alderlake
	# Support 5600 MT/s memory
	register "max_dram_speed_mts" = "5600"

	device domain 0 on
		subsystemid 0x1558 0xa671 inherit

		#TODO: DDIB and DDID are both connected to TBT

		device ref xhci on
			register "usb2_ports" = "{
				[0] = USB2_PORT_MID(OC_SKIP),		/* Type-A 3.2 Gen 1 (Left) */
				[1] = USB2_PORT_MID(OC_SKIP),		/* Type-A 2.0 (Left) */
				/* Port reset messaging cannot be used,
				 * so do not use USB2_PORT_TYPE_C for these */
				[2] = USB2_PORT_MID(OC_SKIP),		/* Type-C 3.2 Gen 2 (Rear) */
				[8] = USB2_PORT_MID(OC_SKIP),		/* Type-C Thunderbolt (Right) */
				[10] = USB2_PORT_MID(OC_SKIP),		/* Camera */
				[11] = USB2_PORT_MID(OC_SKIP),		/* Secure Pad */
				[13] = USB2_PORT_MID(OC_SKIP),		/* Bluetooth */
			}"
			register "usb3_ports" = "{
				[0] = USB3_PORT_DEFAULT(OC_SKIP),	/* Type-A 3.2 Gen 1 (Left) */
				[2] = USB3_PORT_DEFAULT(OC_SKIP),	/* Type-C 3.2 Gen 2 (Rear) */
			}"
		end

		device ref i2c0 on
			# Touchpad I2C bus
			register "serial_io_i2c_mode[PchSerialIoIndexI2C0]" = "PchSerialIoPci"
			chip drivers/i2c/hid
				register "generic.hid" = ""ELAN0412""
				register "generic.desc" = ""ELAN Touchpad""
				register "generic.irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW(GPP_E7)"
				register "generic.detect" = "1"
				register "hid_desc_reg_offset" = "0x01"
				device i2c 15 on end
			end
			chip drivers/i2c/hid
				register "generic.hid" = ""FTCS1000""
				register "generic.desc" = ""FocalTech Touchpad""
				register "generic.irq_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW(GPP_E7)"
				register "generic.detect" = "1"
				register "hid_desc_reg_offset" = "0x01"
				device i2c 38 on end
			end
		end

		device ref pcie5_0 on
			# CPU PCIe RP#2 x8, Clock 14 (DGPU)
			register "cpu_pcie_rp[CPU_RP(2)]" = "{
				.clk_src = 14,
				.clk_req = 14,
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
			}"
		end

		device ref pcie_rp3 on
			# PCH RP#3 x1, Clock 13 (GLAN)
			# Clock source is shared with LAN and hence marked as free running.
			register "pch_pcie_rp[PCH_RP(3)]" = "{
				.clk_src = 13,
				.clk_req = 13,
				.flags = PCIE_RP_LTR | PCIE_RP_CLK_SRC_UNUSED,
			}"
			register "pcie_clk_config_flag[13]" = "PCIE_CLK_FREE_RUNNING"
			device pci 00.0 on end
		end

		device ref pcie_rp5 on
			# PCH RP#5 x1, Clock 12 (CARD)
			register "pch_pcie_rp[PCH_RP(5)]" = "{
				.clk_src = 12,
				.clk_req = 12,
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
			}"
		end

		device ref pcie_rp8 on
			# PCH RP#8 x1, Clock 11 (WLAN)
			register "pch_pcie_rp[PCH_RP(8)]" = "{
				.clk_src = 11,
				.clk_req = 11,
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
			}"
		end

		device ref pcie_rp13 on
			# PCH RP#13 x4, Clock 10 (SSD1)
			register "pch_pcie_rp[PCH_RP(13)]" = "{
				.clk_src = 10,
				.clk_req = 10,
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
			}"
		end

		device ref pcie_rp21 on
			# PCH RP#21 x4, Clock 15 (TBT)
			register "pch_pcie_rp[PCH_RP(21)]" = "{
				.clk_src = 15,
				.clk_req = 15,
				.flags = PCIE_RP_HOTPLUG | PCIE_RP_LTR,
			}"
		end

		device ref pcie_rp25 on
			# PCH RP#25 x4, Clock 8 (SSD2)
			register "pch_pcie_rp[PCH_RP(25)]" = "{
				.clk_src = 8,
				.clk_req = 8,
				.flags = PCIE_RP_LTR | PCIE_RP_AER,
			}"
		end

		device ref gbe on end
	end
end
