chip soc/intel/cannonlake
	# CPU
	# Enable Enhanced Intel SpeedStep
	register "eist_enable"			= "1"

	# Graphics
	# IGD Displays
	register "panel_cfg" = "{
		.up_delay_ms			=  0,				// T3
		.backlight_on_delay_ms		=  0,				// T7
		.backlight_off_delay_ms		=  0,				// T9
		.down_delay_ms			=  0,				// T10
		.cycle_delay_ms			=  500,				// T12
		.backlight_pwm_hz		=  200,				// PWM
	}"

	# FSP Memory
	register "enable_c6dram"		= "1"
	register "SaGv"				= "SaGv_Enabled"

	# FSP Silicon
	# Serial I/O
	register "SerialIoDevMode" = "{
		[PchSerialIoIndexI2C0]		= PchSerialIoPci,
		[PchSerialIoIndexI2C4]		= PchSerialIoSkipInit,
		[PchSerialIoIndexUART2]		= PchSerialIoSkipInit,
	}"

	# Power
	register "PchPmSlpS3MinAssert"		= "2"				# 50ms
	register "PchPmSlpS4MinAssert"		= "3"				# 1s
	register "PchPmSlpSusMinAssert"		= "3"				# 500ms
	register "PchPmSlpAMinAssert"		= "3"				# 2s

	# PM Util
	# 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.
	# sudo devmem2 0xfe001920 (pmc_bar + GPIO_GPE_CFG)
	register "gpe0_dw0"			= "PMC_GPP_B"
	register "gpe0_dw1"			= "PMC_GPP_C"
	register "gpe0_dw2"			= "PMC_GPP_E"

	# PCIe Clock
	register "PcieClkSrcClkReq[0]"		= "PCIE_CLK_NOTUSED"
	register "PcieClkSrcClkReq[2]"		= "PCIE_CLK_NOTUSED"
	register "PcieClkSrcClkReq[3]"		= "PCIE_CLK_NOTUSED"
	register "PcieClkSrcClkReq[4]"		= "PCIE_CLK_NOTUSED"
	register "PcieClkSrcClkReq[5]"		= "PCIE_CLK_NOTUSED"

