chip soc/intel/skylake

	# IGD Displays
	register "gfx" = "GMA_STATIC_DISPLAYS(0)"

	register "panel_cfg" = "{
		.up_delay_ms		=  100,
		.down_delay_ms		=  500,
		.cycle_delay_ms		=  500,
		.backlight_on_delay_ms	=    1,
		.backlight_off_delay_ms	=  200,
		.backlight_pwm_hz	= 1000,
	}"

	# Deep Sx states
	register "deep_s3_enable_ac" = "0"
	register "deep_s3_enable_dc" = "1"
	register "deep_s5_enable_ac" = "1"
	register "deep_s5_enable_dc" = "1"
	register "deep_sx_config" = "DSX_EN_LAN_WAKE_PIN | DSX_DIS_AC_PRESENT_PD"

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

	# Enable DPTF
	register "dptf_enable" = "1"

	# Enable S0ix
	register "s0ix_enable" = true

	# FSP Configuration
	register "DspEnable" = "1"
	register "IoBufferOwnership" = "3"
	register "ScsEmmcHs400Enabled" = "1"
	register "SkipExtGfxScan" = "1"
	register "SaGv" = "SaGv_Enabled"
	register "PmConfigSlpS3MinAssert" = "2"        # 50ms
	register "PmConfigSlpS4MinAssert" = "1"        # 1s
	register "PmConfigSlpSusMinAssert" = "1"       # 500ms
	register "PmConfigSlpAMinAssert" = "3"         # 2s

	# Intersil VR c-state issue workaround
	# send VR mailbox command for IA/GT/SA rails
	register "IslVrCmd" = "2"

	# VR Settings Configuration for 4 Domains
	#+----------------+-------+-------+-------+-------+
	#| Domain/Setting |  SA   |  IA   | GTUS  |  GTS  |
	#+----------------+-------+-------+-------+-------+
	#| Psi1Threshold  | 20A   | 20A   | 20A   | 20A   |
	#| Psi2Threshold  | 2A    | 2A    | 2A    | 2A    |
	#| 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 |
	#| AcLoadline     | 11    | 2.4   | 3.1   | 3.1   |
	#| DcLoadline     | 10    | 2.46  | 3.1   | 3.1   |
	#+----------------+-------+-------+-------+-------+
	register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
		.vr_config_enable = 1,
		.psi1threshold = VR_CFG_AMP(20),
		.psi2threshold = VR_CFG_AMP(2),
		.psi3threshold = VR_CFG_AMP(1),
		.psi3enable = 1,
		.psi4enable = 1,
		.imon_slope = 0x0,
		.imon_offset = 0x0,
		.voltage_limit = 1520,
		.ac_loadline = 1100,
		.dc_loadline = 1000,
	}"

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

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

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

	# Root port 4 (x1)
	#  PcieRpEnable:                 Enable root port
	#  PcieRpClkReqSupport:          Enable CLKREQ#
	#  PcieRpClkReqNumber:           Uses SRCCLKREQ1#
	#  PcieRpClkSrcNumber:           Uses 1
	#  PcieRpAdvancedErrorReporting: Enable Advanced Error Reporting
	#  PcieRpLtrEnable:              Enable Latency Tolerance Reporting Mechanism
	register "PcieRpEnable[3]" = "1"
	register "PcieRpClkReqSupport[3]" = "1"
	register "PcieRpClkReqNumber[3]" = "1"
	register "PcieRpClkSrcNumber[3]" = "1"
	register "PcieRpAdvancedErrorReporting[3]" = "1"
	register "PcieRpLtrEnable[3]" = "1"

	# Root port 5 (x4)
	#  PcieRpEnable:                 Enable root port
	#  PcieRpClkReqSupport:          Enable CLKREQ#
	#  PcieRpClkReqNumber:           Uses SRCCLKREQ3#
	#  PcieRpClkSrcNumber:           Uses 3
	#  PcieRpAdvancedErrorReporting: Enable Advanced Error Reporting
	#  PcieRpLtrEnable:              Enable Latency Tolerance Reporting Mechanism
	register "PcieRpEnable[4]" = "1"
	register "PcieRpClkReqSupport[4]" = "1"
	register "PcieRpClkReqNumber[4]" = "3"
	register "PcieRpClkSrcNumber[4]" = "3"
	register "PcieRpAdvancedErrorReporting[4]" = "1"
	register "PcieRpLtrEnable[4]" = "1"

	# Root port 9 (x2)
	#  PcieRpEnable:                 Enable root port
	#  PcieRpClkReqSupport:          Enable CLKREQ#
	#  PcieRpClkReqNumber:           Uses SRCCLKREQ2#
	#  PcieRpClkSrcNumber:           Uses 2
	#  PcieRpAdvancedErrorReporting: Enable Advanced Error Reporting
	#  PcieRpLtrEnable:              Enable Latency Tolerance Reporting Mechanism
	register "PcieRpEnable[8]" = "1"
	register "PcieRpClkReqSupport[8]" = "1"
	register "PcieRpClkReqNumber[8]" = "2"
	register "PcieRpClkSrcNumber[8]" = "2"
	register "PcieRpAdvancedErrorReporting[8]" = "1"
	register "PcieRpLtrEnable[8]" = "1"

	# Touchscreen
	register "i2c_voltage[0]" = "I2C_VOLTAGE_3V3"

	# Trackpad
	register "i2c_voltage[1]" = "I2C_VOLTAGE_3V3"

	# Pen
	register "i2c_voltage[2]" = "I2C_VOLTAGE_1V8"

	# Audio
	register "i2c_voltage[3]" = "I2C_VOLTAGE_1V8"

	# Intel Common SoC Config
	#+-------------------+---------------------------+
	#| Field             |  Value                    |
	#+-------------------+---------------------------+
	#| GSPI0             | cr50 TPM. Early init is   |
	#|                   | required to set up a BAR  |
	#|                   | for TPM communication     |
	#|                   | before memory is up       |
	#| I2C0              | Touchscreen               |
	#| I2C1              | Trackpad                  |
	#| I2C2              | Pen                       |
	#| I2C3              | Audio                     |
	#| pch_thermal_trip  | PCH Trip Temperature      |
	#+-------------------+---------------------------+
	register "common_soc_config" = "{
		.gspi[0] = {
			.speed_mhz = 1,
			.early_init = 1,
		},
		.i2c[0] = {
			.speed = I2C_SPEED_FAST,
			.speed_config[0] = {
				.speed = I2C_SPEED_FAST,
				.scl_lcnt = 185,
				.scl_hcnt = 90,
				.sda_hold = 36,
			},
		},
		.i2c[1] = {
			.speed = I2C_SPEED_FAST,
			.speed_config[0] = {
				.speed = I2C_SPEED_FAST,
				.scl_lcnt = 185,
				.scl_hcnt = 90,
				.sda_hold = 36,
			},
			.early_init = 1,
		},
		.i2c[2] = {
			.speed = I2C_SPEED_FAST,
			.speed_config[0] = {
				.speed = I2C_SPEED_FAST,
				.scl_lcnt = 185,
				.scl_hcnt = 100,
				.sda_hold = 36,
			},
		},
		.i2c[3] = {
			.speed = I2C_SPEED_FAST,
			.speed_config[0] = {
				.speed = I2C_SPEED_FAST,
				.scl_lcnt = 195,
				.scl_hcnt = 90,
				.sda_hold = 36,
			},
		},
		.pch_thermal_trip = 75,
	}"

	# Must leave UART0 enabled or SD/eMMC will not work as PCI
	register "SerialIoDevMode" = "{
		[PchSerialIoIndexI2C0]  = PchSerialIoPci,
		[PchSerialIoIndexI2C1]  = PchSerialIoPci,
		[PchSerialIoIndexI2C2]  = PchSerialIoPci,
		[PchSerialIoIndexI2C3]  = PchSerialIoPci,
		[PchSerialIoIndexI2C4]  = PchSerialIoDisabled,
		[PchSerialIoIndexI2C5]  = PchSerialIoDisabled,
		[PchSerialIoIndexSpi0]  = PchSerialIoPci,
		[PchSerialIoIndexSpi1]  = PchSerialIoPci,
		[PchSerialIoIndexUart0] = PchSerialIoSkipInit,
		[PchSerialIoIndexUart1] = PchSerialIoDisabled,
		[PchSerialIoIndexUart2] = PchSerialIoSkipInit,
	}"

	register "tcc_offset" = "3"     # TCC of 97C
	register "power_limits_config" = "{
		.psys_pmax = 101,
	}"

	device domain 0 on
		device ref system_agent		on  end
		device ref igpu			on  end
		device ref sa_thermal		on  end
		device ref imgu			off end
		device ref south_xhci		on
			register "usb2_ports" = "{
				[0] = USB2_PORT_LONG(OC0),	// Type-C Port 0
				[1] = USB2_PORT_LONG(OC1),	// Type-C Port 1
				[2] = USB2_PORT_MID(OC2),	// Type-A Port
				[3] = USB2_PORT_MID(OC_SKIP),	// Card reader
				[4] = USB2_PORT_MID(OC_SKIP),	// WiFi
				[5] = USB2_PORT_MID(OC_SKIP),	// Rear camera
				[6] = USB2_PORT_MID(OC_SKIP),	// Front camera
			}"

			register "usb3_ports" = "{
				[0] = USB3_PORT_DEFAULT(OC0),	// Type-C Port 0
				[1] = USB3_PORT_DEFAULT(OC1),	// Type-C Port 1
				[2] = USB3_PORT_DEFAULT(OC2),	// Type-A Port
				[3] = USB3_PORT_DEFAULT(OC_SKIP), // Card reader
			}"
		end
		device ref south_xdci		on  end
		device ref thermal		on  end
		device ref cio			off end
		device ref i2c0			on
			chip drivers/i2c/generic
				register "hid" = ""ELAN0001""
				register "desc" = ""ELAN Touchscreen""
				register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
				register "detect" = "1"
				register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)"
				register "reset_delay_ms" = "20"
				register "reset_off_delay_ms" = "2"
				register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)"
				register "enable_delay_ms" = "5"
				register "enable_off_delay_ms" = "100"
				register "has_power_resource" = "1"
				register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C3)"
				register "stop_off_delay_ms" = "2"
				device i2c 10 on end
			end
			chip drivers/i2c/generic
				register "hid" = ""RAYD0001""
				register "desc" = ""Raydium Touchscreen""
				register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
				register "detect" = "1"
				register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)"
				register "reset_delay_ms" = "1"
				register "reset_off_delay_ms" = "2"
				register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)"
				register "enable_delay_ms" = "10"
				register "enable_off_delay_ms" = "100"
				register "has_power_resource" = "1"
				register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C3)"
				register "stop_delay_ms" = "20"
				register "stop_off_delay_ms" = "2"
				device i2c 39 on end
			end
			chip drivers/i2c/hid
				register "generic.hid" = ""SYTS7817""
				register "generic.desc" = ""Synaptics Touchscreen""
				register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
				register "generic.detect" = "1"
				register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)"
				register "generic.enable_delay_ms" = "45"
				register "generic.has_power_resource" = "1"
				register "hid_desc_reg_offset" = "0x20"
				device i2c 20 on end
			end
			chip drivers/i2c/hid
				register "generic.hid" = ""GTCH7503""
				register "generic.desc" = ""G2TOUCH Touchscreen""
				register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E7_IRQ)"
				register "generic.detect" = "1"
				register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)"
				register "generic.reset_delay_ms" = "50"
				register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B4)"
				register "generic.enable_delay_ms" = "1"
				register "generic.has_power_resource" = "1"
				register "hid_desc_reg_offset" = "0x01"
				device i2c 40 on end
			end
		end
		device ref i2c1			on
			chip drivers/i2c/generic
				register "hid" = ""ELAN0000""
				register "desc" = ""ELAN Touchpad""
				register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E3_IRQ)"
				register "wake" = "GPE0_DW2_16"
				register "detect" = "1"
				device i2c 15 on end
			end
			chip drivers/i2c/hid
				register "generic.hid" = ""SYNA0000""
				register "generic.cid" = ""ACPI0C50""
				register "generic.desc" = ""Synaptics Touchpad""
				register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E3_IRQ)"
				register "generic.wake" = "GPE0_DW2_16"
				register "generic.detect" = "1"
				register "hid_desc_reg_offset" = "0x20"
				device i2c 0x2c on end
			end
		end
		device ref i2c2			on
			chip drivers/i2c/hid
				register "generic.hid" = ""WCOM005C""
				register "generic.desc" = ""WCOM Digitizer""
				register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D1_IRQ)"
				register "generic.detect" = "1"
				register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D3)"
				register "generic.reset_delay_ms" = "20"
				register "generic.has_power_resource" = "1"
				register "generic.wake" = "GPE0_DW2_01"
				register "hid_desc_reg_offset" = "0x1"
				device i2c 0x9 on end
			end
			chip drivers/generic/gpio_keys
				register "name" = ""PENH""
				register "gpio" = "ACPI_GPIO_INPUT_ACTIVE_HIGH(GPP_E8)"
				register "key.dev_name" = ""INST""
				register "key.linux_code" = "SW_PEN_INSERTED"
				register "key.linux_input_type" = "EV_SW"
				register "key.label" = ""pen_insert""
				register "key.wakeup_route" = "WAKEUP_ROUTE_DISABLED"
				device generic 0 on end
			end
		end
		device ref i2c3			on
			chip drivers/generic/max98357a
				register "hid" = ""MX98357A""
				register "sdmode_gpio" =  "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_A23)"
				register "sdmode_delay" = "5"
				device generic 0 on end
			end
			chip drivers/i2c/da7219
				register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D9_IRQ)"
				register "btn_cfg" = "50"
				register "mic_det_thr" = "200"
				register "jack_ins_deb" = "20"
				register "jack_det_rate" = ""32ms_64ms""
				register "jack_rem_deb" = "1"
				register "a_d_btn_thr" = "0xa"
				register "d_b_btn_thr" = "0x16"
				register "b_c_btn_thr" = "0x21"
				register "c_mic_btn_thr" = "0x3e"
				register "btn_avg" = "4"
				register "adc_1bit_rpt" = "1"
				register "micbias_lvl" = "2600"
				register "mic_amp_in_sel" = ""diff""
				device i2c 1A on end
			end
		end
		device ref heci1		on  end
		device ref heci2		off end
		device ref csme_ider		off end
		device ref csme_ktr		off end
		device ref heci3		off end
		device ref sata			off end
		device ref uart2		on  end
		device ref i2c5			off end
		device ref i2c4			off end
		device ref pcie_rp1		on  end
		device ref pcie_rp2		off end
		device ref pcie_rp3		off end
		device ref pcie_rp4		on
			chip drivers/wifi/generic
				register "wake" = "GPE0_DW2_22" # Wake pin = GPP_E22
				device pci 00.0 on end
			end
		end
		device ref pcie_rp5		on  end
		device ref pcie_rp6		off end
		device ref pcie_rp7		off end
		device ref pcie_rp8		off end
		device ref pcie_rp9		on  end
		device ref pcie_rp10		off end
		device ref pcie_rp11		off end
		device ref pcie_rp12		off end
		device ref uart0		on  end
		device ref uart1		off end
		device ref gspi0		on
			chip drivers/spi/acpi
				register "hid" = "ACPI_DT_NAMESPACE_HID"
				register "compat_string" = ""google,cr50""
				register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E0_IRQ)"
				device spi 0 on end
			end
		end
		device ref gspi1		on
			chip drivers/spi/acpi
				register "name" = ""CRFP""
				register "hid" = "ACPI_DT_NAMESPACE_HID"
				register "uid" = "1"
				register "compat_string" = ""google,cros-ec-spi""
				register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_B0_IRQ)"
				register "wake" = "GPE0_DW0_01" # GPP_B1
				device spi 0 on end
			end # FPMCU
		end
		device ref emmc 		on  end
		device ref sdio			off end
		device ref sdxc			off end
		device ref lpc_espi		on
			# EC host command ranges are in 0x800-0x8ff & 0x200-0x20f
			register "gen1_dec" = "0x00fc0801"
			register "gen2_dec" = "0x000c0201"
			# EC memory map range is 0x900-0x9ff
			register "gen3_dec" = "0x00fc0901"

			chip ec/google/chromeec
				device pnp 0c09.0 on end
			end
		end
		device ref p2sb			on  end
		device ref pmc			on  end
		device ref hda			on  end
		device ref smbus		on  end
		device ref fast_spi		on  end
		device ref gbe			off end
	end
end
