chip northbridge/intel/sandybridge

	# Enable DisplayPort 1 Hotplug with 6ms pulse
	register "gpu_dp_d_hotplug" = "0x06"

	# Enable DisplayPort 0 Hotplug with 6ms pulse
	register "gpu_dp_c_hotplug" = "0x06"

	# Enable DVI Hotplug with 6ms pulse
	register "gpu_dp_b_hotplug" = "0x06"

	register "spd_addresses" = "{0x50, 0, 0x52, 0}"
	register "max_mem_clock_mhz" = "666"

	chip cpu/intel/model_206ax
		device cpu_cluster 0 on end

		register "acpi_c1" = "CPU_ACPI_C3"
		register "acpi_c2" = "CPU_ACPI_C6"
	end

	device domain 0 on
		subsystemid 0x1ae0 0xc000 inherit
		device ref host_bridge on end # host bridge
		device ref igd on end # vga controller

		chip southbridge/intel/bd82x6x # Intel Series 6 Cougar Point PCH
			# GPI routing
			#  0 No effect (default)
			#  1 SMI# (if corresponding ALT_GPI_SMI_EN bit is also set)
			#  2 SCI (if corresponding GPIO_EN bit is also set)
			register "gpi1_routing" = "0"
			register "gpi14_routing" = "2"

			register "sata_port_map" = "0x3"

			register "gen1_dec" = "0x00fc1601"
			# SuperIO range is 0x700-0x73f
			register "gen2_dec" = "0x003c0701"

			register "usb_port_config" = "{
				{ 1, 1, 0 }, /* P0: Front port  (OC0) */
				{ 1, 0, 1 }, /* P1: Back port   (OC1) */
				{ 1, 0, -1 }, /* P2: MINIPCIE1   (no OC) */
				{ 1, 0, -1 }, /* P3: MMC         (no OC) */
				{ 1, 1, 2 }, /* P4: Front port  (OC2) */
				{ 0, 0, -1 }, /* P5: Empty */
				{ 0, 0, -1 }, /* P6: Empty */
				{ 0, 0, -1 }, /* P7: Empty */
				{ 1, 0, 4 }, /* P8: Back port   (OC4) */
				{ 1, 0, -1 }, /* P9: MINIPCIE3   (no OC) */
				{ 1, 0, -1 }, /* P10: BLUETOOTH  (no OC) */
				{ 0, 0, -1 }, /* P11: Empty */
				{ 1, 0, 6 }, /* P12: Back port  (OC6) */
				{ 1, 0, 5 }, /* P13: Back port  (OC5) */
			}"

			device ref mei1 on end # Management Engine Interface 1
			device ref mei2 off end # Management Engine Interface 2
			device ref me_ide_r off end # Management Engine IDE-R
			device ref me_kt off end # Management Engine KT
			device ref gbe off end # Intel Gigabit Ethernet
			device ref ehci2 on end # USB2 EHCI #2
			device ref hda on end # High Definition Audio
			device ref pcie_rp1 on end # PCIe Port #1 (WLAN)
			device ref pcie_rp2 off end # PCIe Port #2
			device ref pcie_rp3 on end # PCIe Port #3 (Debug)
			device ref pcie_rp4 on end # PCIe Port #4 (LAN)
			device ref pcie_rp5 off end # PCIe Port #5
			device ref pcie_rp6 off end # PCIe Port #6
			device ref pcie_rp7 off end # PCIe Port #7
			device ref pcie_rp8 off end # PCIe Port #8
			device ref ehci1 on end # USB2 EHCI #1
			device ref pci_bridge off end # PCI bridge
			device ref lpc on # LPC bridge
				chip superio/ite/it8772f
					# Enable GPIO10 as USBPWRON12#
					# Enable GPIO12 as USBPWRON13#
					register "gpio_set1" = "0x05"
					# Enable GPIO22 as SIO_WAEKSCI#
					register "gpio_set2" = "0x04"
					# Enable GPIO32 as SIO_EXTSMI#
					register "gpio_set3" = "0x04"
					# Enable GPIO45 as LED_POWER#
					register "gpio_set4" = "0x20"
					# Enable GPIO51 as USBPWRON8#
					# Enable GPIO52 as USBPWRON1#
					register "gpio_set5" = "0x06"
					# Skip keyboard init
					register "skip_keyboard" = "true"
					# Enable PECI on TMPIN3
					register "TMPIN3.mode" = "THERMAL_PECI"
					# Enable FAN3
					register "FAN3.mode" = "FAN_SMART_SOFTWARE"
					register "FAN3.smart.pwm_start" = "30"

					device pnp 2e.0 off end # FDC
					device pnp 2e.1 on # Serial Port 1
						io 0x60 = 0x2f8
						irq 0x70 = 4
					end
					device pnp 2e.4 on # Environment Controller
						io 0x60 = 0x700
						io 0x62 = 0x710
					end
					device pnp 2e.7 on # GPIO
						io 0x60 = 0x720
						io 0x62 = 0x730
					end
					device pnp 2e.5 on
						io 0x60 = 0x60
						io 0x62 = 0x64
						irq 0x70 = 1
					end # Keyboard
					device pnp 2e.6 on
						irq 0x70 = 12
					end # Mouse
					device pnp 2e.a off end # IR
				end
				chip drivers/pc80/tpm
					device pnp 0c31.0 on end
				end
			end
			device ref sata1 on end # SATA Controller 1
			device ref smbus on end # SMBus
			device ref sata2 off end # SATA Controller 2
			device ref thermal on end # Thermal
		end
	end
end