# Actual device tree.
	device cpu_cluster 0 on end

	device domain 0 on
		device pci 00.0 on  end						# Host Bridge
		device pci 02.0 on  end						# Integrated Graphics Device
		device pci 04.0 on						# SA Thermal Device
			register "Device4Enable"		= "1"
		end
		device pci 12.0 off end						# Thermal Subsystem
		device pci 12.5 off end						# UFS SCS
		device pci 12.6 off end						# GSPI #2
		device pci 14.0 on						# USB xHCI
			# Motherboard USB Type C
			register "usb2_ports[0]"		= "USB2_PORT_TYPE_C(OC_SKIP)"
			register "usb3_ports[0]"		= "USB3_PORT_DEFAULT(OC_SKIP)"

			# Motherboard USB 3.0
			register "usb2_ports[1]"		= "USB2_PORT_MID(OC_SKIP)"
			register "usb3_ports[1]"		= "USB3_PORT_DEFAULT(OC_SKIP)"

			# Daughterboard SD Card
			register "usb2_ports[3]"		= "USB2_PORT_MID(OC_SKIP)"

			# Daughterboard USB 3.0
			register "usb2_ports[5]"		= "USB2_PORT_MID(OC_SKIP)"
			register "usb3_ports[2]"		= "USB3_PORT_DEFAULT(OC_SKIP)"

			# Webcam
			register "usb2_ports[CONFIG_CCD_PORT]"	= "USB2_PORT_MID(OC_SKIP)"

			# Internal Bluetooth
			register "usb2_ports[9]"		= "USB2_PORT_MID(OC_SKIP)"
		end
		device pci 14.1 off end						# USB xDCI (OTG)
		device pci 14.2 on  end						# SRAM
		device pci 14.3 on						# CNVi
			chip drivers/wifi/generic
				register "wake"			= "GPE0_PME_B0"
				device generic 0 on end
			end
		end
		device pci 14.5 off end						# SDCard
		device pci 15.0 on						# I2C0
			chip drivers/i2c/hid
				register "generic.hid"		= ""STAR0001""
				register "generic.desc"		= ""Touchpad""
				register "generic.irq"		= "ACPI_IRQ_LEVEL_LOW(GPP_B3_IRQ)"
				register "generic.detect"	= "1"
				register "hid_desc_reg_offset"	= "0x20"
				device i2c 2c on end
			end
		end
		device pci 15.1 off end						# I2C1
		device pci 15.2 off end						# I2C2
		device pci 15.3 off end						# I2C3
		device pci 16.0 on  end						# Management Engine Interface 1
		device pci 16.1 off end						# Management Engine Interface 2
		device pci 16.2 off end						# Management Engine IDE-R
		device pci 16.3 off end						# Management Engine KT Redirection
		device pci 16.4 off end						# Management Engine Interface 3
		device pci 16.5 off end						# Management Engine Interface 4
		device pci 17.0 on						# SATA
			register "SataSalpSupport"		= "1"
			# Port 1
			register "SataPortsEnable[1]"		= "1"
			register "SataPortsDevSlp[1]"		= "1"
		end
		device pci 19.0 on  end						# I2C4
		device pci 19.1 off end						# I2C5
		device pci 19.2 on  end						# UART #2
		device pci 1a.0 off end						# eMMC
		device pci 1c.0 off end						# PCI Express Port 1
		device pci 1c.1 off end						# PCI Express Port 2
		device pci 1c.2 off end						# PCI Express Port 3
		device pci 1c.3 off end						# PCI Express Port 4
		device pci 1c.4 off end						# PCI Express Port 5
		device pci 1c.5 off end						# PCI Express Port 6
		device pci 1c.6 off end						# PCI Express Port 7
		device pci 1c.7 off end						# PCI Express Port 8
		device pci 1d.0 on						# PCI Express Port 9 (SSD x4)
			register "PcieRpSlotImplemented[8]"	= "1"
			register "PcieRpEnable[8]"		= "1"
			register "PcieRpLtrEnable[8]"		= "1"
			register "PcieClkSrcUsage[1]"		= "0x08"
			register "PcieClkSrcClkReq[1]"		= "1"
			smbios_slot_desc "SlotTypeM2Socket3" "SlotLengthOther" "M.2/M 2280" "SlotDataBusWidth4X"
		end
		device pci 1d.1 off end						# PCI Express Port 10
		device pci 1d.2 off end						# PCI Express Port 11
		device pci 1d.3 off end						# PCI Express Port 12
		device pci 1e.0 off end						# UART #0
		device pci 1e.1 off end						# UART #1
		device pci 1e.2 off end						# GSPI #0
		device pci 1e.3 off end						# GSPI #1
		device pci 1f.0 on						# LPC Interface
			register "gen1_dec"			= "0x000c0681"
			register "gen2_dec"			= "0x000c1641"
			register "gen3_dec"			= "0x00fc0201"
			register "gen4_dec"			= "0x000c0081"

			chip ec/starlabs/merlin
				# Port pair 4Eh/4Fh
				device pnp 4e.00 on  end			# IO Interface
				device pnp 4e.01 off end			# Com 1
				device pnp 4e.02 off end			# Com 2
				device pnp 4e.04 off end			# System Wake-Up
				device pnp 4e.05 off end			# PS/2 Mouse
				device pnp 4e.06 on				# PS/2 Keyboard
					io 0x60			= 0x0060
					io 0x62			= 0x0064
					irq 0x70		= 1
				end
				device pnp 4e.0a off end			# Consumer IR
				device pnp 4e.0f off end			# Shared Memory/Flash Interface
				device pnp 4e.10 off end			# RTC-like Timer
				device pnp 4e.11 off end			# Power Management Channel 1
				device pnp 4e.12 off end			# Power Management Channel 2
				device pnp 4e.13 off end			# Serial Peripheral Interface
				device pnp 4e.14 off end			# Platform EC Interface
				device pnp 4e.17 off end			# Power Management Channel 3
				device pnp 4e.18 off end			# Power Management Channel 4
				device pnp 4e.19 off end			# Power Management Channel 5
			end
		end
		device pci 1f.1 on  end						# P2SB
		device pci 1f.2 hidden end					# Power Management Controller
		device pci 1f.3 on						# Intel HDA
			register "PchHdaAudioLinkHda"		= "1"
		end
		device pci 1f.4 on  end						# SMBus
		device pci 1f.5 on  end						# PCH SPI
		device pci 1f.6 off end						# GbE
	end
	chip drivers/crb
		device mmio 0xfed40000 on end
	end
end
