## SPDX-License-Identifier: GPL-2.0-only

chip soc/intel/skylake

	# Intel Common SoC Config
	#+-------------------+---------------------------+
	#| Field             |  Value                    |
	#+-------------------+---------------------------+
	#| I2C0              | Touchscreen               |
	#| I2C1              | Touchpad                  |
	#+-------------------+---------------------------+
	register "common_soc_config" = "{
		.i2c[0] = {
			.speed = I2C_SPEED_FAST,
		},
		.i2c[1] = {
			.speed = I2C_SPEED_FAST,
			.speed_config[0] = {
				.speed = I2C_SPEED_FAST,
				.scl_lcnt = 128,
				.scl_hcnt = 160,
				.sda_hold = 30,
			}
		},
	}"

	# TODO: Drop once CB:55224 is merged
	register "SerialIoDevMode" = "{
		[PchSerialIoIndexI2C0]	= PchSerialIoPci,
		[PchSerialIoIndexI2C1]	= PchSerialIoPci,
		[PchSerialIoIndexI2C4]	= PchSerialIoDisabled,
		[PchSerialIoIndexUart2]	= PchSerialIoSkipInit,
	}"

	device domain 0 on
		subsystemid 0x1025 0x1037 inherit
		device ref system_agent	on
			# Enable "Enhanced Intel SpeedStep"
			register "eist_enable" = "1"

			# Set the Thermal Control Circuit (TCC) activation value to 97C
			# even though FSP integration guide says to set it to 100C for SKL-U
			# (offset at 0), because when the TCC activates at 100C, the CPU
			# will have already shut itself down from overheating protection.
			register "tcc_offset" = "3"	# TCC of 97C

			register "SaGv" = "SaGv_Enabled"

			# VR Slew rate setting for improving audible noise
			register "AcousticNoiseMitigation" = "1"
			register "SlowSlewRateForIa" = "3"	# Fast/16
			register "SlowSlewRateForGt" = "3"	# Fast/16
			register "SlowSlewRateForSa" = "0"	# Fast/2
			register "FastPkgCRampDisableIa" = "0"
			register "FastPkgCRampDisableGt" = "0"
			register "FastPkgCRampDisableSa" = "0"

			# PL1, PL2 override 35W, PL4 override 43W
			register "power_limits_config" = "{
				.tdp_pl1_override = 35,
				.tdp_pl2_override = 35,
				.tdp_pl4 = 43,
			}"

			# ISL95857 VR
			# Send VR specific command for PS4 exit issue
			register "SendVrMbxCmd" = "2"
			# Send VR mailbox command for IA/GT/SA rails
			register "IslVrCmd" = "2"
		end
		device ref igpu		on
			register "panel_cfg" = "{
				.up_delay_ms		= 150,	// T3
				.down_delay_ms		= 50,	// T10
				.cycle_delay_ms		= 500,	// T12
				.backlight_on_delay_ms	= 1,	// T7
				.backlight_off_delay_ms	= 200,	// T9
				.backlight_pwm_hz	= 1000,
			}"

			# IGD Displays; LFP and 3*EFP
			# FIXME: VBT does not define EFP3, board has no EFP2?
			register "gfx" = "{
				.use_spread_spectrum_clock = 1,
				.ndid = 4, .did = { 0x0400, 0x0300, 0x0301, 0x0302 }
			}"

			register "PrimaryDisplay" = "Display_Switchable"
		end
		device ref south_xhci	on
			register "usb2_ports[0]" = "{
				.enable		= 1,
				.ocpin		= OC_SKIP,
				.tx_bias	= USB2_BIAS_17MV,
				.tx_emp_enable	= USB2_DE_EMP_ON,
				.pre_emp_bias	= USB2_BIAS_28MV,
				.pre_emp_bit	= USB2_HALF_BIT_PRE_EMP,
			}" # Type-A Port (right)
			register "usb2_ports[1]" = "{
				.enable		= 1,
				.ocpin		= OC_SKIP,
				.tx_bias	= USB2_BIAS_17MV,
				.tx_emp_enable	= USB2_DE_EMP_ON,
				.pre_emp_bias	= USB2_BIAS_28MV,
				.pre_emp_bit	= USB2_HALF_BIT_PRE_EMP,
			}" # Type-A Port (right)
			register "usb2_ports[2]" = "{
				.enable		= 1,
				.ocpin		= OC_SKIP,
				.tx_bias	= USB2_BIAS_17MV,
				.tx_emp_enable	= USB2_DE_EMP_ON,
				.pre_emp_bias	= USB2_BIAS_28MV,
				.pre_emp_bit	= USB2_HALF_BIT_PRE_EMP,
			}" # Type-C Port
			register "usb2_ports[3]" = "USB2_PORT_FLEX(OC_SKIP)"	# Type-A Port (left)
			register "usb2_ports[4]" = "USB2_PORT_FLEX(OC_SKIP)"	# Bluetooth
			register "usb2_ports[5]" = "USB2_PORT_FLEX(OC_SKIP)"	# Touchscreen
			register "usb2_ports[6]" = "USB2_PORT_FLEX(OC_SKIP)"	# Webcam
			register "usb2_ports[7]" = "USB2_PORT_FLEX(OC_SKIP)"	# SD
			register "usb2_ports[8]" = "USB2_PORT_FLEX(OC_SKIP)"	# Finger-printer

			register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port (right); Capable of OTG
			register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A Port (right)
			register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C Port
			register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C Port
			chip drivers/usb/acpi
				register "desc" = ""Root Hub""
				register "type" = "UPC_TYPE_HUB"
				device usb 0.0 on
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Right""
						register "type" = "UPC_TYPE_USB3_A"
						register "group" = "ACPI_PLD_GROUP(0, 1)"
						device usb 2.0 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Right""
						register "type" = "UPC_TYPE_USB3_A"
						register "group" = "ACPI_PLD_GROUP(0, 2)"
						device usb 2.1 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-C""
						register "type" = "UPC_TYPE_C_USB2_SS"
						register "group" = "ACPI_PLD_GROUP(0, 3)"
						device usb 2.2 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Left""
						register "type" = "UPC_TYPE_A"
						register "group" = "ACPI_PLD_GROUP(0, 4)"
						device usb 2.3 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Bluetooth""
						register "type" = "UPC_TYPE_UNUSED"
						register "group" = "ACPI_PLD_GROUP(0, 5)"
						device usb 2.4 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Touchscreen""
						register "type" = "UPC_TYPE_UNUSED"
						register "group" = "ACPI_PLD_GROUP(0, 6)"
						device usb 2.5 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Webcam""
						register "type" = "UPC_TYPE_UNUSED"
						register "group" = "ACPI_PLD_GROUP(0, 7)"
						device usb 2.6 on  end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 SD""
						register "type" = "UPC_TYPE_UNUSED"
						register "group" = "ACPI_PLD_GROUP(0, 8)"
						device usb 2.7 on  end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Finger-printer""
						register "type" = "UPC_TYPE_UNUSED"
						register "group" = "ACPI_PLD_GROUP(0, 9)"
						device usb 2.8 on  end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Right""
						register "type" = "UPC_TYPE_USB3_A"
						register "group" = "ACPI_PLD_GROUP(0, 1)"
						device usb 3.0 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Right""
						register "type" = "UPC_TYPE_USB3_A"
						register "group" = "ACPI_PLD_GROUP(0, 2)"
						device usb 3.1 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-C""
						register "type" = "UPC_TYPE_C_USB2_SS"
						register "group" = "ACPI_PLD_GROUP(0, 3)"
						device usb 3.2 on  end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-C""
						register "type" = "UPC_TYPE_C_USB2_SS"
						register "group" = "ACPI_PLD_GROUP(0, 3)"
						device usb 3.3 on end
					end
				end
			end
		end
		device ref thermal	on	end
		device ref i2c0		on
			chip drivers/i2c/hid
				register "generic.name" = ""TPL0""
				register "generic.hid" = ""ELAN2259""
				register "generic.desc" = ""ELAN Touchscreen""
				register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
				register "generic.device_present_gpio" = "GPP_B15"
				register "hid_desc_reg_offset" = "0x01"
				device i2c 0x10 on end
			end
		end
		device ref i2c1		on
			chip drivers/i2c/hid
				register "generic.name" = ""TPD0""
				register "generic.hid" = ""SYN1B7F""
				register "generic.desc" = ""Synaptics Touchpad""
				register "generic.irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_B3_IRQ)"
