chip soc/intel/skylake

	# Enable deep Sx states
	register "deep_s3_enable_ac" = "0"
	register "deep_s3_enable_dc" = "0"
	register "deep_s5_enable_ac" = "1"
	register "deep_s5_enable_dc" = "1"
	register "deep_sx_config" = "DSX_EN_WAKE_PIN"

	register "eist_enable" = "1"

	register "serirq_mode" = "SERIRQ_CONTINUOUS"

	# Set the Thermal Control Circuit (TCC) activation value to 95C
	# 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" = "5" # TCC of 95C

	# 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_C"
	register "gpe0_dw1" = "GPP_D"
	register "gpe0_dw2" = "GPP_E"

	register "gen1_dec" = "0x007c0a01" # EC 0xa00-0xa7f
	register "gen2_dec" = "0x000c03e1" # COM3 port 0x3e0 - 0x3ef
	register "gen3_dec" = "0x00fc02e1" # COM2/4/5/6 ports 0x2e0 - 0x2ff

	# Disable DPTF
	register "dptf_enable" = "0"

	# FSP Configuration
	register "SataSalpSupport" = "0"
	register "SataPortsEnable" = "{
		[0] = 1,
		[1] = 1,
		[2] = 1,
	}"
	register "SataPortsDevSlp" = "{
		[0] = 0,
		[1] = 0,
		[2] = 0,
	}"
	register "SataSpeedLimit" = "2"
	register "DspEnable" = "1"
	register "IoBufferOwnership" = "0"
	register "SkipExtGfxScan" = "1"
	register "SaGv" = "SaGv_Enabled"
	register "PmConfigSlpS3MinAssert" = "2"        # 50ms
	register "PmConfigSlpS4MinAssert" = "1"        # 1s
	register "PmConfigSlpSusMinAssert" = "3"       # 500ms
	register "PmConfigSlpAMinAssert" = "3"         # 2s

	# VR Settings Configuration for 4 Domains
	#+----------------+-------+-------+-------------+-------+
	#| Domain/Setting |  SA   |  IA   | GT-Unsliced |  GT   |
	#+----------------+-------+-------+-------------+-------+
	#| Psi1Threshold  | 20A   | 20A   | 20A         | 20A   |
	#| Psi2Threshold  | 4A    | 5A    | 5A          | 5A    |
	#| Psi3Threshold  | 1A    | 1A    | 1A          | 1A    |
	#| Psi3Enable     | 1     | 1     | 1           | 1     |
	#| Psi4Enable     | 1     | 1     | 1           | 1     |
	#| ImonSlope      | 0     | 0     | 0           | 0     |
	#| ImonOffset     | 0     | 0     | 0           | 0     |
	#| VrVoltageLimit | 1.52V | 1.52V | 1.52V       | 1.52V |
	#+----------------+-------+-------+-------------+-------+
	register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
		.vr_config_enable = 1,
		.psi1threshold = VR_CFG_AMP(20),
		.psi2threshold = VR_CFG_AMP(4),
		.psi3threshold = VR_CFG_AMP(1),
		.psi3enable = 1,
		.psi4enable = 1,
		.imon_slope = 0x0,
		.imon_offset = 0x0,
		.voltage_limit = 1520,
	}"

	register "domain_vr_config[VR_IA_CORE]" = "{
		.vr_config_enable = 1,
		.psi1threshold = VR_CFG_AMP(20),
		.psi2threshold = VR_CFG_AMP(5),
		.psi3threshold = VR_CFG_AMP(1),
		.psi3enable = 1,
		.psi4enable = 1,
		.imon_slope = 0x0,
		.imon_offset = 0x0,
		.voltage_limit = 1520,
	}"

	register "domain_vr_config[VR_GT_UNSLICED]" = "{
		.vr_config_enable = 1,
		.psi1threshold = VR_CFG_AMP(20),
		.psi2threshold = VR_CFG_AMP(5),
		.psi3threshold = VR_CFG_AMP(1),
		.psi3enable = 1,
		.psi4enable = 1,
		.imon_slope = 0x0,
		.imon_offset = 0x0,
		.voltage_limit = 1520,
	}"

	register "domain_vr_config[VR_GT_SLICED]" = "{
		.vr_config_enable = 1,
		.psi1threshold = VR_CFG_AMP(20),
		.psi2threshold = VR_CFG_AMP(5),
		.psi3threshold = VR_CFG_AMP(1),
		.psi3enable = 1,
		.psi4enable = 1,
		.imon_slope = 0x0,
		.imon_offset = 0x0,
		.voltage_limit = 1520,
	}"

	register "PcieRpEnable[2]"  = "1"
	register "PcieRpEnable[3]"  = "1"
	register "PcieRpEnable[4]"  = "1"
	register "PcieRpEnable[8]"  = "1"
	register "PcieRpEnable[9]"  = "1"
	register "PcieRpEnable[10]" = "1"
	register "PcieRpEnable[11]" = "1"

	register "PcieRpClkSrcNumber[0]"  = "0"
	register "PcieRpClkSrcNumber[3]"  = "1"
	register "PcieRpClkSrcNumber[4]"  = "2"
	register "PcieRpClkSrcNumber[8]"  = "3"
	register "PcieRpClkSrcNumber[9]"  = "3"
	register "PcieRpClkSrcNumber[10]" = "3"
	register "PcieRpClkSrcNumber[11]" = "3"

	register "usb2_ports" = "{
		[0] = USB2_PORT_MID(OC_SKIP),	/* Type-A Port (right) */
		[1] = USB2_PORT_MID(OC_SKIP),	/* Type-A Port (right) */
		[2] = USB2_PORT_MID(OC_SKIP),	/* WiFi */
		[3] = USB2_PORT_MID(OC_SKIP),	/* F_USB3 header */
		[4] = USB2_PORT_MID(OC_SKIP),	/* F_USB3 header */
		[5] = USB2_PORT_MID(OC_SKIP),	/* Type-A Port (left) */
		[6] = USB2_PORT_MID(OC_SKIP),	/* Type-A Port (left) */
		[7] = USB2_PORT_MID(OC_SKIP),	/* GL850G for F_USB1 and F_USB2 headers */
	}"

	register "usb3_ports" = "{
		[0] = USB3_PORT_DEFAULT(OC_SKIP),	/* Type-A Port (right) */
		[1] = USB3_PORT_DEFAULT(OC_SKIP),	/* Type-A Port (right) */
		[2] = USB3_PORT_DEFAULT(OC_SKIP),	/* F_USB3 header */
		[3] = USB3_PORT_DEFAULT(OC_SKIP),	/* F_USB3 header */
	}"

	# PL2 override 25W
	register "power_limits_config" = "{
		.tdp_pl2_override = 25,
	}"

	# Send an extra VR mailbox command for the PS4 exit issue
	register "SendVrMbxCmd" = "2"

	device domain 0 on
		device ref igpu		on  end
		device ref sa_thermal	on  end
		device ref south_xhci	on  end
		device ref south_xdci	on  end
		device ref thermal	on  end
		device ref heci1	on  end
		device ref sata		on  end
		device ref pcie_rp3	on  end
		device ref pcie_rp5	on
			smbios_slot_desc "SlotTypePciExpressMini52pinWithoutBSKO"
					 "SlotLengthOther" "MPCIE_WIFI1" "SlotDataBusWidth1X"
		end
		device ref pcie_rp6	on  end
		device ref pcie_rp9	on
			smbios_slot_desc "SlotTypeM2Socket3" "SlotLengthOther"
					 "SSD_M.2 2242/2280" "SlotDataBusWidth4X"
		end
		device ref pcie_rp10	on  end
		device ref pcie_rp11	on  end
		device ref pcie_rp12	on  end
		device ref lpc_espi	on
			chip drivers/pc80/tpm
				device pnp 0c31.0 on end
			end
			chip superio/ite/it8786e
				register "TMPIN1.mode"   = "THERMAL_PECI"
				register "TMPIN1.offset" = "100"
				register "TMPIN1.min"    = "128"
				register "TMPIN2.mode"   = "THERMAL_RESISTOR"
				register "TMPIN2.min"    = "128"
				register "TMPIN3.mode"   = "THERMAL_MODE_DISABLED"
				register "ec.vin_mask"   = "VIN_ALL"
				# FAN1 is CPU fan (on board)
				register "FAN1.mode" = "FAN_SMART_AUTOMATIC"
				register "FAN1.smart.tmpin"     = " 1"
				register "FAN1.smart.tmp_off"   = "35"
				register "FAN1.smart.tmp_start" = "60"
				register "FAN1.smart.tmp_full"  = "85"
				register "FAN1.smart.tmp_delta" = " 2"
				register "FAN1.smart.pwm_start" = "20"
				register "FAN1.smart.slope"     = "24"
				# FAN2 is system fan (4 pin connector populated)
				#register "FAN2.mode"           = "FAN_MODE_OFF"
				# FAN3 PWM is used for LVDS backlight control
				#register "FAN3.mode"           = "FAN_MODE_OFF"

				device pnp 2e.1 on	# COM 1
					io 0x60 = 0x3f8
					irq 0x70 = 4
				end
				device pnp 2e.2 on	# COM 2
					io 0x60 = 0x2f8
					irq 0x70 = 3
				end
				device pnp 2e.3 on	# Printer Port
					io 0x60 = 0x378
					io 0x62 = 0x778
					irq 0x70 = 5
					drq 0x74 = 3
				end
				device pnp 2e.4 on	# Environment Controller
					io 0x60 = 0xa40
					io 0x62 = 0xa30
					irq 0x70 = 9
				end
				device pnp 2e.5 on	# Keyboard
					io 0x60 = 0x60
					io 0x62 = 0x64
					irq 0x70 = 1
				end
				device pnp 2e.6 on	# Mouse
					irq 0x70 = 12
				end
				device pnp 2e.7 off	# GPIO
				end
				device pnp 2e.8 on	# COM 3
					io 0x60 = 0x3e8
					irq 0x70 = 3
				end
				device pnp 2e.9 on	# COM 4
					io 0x60 = 0x2e8
					irq 0x70 = 4
				end
				device pnp 2e.a off end	# CIR
				device pnp 2e.b on	# COM 5
					io 0x60 = 0x2f0
					irq 0x70 = 3
				end
				device pnp 2e.c on	# COM 6
					io 0x60 = 0x2e0
					irq 0x70 = 4
				end
			end
		end
		device ref hda		on  end
		device ref smbus	on  end
		device ref fast_spi	on  end
	end
end
