chip soc/intel/skylake

	# GPE configuration
	# Note that GPE events called out in ASL code rely on this
	# route. i.e. If this route changes then the affected GPE
	# offset bits also need to be changed.
	register "gpe0_dw0" = "GPP_G"
	register "gpe0_dw1" = "GPP_D"
	register "gpe0_dw2" = "GPP_E"

	device domain 0 on
		subsystemid 0x15d9 0x0896 inherit
		device ref south_xhci on
			register "usb2_ports" = "{
				[0] = USB2_PORT_MID(OC3),	/* USB 9 (3.0) */
				[1] = USB2_PORT_MID(OC3),	/* USB 8 (3.0) */
				[2] = USB2_PORT_MID(OC1),	/* USB 3 */
				[3] = USB2_PORT_MID(OC1),	/* USB 2 */
				[4] = USB2_PORT_MID(OC2),	/* USB 1 */
				[5] = USB2_PORT_MID(OC2),	/* USB 0 */
				[6] = USB2_PORT_MID(OC0),	/* USB 5 */
				[7] = USB2_PORT_MID(OC0),	/* USB 4 */
				[8] = USB2_PORT_MID(OC_SKIP),	/* IPMI USB HUB */
				[9] = USB2_PORT_MID(OC5),	/* USB 10 (3.0) */
				[10] = USB2_PORT_MID(OC4),	/* USB 7 (3.0) */
				[11] = USB2_PORT_MID(OC4),	/* USB 6 (3.0) */
			}"

			register "usb3_ports" = "{
				[0] = USB3_PORT_DEFAULT(OC4),	/* USB 7 */
				[1] = USB3_PORT_DEFAULT(OC4),	/* USB 6 */
				[2] = USB3_PORT_DEFAULT(OC5),	/* USB 10 */
				[3] = USB3_PORT_DEFAULT(OC3),	/* USB 9 */
				[4] = USB3_PORT_DEFAULT(OC3),	/* USB 8 */
			}"
		end
		device ref peg0 on
			# Slot JPCIE6
			smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthLong" "CPU SLOT6 PCI-E 3.0 X8(IN X16)" "SlotDataBusWidth8X"
		end
		device ref peg1 on
			# Slot JPCIE7
			smbios_slot_desc "SlotTypePciExpressGen3X8" "SlotLengthShort" "CPU SLOT7 PCI-E 3.0 X8" "SlotDataBusWidth8X"
		end
		device ref pcie_rp1 on
			# Slot JPCIE4
			register "PcieRpEnable[0]" = "1"
			register "PcieRpLtrEnable[0]" = "1"
			register "PcieRpAdvancedErrorReporting[0]" = "1"
			smbios_slot_desc "SlotTypePciExpressGen3X8" "SlotLengthShort" "PCH SLOT4 PCI-E 3.0 X4(IN X8)" "SlotDataBusWidth4X"
		end
		device ref pcie_rp5 on
			# Slot JPCIE5
			register "PcieRpEnable[4]" = "1"
			register "PcieRpLtrEnable[4]" = "1"
			register "PcieRpAdvancedErrorReporting[4]" = "1"
			smbios_slot_desc "SlotTypePciExpressGen3X8" "SlotLengthShort" "PCH SLOT5 PCI-E 3.0 X4(IN X8)" "SlotDataBusWidth4X"
		end
		device ref pcie_rp9 on
			register "PcieRpEnable[8]" = "1"
			register "PcieRpLtrEnable[8]" = "1"
			register "PcieRpAdvancedErrorReporting[8]" = "1"
			device pci 00.0 on	# GbE 1
				subsystemid 0x15d9 0x1533
			end
		end
		device ref pcie_rp10 on
			register "PcieRpEnable[9]" = "1"
			register "PcieRpLtrEnable[9]" = "1"
			register "PcieRpAdvancedErrorReporting[9]" = "1"
			device pci 00.0 on	# GbE 2
				subsystemid 0x15d9 0x1533
			end
		end
		device ref pcie_rp11 on
			register "PcieRpEnable[10]" = "1"
			register "PcieRpLtrEnable[10]" = "1"
			register "PcieRpAdvancedErrorReporting[10]" = "1"
			device pci 00.0 on	# Aspeed PCI Bridge
				device pci 00.0 on end	# Aspeed 2400 VGA
			end
		end
		device ref lpc_espi on
			register "gen1_dec" = "0x007c0a01"	# Super IO SWC
			register "gen2_dec" = "0x000c0ca1"	# IPMI KCS

			chip drivers/ipmi
				use pch_gpio as gpio_dev
				register "bmc_jumper_gpio" = "GPP_D22" # JPB1
				register "post_complete_gpio" = "GPP_B20"
				# On cold boot it takes a while for the BMC to start the IPMI service
				register "wait_for_bmc" = "1"
				register "bmc_boot_timeout" = "60"
				device pnp ca2.0 on end	# IPMI KCS
			end
			chip superio/common
				device pnp 2e.0 on
					chip superio/aspeed/ast2400
						device pnp 2e.2 on	# SUART1 / COM1 (ext)
							io 0x60 = 0x3f8
							irq 0x70 = 4
							drq 0xf0 = 0x00
						end
						device pnp 2e.3 on	# SUART2 / COM2 (int)
							io 0x60 = 0x2f8
							irq 0x70 = 3
							drq 0xf0 = 0x00
						end
						device pnp 2e.4 on	# SWC
							io 0x60 = 0xa00
							io 0x62 = 0xa10
							io 0x64 = 0xa20
							io 0x66 = 0xa30
							irq 0x70 = 0x00
						end
						device pnp 2e.5 off end	# KBC
						device pnp 2e.7 on	# GPIO
							irq 0x70 = 0x00
						end
						device pnp 2e.b off end	# SUART3
						device pnp 2e.c off end	# SUART4
						device pnp 2e.d on	# iLPC2AHB
							irq 0x70 = 0x00
						end
						device pnp 2e.e on	# Mailbox
							io 0x60 = 0xa40
							irq 0x70 = 0x00
						end
					end
				end
			end
		end
	end
end