#				register "generic.wake" = "GPE0_DW2_16"	# FIXME: Use EC's GPE?
				register "generic.detect" = "1"
				register "hid_desc_reg_offset" = "0x20"
				device i2c 0x2c on end
			end
			chip drivers/i2c/hid
				register "generic.name" = ""TPD1""
				register "generic.hid" = ""ELAN0501""
				register "generic.desc" = ""ELAN Touchpad""
				register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_B3_IRQ)"
				register "generic.detect" = "1"
				register "hid_desc_reg_offset" = "0x01"
				device i2c 0x15 on end
			end
		end
		device ref heci1	on	end
		device ref sata		on
			register "SataSalpSupport" = "1"
			register "SataPortsEnable[1]" = "1"	# HDD; BIT1 in 92h-93h
			register "SataPortsEnable[2]" = "1"	# ODD; BIT2 in 92h-93h
		end
		device ref uart2	on	end
		# Board has no GPIO expander on I2C4 (despite SetupUtility claim that it does - this would be static text)
		device ref pcie_rp1	on
			# dGPU; x4
			register "PcieRpEnable[0]" = "1"
			register "PcieRpAdvancedErrorReporting[0]" = "1"
			register "PcieRpLtrEnable[0]" = "1"
			register "PcieRpClkReqSupport[0]" = "1"
			register "PcieRpClkReqNumber[0]" = "0"
			register "PcieRpMaxPayload[0]" = "RpMaxPayload_256"
		end
		device ref pcie_rp7	on
			# NGFF; x2
			register "PcieRpEnable[6]" = "1"
			register "PcieRpAdvancedErrorReporting[6]" = "1"
			register "PcieRpLtrEnable[6]" = "1"
			register "PcieRpClkReqSupport[6]" = "1"
			register "PcieRpClkReqNumber[6]" = "3"
			register "PcieRpMaxPayload[6]" = "RpMaxPayload_256"
		end
		device ref pcie_rp9	on
			# LAN
			register "PcieRpEnable[8]" = "1"
			register "PcieRpAdvancedErrorReporting[8]" = "1"
			register "PcieRpLtrEnable[8]" = "1"
			register "PcieRpClkReqSupport[8]" = "1"
			register "PcieRpClkReqNumber[8]" = "1"
			register "PcieRpMaxPayload[8]" = "RpMaxPayload_256"
		end
		device ref pcie_rp10	on
			# WLAN
			register "PcieRpEnable[9]" = "1"
			register "PcieRpAdvancedErrorReporting[9]" = "1"
			register "PcieRpLtrEnable[9]" = "1"
			register "PcieRpClkReqSupport[9]" = "1"
			register "PcieRpClkReqNumber[9]" = "2"
			register "PcieRpMaxPayload[9]" = "RpMaxPayload_256"
			# ASPM L0s is broken/unsupported on Qualcomm Atheros QCA6174 (AER: corrected errors)
			register "pcie_rp_aspm[9]" = "AspmL1"
		end
		# Although vendor's platform NVS area shows SCS is enabled, the SD card reader is actually connected over USB
		device ref lpc_espi	on
			register "lpc_iod" = "0x0010"	# 80h-81h; ComB: 2F8h-2FFh (COM 2)
			register "lpc_ioe" = "LPC_IOE_COMA_EN | LPC_IOE_COMB_EN | LPC_IOE_KBC_60_64
					| LPC_IOE_EC_62_66 | LPC_IOE_SUPERIO_2E_2F | LPC_IOE_EC_4E_4F"	# 82h-83h
			register "gen3_dec" = "0x00040069"	# 8Ch-8Fh; EC (sideband): Port 68h/6Ch
			register "gen4_dec" = "0x000c1201"	# 90h-93h; EC (index): Port 1200h

			# EC/KBC requires continuous mode
			register "serirq_mode" = "SERIRQ_CONTINUOUS"
		end
		device ref pmc		on
			# 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_C"	# 3:0 in pwrmbase+0120h
			register "gpe0_dw1" = "GPP_D"	# 7:4 in pwrmbase+0120h
			register "gpe0_dw2" = "GPP_E"	# 11:8 in pwrmbase+0120h

			# Enable S0ix
			register "s0ix_enable" = true

			register "PmConfigSlpS3MinAssert" = "SLP_S3_MIN_ASSERT_50MS"	# 11:10 in A4h-A7h
			register "PmConfigSlpS4MinAssert" = "SLP_S4_MIN_ASSERT_4S"	# 5:4 in A4h-A7h
			register "PmConfigSlpSusMinAssert" = "SLP_SUS_MIN_ASSERT_4S"	# 19:18 in pmbase+0018h
			register "PmConfigSlpAMinAssert" = "SLP_A_MIN_ASSERT_2S"	# 17:16 in pmbase+0018h
		end
		device ref hda		on
			register "DspEnable" = "1"
			# PchHdaDspEndpointDmic is only to be returned to reference code
			# DXE phase as HOB, used to select blob for NHLT
		end
		device ref smbus	on	end
		device ref fast_spi	on	end
	end
	chip drivers/crb
		device mmio 0xfed40000 on end
	end
end
