#
# This file is part of the coreboot project.
#
# Copyright (C) 2013 Advanced Micro Devices, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
chip northbridge/amd/agesa/family16kb/root_complex
	device cpu_cluster 0 on
		chip cpu/amd/agesa/family16kb
			device lapic 0 on  end
		end
	end

	device domain 0 on
		subsystemid 0x1022 0x1410 inherit
		chip northbridge/amd/agesa/family16kb # CPU side of HT root complex

			chip northbridge/amd/agesa/family16kb # PCI side of HT root complex
				device pci 0.0 on  end # Root Complex
				device pci 1.0 on  end # Internal Graphics P2P bridge 0x9835
				device pci 1.1 on  end # Internal Multimedia
				device pci 2.0 on  end # PCIe Host Bridge
				device pci 2.1 on  end # x4 PCIe Slot
				device pci 2.2 on  end # PCIe Q7 Realtek GBit LAN
				device pci 2.3 on  end # PCIe CB Realtek GBit LAN
				device pci 2.4 on  end # x2 PCIe Microsemi FPGA
			end	#chip northbridge/amd/agesa/family16kb

			chip southbridge/amd/agesa/hudson # it is under NB/SB Link, but on the same pci bus
				device pci 10.0 on  end # XHCI HC0
				device pci 11.0 on  end # SATA
				device pci 12.0 on  end # USB
				device pci 12.2 on  end # USB
				device pci 13.0 on  end # USB
				device pci 13.2 on  end # USB
				device pci 14.0 on  end # SM
				device pci 14.2 on  end # HDA	0x4383
				device pci 14.3 on 	# LPC	0x439d
					chip superio/fintek/f81866d
						register "hwm_amd_tsi_addr" = "0x98"	# Set to AMD
						register "hwm_amd_tsi_control" = "0x02"	# Set to AMD
						register "hwm_fan_select" = "0xC0"	# Sets Fan2 to PWM
						register "hwm_fan_mode" = "0xD5"	# Sets FAN1-3 to Auto RPM mode
						register "hwm_fan3_control" = "0x00"	# Fan control 23kHz
						register "hwm_fan2_temp_map_select" = "0x1E"	# Fan control 23kHz
						register "hwm_fan2_bound1" = "0x3C"	# 60°C
						register "hwm_fan2_bound2" = "0x32"	# 50°C
						register "hwm_fan2_bound3" = "0x28"	# 40°C
						register "hwm_fan2_bound4" = "0x1E"	# 30°C
						register "hwm_fan2_seg1_speed" = "0xFF"	# 100%
						register "hwm_fan2_seg2_speed" = "0xD9"	# 85%
						register "hwm_fan2_seg3_speed" = "0xB2"	# 70%
						register "hwm_fan2_seg4_speed" = "0x99"	# 60%
						register "hwm_fan2_seg5_speed" = "0x80"	# 50%
						register "hwm_temp_sens_type" = "0x04"	# Sets temp sensor 1 type to to thermistor
						device pnp 4e.0 off		# Floppy
							io 0x60 = 0x3f0
							irq 0x70 = 6
							drq 0x74 = 2
						end
						device pnp 4e.3 off end			# Parallel Port
						device pnp 4e.4 on			# Hardware Monitor
							io 0x60 = 0x295
							irq 0x70 = 0
						end
						device pnp 4e.5 off #  Keyboard
							io 0x60 = 0x60
							io 0x62 = 0x64
							irq 0x70 = 1
						end
						device pnp 4e.6 off end			# GPIO
						device pnp 4e.7 on end			# WDT
						device pnp 4e.a off end			# PME
						device pnp 4e.10 on			# COM1
							io 0x60 = 0x3f8
							irq 0x70 = 4
						end
						device pnp 4e.11 on			# COM2
							io 0x60 = 0x2f8
							irq 0x70 = 3
						end
						device pnp 4e.12 on			# COM3
							io 0x60 = 0x3e8
							irq 0x70 = 4
						end
						device pnp 4e.13 on			# COM4
							io 0x60 = 0x2e8
							irq 0x70 = 3
						end
						device pnp 4e.14 off			# COM5
						end
						device pnp 4e.15 off			# COM6
						end
					end # f81866d
				end #LPC
				device pci 14.7 on  end # SD
			end	#chip southbridge/amd/agesa/hudson

			device pci 18.0 on  end
			device pci 18.1 on  end
			device pci 18.2 on  end
			device pci 18.3 on  end
			device pci 18.4 on  end
			device pci 18.5 on  end

		end	#chip northbridge/amd/agesa/family16kb # CPU side of HT root complex
	end	#domain
end	#northbridge/amd/agesa/family16kb/root_complex
