chip soc/intel/apollolake

	# Graphics
	# TODO:
	# register "panel_cfg" = "{
	#	.up_delay_ms			=  0,				// T3
	#	.backlight_on_delay_ms		=  0,				// T7
	#	.backlight_off_delay_ms		=  0,				// T9
	#	.down_delay_ms			=  0,				// T10
	#	.cycle_delay_ms			=  500,				// T12
	#	.backlight_pwm_hz		=  200,				// PWM
	# }"

# PM Util (soc/intel/apollolake/pmutil.c)
	# Enable the correct decode ranges on the LPC bus.
	register "lpc_ioe"                      = "LPC_IOE_EC_4E_4F |
						   LPC_IOE_EC_62_66 |
						   LPC_IOE_KBC_60_64"

	# Enable Audio Clock and Power gating
	register "hdaudio_clk_gate_enable"	= "1"
	register "hdaudio_pwr_gate_enable"	= "1"
	register "hdaudio_bios_config_lockdown"	= "1"

	register "enhanced_cstates"		= "1"

	register "pnp_settings"			= "PNP_PERF_POWER"

	register "mod_phy_if_value"		= "0x12"

	register "prt0_gpio"			= "GPIO_PRT0_UDEF"

	register "usb_config_override"		= "1"
	register "disable_compliance_mode"	= "1"

	register "pcie_rp_clkreq_pin[0]"	= "CLKREQ_DISABLED"
	register "pcie_rp_clkreq_pin[1]"	= "CLKREQ_DISABLED"
	register "pcie_rp_clkreq_pin[2]"	= "CLKREQ_DISABLED"
	register "pcie_rp_clkreq_pin[3]"	= "CLKREQ_DISABLED"
	register "pcie_rp_clkreq_pin[4]"	= "CLKREQ_DISABLED"
	register "pcie_rp_clkreq_pin[5]"	= "CLKREQ_DISABLED"

	register "pcie_rp_deemphasis_enable[0]"	= "1"
	register "pcie_rp_deemphasis_enable[1]"	= "1"
	register "pcie_rp_deemphasis_enable[2]"	= "1"
	register "pcie_rp_deemphasis_enable[3]"	= "1"
	register "pcie_rp_deemphasis_enable[4]"	= "1"
	register "pcie_rp_deemphasis_enable[5]"	= "1"

	# GPE configuration
	register "gpe0_dw1"			= "PMC_GPE_NW_63_32"
	register "gpe0_dw2"			= "PMC_GPE_N_95_64"
	register "gpe0_dw3"			= "PMC_GPE_NW_31_0"

	register "slp_s3_assertion_width_usecs"	= "28000"

	device domain 0 on
		device ref igd		on  end
		device ref cnvi		on
			chip drivers/wifi/generic
				register "wake" = "GPE0A_CNVI_PME_STS"
				device generic 0 on end
			end
		end
		device ref pmc		on  end
		device ref p2sb		on  end
		device ref fast_spi	on  end
		device ref sram		on  end
		device ref hda		on  end
		device ref heci1	on  end
		device ref heci2	on  end
		device ref heci3	on  end
		device ref sata		on
			register "sata_ports_enable[0]"	= "1"
		end
		device ref xhci		on
			# Motherboard USB Type C
			register "usb2_port[0]"		= "PORT_EN(OC1)"
			register "usb3_port[0]"		= "PORT_EN(OC1)"

			# Motherboard USB 3.0
			register "usb2_port[1]"		= "PORT_EN(OC0)"
			register "usb3_port[1]"		= "PORT_EN(OC0)"

			# Daughterboard USB 3.0
			register "usb2_port[3]"		= "PORT_EN(OC1)"
			register "usb3_port[4]"		= "PORT_EN(OC1)"

			# Daughterboard SD Card
			register "usb2_port[5]"		= "PORT_EN(OC_SKIP)"
		end
		device ref i2c4		on  end
		device ref i2c7		on
			# Handled by touchpad.asl
		end
		device ref uart0	on  end
		device ref uart2	on  end
		device ref spi2		on  end
		device ref lpc_espi	on
			register "gen1_dec"			= "0x000c06a1"
			register "gen2_dec"			= "0x000c0081"

			chip ec/starlabs/merlin
				# Port pair 4Eh/4Fh
				device pnp 4e.00 on  end			# IO Interface
				device pnp 4e.04 off end			# System Wake-Up
				device pnp 4e.05 off end			# Mouse
				device pnp 4e.06 on				# Keyboard
					io 0x60			= 0x0060
					io 0x62			= 0x0064
					irq 0x70		= 1
				end
				device pnp 4e.0f off end			# Shared Memory/Flash Interface
				device pnp 4e.11 off end			# Power Management Channel 1
				device pnp 4e.12 off end			# Power Management Channel 2
				device pnp 4e.17 off end			# Power Management Channel 3
				device pnp 4e.1d off end			# Extended Shared Memory (ESHM)
				device pnp 4e.1e off end			# Power Management Channel 4
			end
		end
	end
	chip drivers/crb
		device mmio 0xfed40000 on end
	end
end
