## SPDX-License-Identifier: GPL-2.0-only

chip northbridge/intel/i945

	device cpu_cluster 0 on ops i945_cpu_bus_ops
	end

	register "pci_mmio_size" = "768"

	device domain 0 on
		ops i945_pci_domain_ops
		device pci 00.0 on # host bridge
			subsystemid 0x1458 0x5000
		end
		device pci 01.0 on # i945 PCIe root port
			subsystemid 0x1458 0x5000
		end
		device pci 02.0 on  # vga controller
			subsystemid 0x1458 0xd000
		end

		chip southbridge/intel/i82801gx
			register "pirqa_routing" = "0x80"
			register "pirqb_routing" = "0x80"
			register "pirqc_routing" = "0x80"
			register "pirqd_routing" = "0x80"
			register "pirqe_routing" = "0x80"
			register "pirqf_routing" = "0x80"
			register "pirqg_routing" = "0x80"
			register "pirqh_routing" = "0x80"

			# 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 "gpi0_routing" = "1"
			register "gpi1_routing" = "1"
			register "gpi2_routing" = "1"
			register "gpi3_routing" = "1"
			register "gpi4_routing" = "1"
			register "gpi5_routing" = "1"
			register "gpi6_routing" = "1"
			register "gpi7_routing" = "1"
			register "gpi8_routing" = "1"
			register "gpi9_routing" = "1"
			register "gpi10_routing" = "1"
			register "gpi11_routing" = "1"
			register "gpi12_routing" = "1"
			register "gpi13_routing" = "2"
			register "gpi14_routing" = "1"
			register "gpi15_routing" = "1"

			register "gpe0_en" = "0"

			register "ide_enable_primary" = "true"
			register "ide_enable_secondary" = "false"
			register "c3_latency" = "85"

			register "p_cnt_throttling_supported" = "false"

			register "gen1_dec" = "0x000c0801" # ???
			register "gen2_dec" = "0x00040291" # Environment Controller

			device pci 1b.0 on end # High Definition Audio
			device pci 1c.0 on end # PCIe
			device pci 1c.1 on end # PCIe
			device pci 1c.2 off end # PCIe port 3
			device pci 1c.3 off end # PCIe port 4
			device pci 1c.4 off end # PCIe port 5
			device pci 1c.5 off end # PCIe port 6
			device pci 1d.0 on end # USB UHCI
			device pci 1d.1 on end # USB UHCI
			device pci 1d.2 on end # USB UHCI
			device pci 1d.3 on end # USB UHCI
			device pci 1d.7 on end # USB2 EHCI
			device pci 1e.0 on end # PCI bridge
			device pci 1e.2 off end # AC'97 Audio
			device pci 1e.3 off end # AC'97 Modem

			device pci 1f.0 on # LPC bridge
				chip superio/ite/it8718f # Super I/O
					register "TMPIN1.mode" = "THERMAL_RESISTOR"
					register "TMPIN2.mode" = "THERMAL_RESISTOR"
					register "TMPIN3.mode" = "THERMAL_DIODE"
					register "TMPIN3.offset" = "0"
					register "ec.vin_mask" = "VIN_ALL"

					register "FAN1.mode" = "FAN_SMART_AUTOMATIC"
					register "FAN1.smart.tmpin" = "3"
					register "FAN1.smart.tmp_off" = "30"
					register "FAN1.smart.tmp_start" = "35"
					register "FAN1.smart.tmp_full" = "75"
					register "FAN1.smart.tmp_delta" = "3"
					register "FAN1.smart.smoothing" = "1"
					register "FAN1.smart.pwm_start" = "0"
					register "FAN1.smart.slope" = "10"

					register "FAN2.mode" = "FAN_SMART_AUTOMATIC"
					register "FAN2.smart.tmpin" = "3"
					register "FAN2.smart.tmp_off" = "30"
					register "FAN2.smart.tmp_start" = "35"
					register "FAN2.smart.tmp_full" = "75"
					register "FAN2.smart.tmp_delta" = "3"
					register "FAN2.smart.smoothing" = "1"
					register "FAN2.smart.pwm_start" = "0"
					register "FAN2.smart.slope" = "10"

					device pnp 2e.0 off end # Floppy
					device pnp 2e.1 on # COM1
						io 0x60 = 0x3f8
						irq 0x70 = 4
					end
					device pnp 2e.2 off end # COM2
					device pnp 2e.3 on # Parallel port
						io 0x60 = 0x378
						irq 0x70 = 7
						io 0x62 = 0
						drq 0x74 = 4
						irq 0xf0 = 0x08
					end
					device pnp 2e.4 on # Environment controller
						io 0x60 = 0x290
						irq 0x70 = 0x00
						io 0x62 = 0x000
						irq 0xf0 = 0x00
						irq 0xf1 = 0x00
						irq 0xf2 = 0x0a
						irq 0xf3 = 0x00
						irq 0xf4 = 0x80
						irq 0xf5 = 0x20
						irq 0xf6 = 0x3e
					end
					device pnp 2e.5 on # Keyboard
						io 0x60 = 0x60
						irq 0x70 = 1
						io 0x62 = 0x64
						irq 0xf0 = 0x48
					end
					device pnp 2e.6 on # Mouse
						irq 0x70 = 0
						irq 0x71 = 2
						irq 0xf0 = 0
					end
				end
			end
			device pci 1f.1 on end # IDE
			device pci 1f.2 on end # SATA
			device pci 1f.3 on end # SMBus
		end
	end
end