fw_config
	field DB_USB 0 3
		option USB_ABSENT 0
		option USB4_GEN2 1
		option USB3_ACTIVE 2
		option USB4_GEN3 3
		option USB3_PASSIVE 4
		option USB3_NO_A 5
		option USB3_NO_C 6
	end
	field THERMAL 4 7 end
	field AUDIO 8 10
		option NONE 0
		option MAX98357_ALC5682I_I2S 1
		option MAX98373_ALC5682I_I2S 2
		option MAX98373_ALC5682_SNDW 3
		option MAX98373_ALC5682I_I2S_UP4 4
		option MAX98360_ALC5682I_I2S 5
	end
	field TABLETMODE 11
		option TABLETMODE_DISABLED 0
		option TABLETMODE_ENABLED 1
	end
	field DB_LTE 12 13
		option LTE_ABSENT 0
		option LTE_PRESENT 1
	end
	field KB_BL 14
		option KB_BL_ABSENT 0
		option KB_BL_PRESENT 1
	end
	field NUMPAD 15
		option NUMPAD_ABSENT 0
		option NUMPAD_PRESENT 1
	end
	field DB_SD 16 19
		option SD_ABSENT 0
		option SD_GL9755S 1
		option SD_RTS5261 2
	end
end

chip soc/intel/tigerlake

	device cpu_cluster 0 on
		device lapic 0 on end
	end

	# 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 "pmc_gpe0_dw0" = "GPP_C"
	register "pmc_gpe0_dw1" = "GPP_D"
	register "pmc_gpe0_dw2" = "GPP_E"

	# Enable heci communication
	register "HeciEnabled" = "1"

	# FSP configuration
	register "SaGv" = "SaGv_Enabled"
	register "SmbusEnable" = "0"

	register "usb2_ports[0]" = "USB2_PORT_MID(OC_SKIP)"	# Type-A Port A0
	register "usb2_ports[1]" = "USB2_PORT_MID(OC_SKIP)"	# Type-A Port A1
	register "usb2_ports[2]" = "USB2_PORT_MID(OC_SKIP)"	# M.2 WWAN
	register "usb2_ports[3]" = "USB2_PORT_MID(OC_SKIP)"	# Type-A / Type-C Cl
	register "usb2_ports[4]" = "USB2_PORT_MID(OC_SKIP)"	# M.2 Camera
	register "usb2_ports[8]" = "USB2_PORT_MID(OC_SKIP)"	# Type-A / Type-C Co
	register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)"	# M.2 Bluetooth

	register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC1)"	# USB3/2 Type A port A0
	register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC2)"	# USB3/2 Type A port A1
	register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC_SKIP)"	# M.2 WWAN
	register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)"	# M.2 Camera

	# 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"

	# Enable NVMe PCIE 9 using clk 0
	register "PcieRpEnable[8]" = "1"
	register "PcieRpLtrEnable[8]" = "1"
	register "PcieClkSrcUsage[0]" = "8"
	register "PcieClkSrcClkReq[0]" = "0"

	# Enable Optane PCIE 11 using clk 0
	register "PcieRpEnable[10]" = "1"
	register "PcieRpLtrEnable[10]" = "1"
	register "HybridStorageMode" = "0"

	# Enable SD Card PCIE 8 using clk 3
	register "PcieRpEnable[7]" = "1"
	register "PcieRpLtrEnable[7]" = "1"
	register "PcieRpHotPlug[7]" = "1"
	register "PcieClkSrcUsage[3]" = "7"
	register "PcieClkSrcClkReq[3]" = "3"

	# Enable WLAN PCIE 7 using clk 1
	register "PcieRpEnable[6]" = "1"
	register "PcieRpLtrEnable[6]" = "1"
	register "PcieClkSrcUsage[1]" = "6"
	register "PcieClkSrcClkReq[1]" = "1"

	# Mark SRCCLKREQ pins as unused that are routed for a Non-Clkreq functionality
	register "PcieClkSrcUsage[2]" = "PCIE_CLK_NOTUSED"
	register "PcieClkSrcUsage[4]" = "PCIE_CLK_NOTUSED"
	register "PcieClkSrcUsage[5]" = "PCIE_CLK_NOTUSED"
	register "PcieClkSrcUsage[6]" = "PCIE_CLK_NOTUSED"

	# Enable SATA
	register "SataEnable" = "1"
	register "SataMode" = "0"
	register "SataSalpSupport" = "1"
	register "SataPortsEnable[0]" = "0"
	register "SataPortsEnable[1]" = "1"
	register "SataPortsDevSlp[0]" = "0"
	register "SataPortsDevSlp[1]" = "1"
	register "SataPortsEnableDitoConfig[1]" = "1"

	register "SerialIoI2cMode" = "{
		[PchSerialIoIndexI2C0]  = PchSerialIoPci,
		[PchSerialIoIndexI2C1]  = PchSerialIoPci,
		[PchSerialIoIndexI2C2]  = PchSerialIoPci,
		[PchSerialIoIndexI2C3]  = PchSerialIoPci,
		[PchSerialIoIndexI2C4]  = PchSerialIoDisabled,
		[PchSerialIoIndexI2C5]  = PchSerialIoPci,
	}"

	register "SerialIoGSpiMode" = "{
		[PchSerialIoIndexGSPI0] = PchSerialIoPci,
		[PchSerialIoIndexGSPI1] = PchSerialIoPci,
		[PchSerialIoIndexGSPI2] = PchSerialIoDisabled,
		[PchSerialIoIndexGSPI3] = PchSerialIoDisabled,
	}"

	register "SerialIoGSpiCsMode" = "{
		[PchSerialIoIndexGSPI0] = 1,
		[PchSerialIoIndexGSPI1] = 1,
		[PchSerialIoIndexGSPI2] = 0,
		[PchSerialIoIndexGSPI3] = 0,
	}"

	register "SerialIoGSpiCsState" = "{
		[PchSerialIoIndexGSPI0] = 1,
		[PchSerialIoIndexGSPI1] = 1,
		[PchSerialIoIndexGSPI2] = 0,
		[PchSerialIoIndexGSPI3] = 0,
	}"

	register "SerialIoUartMode" = "{
		[PchSerialIoIndexUART0] = PchSerialIoPci,
		[PchSerialIoIndexUART1] = PchSerialIoDisabled,
		[PchSerialIoIndexUART2] = PchSerialIoDisabled,
	}"

	# Set the minimum assertion width
	# PchPmSlpS3MinAssert:
	#	- 1: 60us
	#	- 2: 1ms
	#	- 3: 50ms
	#	- 4: 2s
	register "PchPmSlpS3MinAssert"  = "3"  # 50ms
	# PchPmSlpS4MinAssert:
	#	- 1 = 1s
	#	- 2 = 2s
	#	- 3 = 3s
	#	- 4 = 4s
	register "PchPmSlpS4MinAssert"  = "1"  # 1s
	# PchPmSlpSusMinAssert:
	#	- 1 = 0ms
	#	- 2 = 500ms
	#	- 3 = 1s
	#	- 4 = 4s
	register "PchPmSlpSusMinAssert" = "3"  # 1s
	# PchPmSlpAMinAssert
	#	- 1 = 0ms
	#	- 2 = 4s
	#	- 3 = 98ms
	#	- 4 = 2s
	register "PchPmSlpAMinAssert"   = "3"  # 98ms

	# NOTE: Duration programmed in the below register should never be smaller than the
	# stretch duration programmed in the following registers -
	#	- GEN_PMCON_A.SLP_S3_MIN_ASST_WDTH (PchPmSlpS3MinAssert)
	#	- GEN_PMCON_A.S4MAW (PchPmSlpS4MinAssert)
	#	- PM_CFG.SLP_A_MIN_ASST_WDTH (PchPmSlpAMinAssert)
	#	- PM_CFG.SLP_LAN_MIN_ASST_WDTH
	register "PchPmPwrCycDur" = "1"       # 1s

	# HD Audio
	register "PchHdaDspEnable" = "1"
	register "PchHdaAudioLinkHdaEnable" = "0"
	register "PchHdaAudioLinkDmicEnable[0]" = "0"
	register "PchHdaAudioLinkDmicEnable[1]" = "0"
	register "PchHdaAudioLinkSspEnable[0]" = "0"
	register "PchHdaAudioLinkSspEnable[1]" = "0"
	register "PchHdaAudioLinkSndwEnable[0]" = "0"
	register "PchHdaAudioLinkSndwEnable[1]" = "0"

	# TCSS USB3
	register "TcssXhciEn" = "1"
	register "TcssAuxOri" = "0"
	register "IomTypeCPortPadCfg[0]" = "0x09000000"
	register "IomTypeCPortPadCfg[1]" = "0x09000000"
	register "IomTypeCPortPadCfg[2]" = "0x09000000"
	register "IomTypeCPortPadCfg[3]" = "0x09000000"
	register "IomTypeCPortPadCfg[4]" = "0x09000000"
	register "IomTypeCPortPadCfg[5]" = "0x09000000"
	register "IomTypeCPortPadCfg[6]" = "0x09000000"
	register "IomTypeCPortPadCfg[7]" = "0x09000000"

	# DP port
	register "DdiPortAConfig" = "1"	# eDP
	register "DdiPortBConfig" = "0"

	register "DdiPortAHpd" = "1"
	register "DdiPortBHpd" = "1"
	register "DdiPortCHpd" = "0"
	register "DdiPort1Hpd" = "1"
	register "DdiPort2Hpd" = "1"
	register "DdiPort3Hpd" = "0"
	register "DdiPort4Hpd" = "0"

	register "DdiPortADdc" = "0"
	register "DdiPortBDdc" = "1"
	register "DdiPortCDdc" = "0"
	register "DdiPort1Ddc" = "0"
	register "DdiPort2Ddc" = "0"
	register "DdiPort3Ddc" = "0"
	register "DdiPort4Ddc" = "0"

	# Enable S0ix
	register "s0ix_enable" = "1"

	# Enable DPTF
	register "dptf_enable" = "1"

	register "power_limits_config[POWER_LIMITS_U_2_CORE]" = "{
		.tdp_pl1_override = 15,
		.tdp_pl2_override = 38,
		.tdp_pl4 = 71,
	}"
	register "power_limits_config[POWER_LIMITS_U_4_CORE]" = "{
		.tdp_pl1_override = 15,
		.tdp_pl2_override = 60,
		.tdp_pl4 = 105,
	}"
	register "power_limits_config[POWER_LIMITS_Y_2_CORE]" = "{
		.tdp_pl1_override = 9,
		.tdp_pl2_override = 35,
		.tdp_pl4 = 66,
	}"
	register "power_limits_config[POWER_LIMITS_Y_4_CORE]" = "{
		.tdp_pl1_override = 9,
		.tdp_pl2_override = 40,
		.tdp_pl4 = 83,
	}"

	register "Device4Enable" = "1"

	register "tcc_offset" = "10"     # TCC of 90

	register "CnviBtAudioOffload" = "FORCE_ENABLE"

	# Intel Common SoC Config
	#+-------------------+---------------------------+
	#| Field             |  Value                    |
	#+-------------------+---------------------------+
	#| chipset_lockdown  | CHIPSET_LOCKDOWN_COREBOOT |
	#| GSPI0             | cr50 TPM. Early init is   |
	#|                   | required to set up a BAR  |
	#|                   | for TPM communication     |
	#|                   | before memory is up       |
	#| GSPI1             | Fingerprint MCU           |
	#| I2C0              | Audio                     |
	#| I2C1              | Touchscreen               |
	#| I2C2              | WLAN, SAR0                |
	#| I2C3              | Camera, SAR1              |
	#| I2C5              | Trackpad                  |
	#+-------------------+---------------------------+
	register "common_soc_config" = "{
		.chipset_lockdown = CHIPSET_LOCKDOWN_COREBOOT,
		.gspi[0] = {
			.speed_mhz = 1,
			.early_init = 1,
		},
		.i2c[0] = {
			.speed = I2C_SPEED_FAST,
		},
		.i2c[1] = {
			.speed = I2C_SPEED_FAST,
		},
		.i2c[2] = {
			.speed = I2C_SPEED_FAST,
		},
		.i2c[3] = {
			.speed = I2C_SPEED_FAST,
		},
		.i2c[5] = {
			.speed = I2C_SPEED_FAST,
		},
	}"

	register "ext_fivr_settings" = "{
		.configure_ext_fivr = 1,
		.v1p05_enable_bitmap = FIVR_ENABLE_ALL_SX,
		.vnn_enable_bitmap = FIVR_ENABLE_ALL_SX,
		.v1p05_supported_voltage_bitmap = FIVR_VOLTAGE_NORMAL |
						  FIVR_VOLTAGE_MIN_ACTIVE |
						  FIVR_VOLTAGE_MIN_RETENTION,
		.vnn_supported_voltage_bitmap = FIVR_VOLTAGE_NORMAL |
						FIVR_VOLTAGE_MIN_ACTIVE |
						FIVR_VOLTAGE_MIN_RETENTION,
		.v1p05_icc_max_ma = 500,
		.vnn_sx_voltage_mv = 1250,
	}"

	device domain 0 on
		device ref igpu on end
		device ref dptf on
			# Default DPTF Policy for all Volteer boards if not overridden
			chip drivers/intel/dptf
				## Active Policy
				register "policies.active" = "{
					[0] = {.target = DPTF_CPU,
					       .thresholds = {TEMP_PCT(85, 90),
							      TEMP_PCT(80, 69),
							      TEMP_PCT(75, 56),
							      TEMP_PCT(70, 46),
							      TEMP_PCT(65, 36),}},
					[1] = {.target = DPTF_TEMP_SENSOR_0,
					       .thresholds = {TEMP_PCT(50, 90),
							      TEMP_PCT(47, 69),
							      TEMP_PCT(45, 56),
							      TEMP_PCT(42, 46),
							      TEMP_PCT(39, 36),}},
					[2] = {.target = DPTF_TEMP_SENSOR_1,
					       .thresholds = {TEMP_PCT(50, 90),
							      TEMP_PCT(47, 69),
							      TEMP_PCT(45, 56),
							      TEMP_PCT(42, 46),
							      TEMP_PCT(39, 36),}},
					[3] = {.target = DPTF_TEMP_SENSOR_2,
					       .thresholds = {TEMP_PCT(50, 90),
							      TEMP_PCT(47, 69),
							      TEMP_PCT(45, 56),
							      TEMP_PCT(42, 46),
							      TEMP_PCT(39, 36),}},
					[4] = {.target = DPTF_TEMP_SENSOR_3,
					       .thresholds = {TEMP_PCT(50, 90),
							      TEMP_PCT(47, 69),
							      TEMP_PCT(45, 56),
							      TEMP_PCT(42, 46),
							      TEMP_PCT(39, 36),}}}"

				## Passive Policy
				register "policies.passive" = "{
					[0] = DPTF_PASSIVE(CPU,	CPU,	       95, 5000),
					[1] = DPTF_PASSIVE(CPU,	TEMP_SENSOR_1, 65, 6000),
					[2] = DPTF_PASSIVE(CHARGER,	TEMP_SENSOR_0, 65, 6000),
					[3] = DPTF_PASSIVE(CPU,	TEMP_SENSOR_2, 65, 6000),
					[4] = DPTF_PASSIVE(CPU,	TEMP_SENSOR_3, 65, 6000)}"

				## Critical Policy
				register "policies.critical" = "{
					[0] = DPTF_CRITICAL(CPU,	       105, SHUTDOWN),
					[1] = DPTF_CRITICAL(TEMP_SENSOR_0,	75, SHUTDOWN),
					[2] = DPTF_CRITICAL(TEMP_SENSOR_1,	75, SHUTDOWN),
					[3] = DPTF_CRITICAL(TEMP_SENSOR_2,	75, SHUTDOWN),
					[4] = DPTF_CRITICAL(TEMP_SENSOR_3,	75, SHUTDOWN)}"

				## Power Limits Control
				# 3-15W PL1 in 200mW increments, avg over 28-32s interval
				# PL2 ranges from 15 to 60W, avg over 28-32s interval
				register "controls.power_limits" = "{
					.pl1 = {.min_power = 3000,
						.max_power = 15000,
						.time_window_min = 28 * MSECS_PER_SEC,
						.time_window_max = 32 * MSECS_PER_SEC,
						.granularity = 200,},
					.pl2 = {.min_power = 15000,
						.max_power = 60000,
						.time_window_min = 28 * MSECS_PER_SEC,
						.time_window_max = 32 * MSECS_PER_SEC,
						.granularity = 1000,}}"

				## Charger Performance Control (Control, mA)
				register "controls.charger_perf" = "{
					[0] = { 255, 1700 },
					[1] = {  24, 1500 },
					[2] = {  16, 1000 },
					[3] = {   8,  500 }}"

				## Fan Performance Control (Percent, Speed, Noise, Power)
				register "controls.fan_perf" = "{
					[0] = {  90, 6700, 220, 2200, },
					[1] = {  80, 5800, 180, 1800, },
					[2] = {  70, 5000, 145, 1450, },
					[3] = {  60, 4900, 115, 1150, },
					[4] = {  50, 3838,  90,  900, },
					[5] = {  40, 2904,  55,  550, },
					[6] = {  30, 2337,  30,  300, },
					[7] = {  20, 1608,  15,  150, },
					[8] = {  10,  800,  10,  100, },
					[9] = {   0,    0,   0,   50, }}"

				# Fan options
				register "options.fan.fine_grained_control" = "1"
				register "options.fan.step_size" = "2"

				device generic 0 on end
			end
		end # DPTF				0x9A03
		device ref tbt_pcie_rp0 on
			probe DB_USB USB4_GEN2
			probe DB_USB USB4_GEN3
		end
		device ref tbt_pcie_rp1 on
			probe DB_USB USB4_GEN2
			probe DB_USB USB4_GEN3
		end
		device ref tbt_dma0 on
			probe DB_USB USB4_GEN2
			probe DB_USB USB4_GEN3
			chip drivers/intel/usb4/retimer
				register "power_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_H10)"
				device generic 0 on end
			end
		end
		device ref gna on end
		device ref north_xhci on end
		device ref cnvi_bt on end
		device ref south_xhci on end
		device ref shared_ram on end
		device ref cnvi_wifi on
			chip drivers/wifi/generic
				register "wake" = "GPE0_PME_B0"
				device generic 0 on end
			end
		end
		device ref heci1 on end
		device ref sata on end
		device ref pcie_rp1 on end
		device ref pcie_rp7 on end
		device ref pcie_rp8 on end
		device ref pcie_rp9 on end
		device ref pcie_rp11 on end
		device ref uart0 on 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_C21_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_gpio" = "ACPI_GPIO_IRQ_LEVEL_LOW_WAKE(GPP_C20)"
				device spi 0 on end
			end # FPMCU
		end
		device ref pch_espi on
			chip ec/google/chromeec
				device pnp 0c09.0 on end
			end
		end
		device ref hda on end
	end
end
