fw_config
	field AUDIO_CODEC_SOURCE 41 43
		option AUDIO_CODEC_ALC5682I_VS  0
		option AUDIO_CODEC_ALC5682_VD   1
	end
end


chip soc/intel/jasperlake

	# 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       |
	#| I2C4              | Audio                     |
	#+-------------------+---------------------------+
	register "common_soc_config" = "{
		.gspi[0] = {
			.speed_mhz = 1,
			.early_init = 1,
		},
		.i2c[4] = {
			.speed_config[0] = {
				.speed = I2C_SPEED_FAST,
				.scl_lcnt = 190,
				.scl_hcnt = 100,
				.sda_hold = 40,
			}
		},
	}"

	# Power limit config
	register "power_limits_config[JSL_N4500_6W_CORE]" = "{
		.tdp_pl1_override = 6,
		.tdp_pl2_override = 20,
		.tdp_pl4 = 60,
	}"

	register "power_limits_config[JSL_N5100_6W_CORE]" = "{
		.tdp_pl1_override = 6,
		.tdp_pl2_override = 20,
		.tdp_pl4 = 60,
	}"

	# Enable Root Port 3 (index 2) for LAN
	# External PCIe port 7 is mapped to PCIe Root Port 3
	register "PcieRpEnable[2]" = "1"
	register "PcieClkSrcUsage[4]" = "2"

	# Enable Root Port 7 (index 6) for WLAN
	# External PCIe port 3 is mapped to PCIe Root Port 7
	register "PcieRpEnable[6]" = "1"
	register "PcieClkSrcUsage[3]" = "6"

	# Disable PCIe Root Port 8
	register "PcieRpEnable[7]" = "0"

	# Audio related configurations
	register "PchHdaAudioLinkDmicEnable[0]" = "0"
	register "PchHdaAudioLinkDmicEnable[1]" = "0"

	# Disable SD card
	register "sdcard_cd_gpio" = "0"
	register "SdCardPowerEnableActiveHigh" = "0"

	# Disable eDP on port A
	register "DdiPortAConfig" = "0"

	# Enable HPD and DDC for DDI port A
	register "DdiPortAHpd" = "1"
	register "DdiPortADdc" = "1"

	# Does not support external vnn power rail
	register "disable_external_bypass_vr" = "1"

	# USB Port Configuration
	register "usb2_ports[1]" = "USB2_PORT_MID(OC_SKIP)"	# Type-A Port A0
	register "usb2_ports[2]" = "USB2_PORT_MID(OC_SKIP)"	# Type-A Port A1
	register "usb2_ports[3]" = "USB2_PORT_MID(OC_SKIP)"	# Type-C Port C1

	device domain 0 on
		device pci 04.0 on
			chip drivers/intel/dptf
				## Passive Policy
				register "policies.passive" = "{
					[0] = DPTF_PASSIVE(CPU, CPU,           95, 10000),
					[1] = DPTF_PASSIVE(CPU, TEMP_SENSOR_0, 90, 60000),
					[2] = DPTF_PASSIVE(CPU, TEMP_SENSOR_1, 90, 60000),
					[3] = DPTF_PASSIVE(CPU, TEMP_SENSOR_2, 90, 15000)
				}"

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

				register "controls.power_limits" = "{
					.pl1 = {
						.min_power = 3000,
						.max_power = 6000,
						.time_window_min = 1 * MSECS_PER_SEC,
						.time_window_max = 1 * MSECS_PER_SEC,
						.granularity = 100,
					},
					.pl2 = {
						.min_power = 20000,
						.max_power = 20000,
						.time_window_min = 1 * MSECS_PER_SEC,
						.time_window_max = 1 * MSECS_PER_SEC,
						.granularity = 1000,
					}
				}"

				register "options.tsr[0].desc" = ""Memory""
				register "options.tsr[1].desc" = ""Power""
				register "options.tsr[2].desc" = ""Chassis""

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

				device generic 0 on end
			end
		end # SA Thermal device
		device pci 14.0 on
			chip drivers/usb/acpi
				# TODO (b/264960828) verify PLD values
				device usb 0.0 on
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-C Port C0""
						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
						register "group" = "ACPI_PLD_GROUP(1, 1)"
						device usb 2.0 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Port A0""
						register "type" = "UPC_TYPE_A"
						register "group" = "ACPI_PLD_GROUP(1, 2)"
						device usb 2.1 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-A Port A1""
						register "type" = "UPC_TYPE_A"
						register "group" = "ACPI_PLD_GROUP(1, 3)"
						device usb 2.2 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB2 Type-C Port C1""
						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
						register "group" = "ACPI_PLD_GROUP(1, 4)"
						device usb 2.3 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-C Port C0""
						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
						register "group" = "ACPI_PLD_GROUP(1, 1)"
						device usb 3.0 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-C Port C1""
						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
						register "group" = "ACPI_PLD_GROUP(1, 2)"
						device usb 3.1 off end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Port A0""
						register "type" = "UPC_TYPE_USB3_A"
						register "group" = "ACPI_PLD_GROUP(1, 3)"
						device usb 3.2 on end
					end
					chip drivers/usb/acpi
						register "desc" = ""USB3 Type-A Port A1""
						register "type" = "UPC_TYPE_USB3_A"
						register "group" = "ACPI_PLD_GROUP(1, 4)"
						device usb 3.3 on end
					end
				end
			end
		end # USB xHCI
		device pci 15.0 off end # I2C 0
		device pci 15.1 off end # I2C 1
		device pci 15.2 off end # I2C 2
		device pci 15.3 off end # I2C 3
		device pci 19.0 on
			chip drivers/i2c/generic
				register "hid" = ""10EC5682""
				register "name" = ""RT58""
				register "desc" = ""Realtek RT5682""
				register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_D16)"
				register "property_count" = "1"
				register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
				register "property_list[0].name" = ""realtek,jd-src""
				register "property_list[0].integer" = "1"
				device i2c 1a on
					probe AUDIO_CODEC_SOURCE AUDIO_CODEC_ALC5682_VD
				end
			end
			chip drivers/i2c/generic
				register "hid" = ""RTL5682""
				register "name" = ""RT58""
				register "desc" = ""Realtek RT5682""
				register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_D16)"
				register "property_count" = "1"
				register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
				register "property_list[0].name" = ""realtek,jd-src""
				register "property_list[0].integer" = "1"
				device i2c 1a on
					probe AUDIO_CODEC_SOURCE AUDIO_CODEC_ALC5682I_VS
				end
			end
		end # I2C 4
		device pci 1c.2 on
			chip drivers/net
				register "customized_leds" = "0x07af"
				register "wake" = "GPE0_DW0_03" # GPP_B3
				register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D4)"
				register "device_index" = "0"
				device pci 00.0 on end
			end
		end # PCI Express Root Port 3 - RTL8111H LAN
		device pci 1c.6 on
			chip drivers/wifi/generic
				register "wake" = "GPE0_DW2_03"
				device pci 00.0 on  end
			end
		end # PCI Express Root Port 7 - WLAN
		device pci 1c.7 off end # PCI Express Root Port 8
		device pci 1f.3 on end # Intel HDA
	end
end
