xref: /openbmc/u-boot/arch/x86/dts/galileo.dts (revision e0ed8332fa2fe684b4c8ba1caab991663730cbf0)
183d290c5STom Rini// SPDX-License-Identifier: GPL-2.0+
2afee3fb8SBin Meng/*
3afee3fb8SBin Meng * Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com>
4afee3fb8SBin Meng */
5afee3fb8SBin Meng
6afee3fb8SBin Meng/dts-v1/;
7afee3fb8SBin Meng
820c34115SBin Meng#include <dt-bindings/mrc/quark.h>
905b98ec3SBin Meng#include <dt-bindings/interrupt-router/intel-irq.h>
1020c34115SBin Meng
11afee3fb8SBin Meng/include/ "skeleton.dtsi"
12*b37b7b20SBin Meng/include/ "reset.dtsi"
1393f8a311SBin Meng/include/ "rtc.dtsi"
1480af3984SBin Meng/include/ "tsc_timer.dtsi"
15afee3fb8SBin Meng
16afee3fb8SBin Meng/ {
17afee3fb8SBin Meng	model = "Intel Galileo";
18afee3fb8SBin Meng	compatible = "intel,galileo", "intel,quark";
19afee3fb8SBin Meng
200a9bb489SBin Meng	aliases {
2181aaa3d9SBin Meng		spi0 = &spi;
220a9bb489SBin Meng	};
230a9bb489SBin Meng
24afee3fb8SBin Meng	config {
25afee3fb8SBin Meng		silent_console = <0>;
26afee3fb8SBin Meng	};
27afee3fb8SBin Meng
28afee3fb8SBin Meng	chosen {
29afee3fb8SBin Meng		stdout-path = &pciuart0;
30afee3fb8SBin Meng	};
31afee3fb8SBin Meng
320ac8d5e5SBin Meng	cpus {
330ac8d5e5SBin Meng		#address-cells = <1>;
340ac8d5e5SBin Meng		#size-cells = <0>;
350ac8d5e5SBin Meng
360ac8d5e5SBin Meng		cpu@0 {
370ac8d5e5SBin Meng			device_type = "cpu";
380ac8d5e5SBin Meng			compatible = "cpu-x86";
390ac8d5e5SBin Meng			reg = <0>;
400ac8d5e5SBin Meng			intel,apic-id = <0>;
410ac8d5e5SBin Meng		};
420ac8d5e5SBin Meng	};
430ac8d5e5SBin Meng
4480af3984SBin Meng	tsc-timer {
4580af3984SBin Meng		clock-frequency = <400000000>;
4680af3984SBin Meng	};
4780af3984SBin Meng
4820c34115SBin Meng	mrc {
4920c34115SBin Meng		compatible = "intel,quark-mrc";
5020c34115SBin Meng		flags = <MRC_FLAG_SCRAMBLE_EN>;
5120c34115SBin Meng		dram-width = <DRAM_WIDTH_X8>;
5220c34115SBin Meng		dram-speed = <DRAM_FREQ_800>;
5320c34115SBin Meng		dram-type = <DRAM_TYPE_DDR3>;
5420c34115SBin Meng		rank-mask = <DRAM_RANK(0)>;
5520c34115SBin Meng		chan-mask = <DRAM_CHANNEL(0)>;
5620c34115SBin Meng		chan-width = <DRAM_CHANNEL_WIDTH_X16>;
5720c34115SBin Meng		addr-mode = <DRAM_ADDR_MODE0>;
5820c34115SBin Meng		refresh-rate = <DRAM_REFRESH_RATE_785US>;
5920c34115SBin Meng		sr-temp-range = <DRAM_SRT_RANGE_NORMAL>;
6020c34115SBin Meng		ron-value = <DRAM_RON_34OHM>;
6120c34115SBin Meng		rtt-nom-value = <DRAM_RTT_NOM_120OHM>;
6220c34115SBin Meng		rd-odt-value = <DRAM_RD_ODT_OFF>;
6320c34115SBin Meng		dram-density = <DRAM_DENSITY_1G>;
6420c34115SBin Meng		dram-cl = <6>;
6520c34115SBin Meng		dram-ras = <0x0000927c>;
6620c34115SBin Meng		dram-wtr = <0x00002710>;
6720c34115SBin Meng		dram-rrd = <0x00002710>;
6820c34115SBin Meng		dram-faw = <0x00009c40>;
6920c34115SBin Meng	};
7020c34115SBin Meng
71afee3fb8SBin Meng	pci {
72afee3fb8SBin Meng		#address-cells = <3>;
73afee3fb8SBin Meng		#size-cells = <2>;
7431b5aebdSBin Meng		compatible = "pci-x86";
7531b5aebdSBin Meng		u-boot,dm-pre-reloc;
7631b5aebdSBin Meng		ranges = <0x02000000 0x0 0x90000000 0x90000000 0 0x20000000
7731b5aebdSBin Meng			  0x42000000 0x0 0xb0000000 0xb0000000 0 0x20000000
7831b5aebdSBin Meng			  0x01000000 0x0 0x2000 0x2000 0 0xe000>;
79afee3fb8SBin Meng
80afee3fb8SBin Meng		pciuart0: uart@14,5 {
81afee3fb8SBin Meng			compatible = "pci8086,0936.00",
82afee3fb8SBin Meng					"pci8086,0936",
83afee3fb8SBin Meng					"pciclass,070002",
84afee3fb8SBin Meng					"pciclass,0700",
85c5c5c201SBin Meng					"ns16550";
8631b5aebdSBin Meng			u-boot,dm-pre-reloc;
87afee3fb8SBin Meng			reg = <0x0000a500 0x0 0x0 0x0 0x0
88afee3fb8SBin Meng			       0x0200a510 0x0 0x0 0x0 0x0>;
89afee3fb8SBin Meng			reg-shift = <2>;
90afee3fb8SBin Meng			clock-frequency = <44236800>;
91afee3fb8SBin Meng			current-speed = <115200>;
92afee3fb8SBin Meng		};
9305b98ec3SBin Meng
94f2b85ab5SSimon Glass		pch@1f,0 {
9505b98ec3SBin Meng			reg = <0x0000f800 0 0 0 0>;
96f2b85ab5SSimon Glass			compatible = "intel,pch7";
973ddc1c7bSBin Meng			#address-cells = <1>;
983ddc1c7bSBin Meng			#size-cells = <1>;
99f2b85ab5SSimon Glass
100f2b85ab5SSimon Glass			irq-router {
101bc728b1bSBin Meng				compatible = "intel,irq-router";
10205b98ec3SBin Meng				intel,pirq-config = "pci";
103ce8dd77dSBin Meng				intel,actl-addr = <0x58>;
10405b98ec3SBin Meng				intel,pirq-link = <0x60 8>;
10505b98ec3SBin Meng				intel,pirq-mask = <0xdef8>;
10605b98ec3SBin Meng				intel,pirq-routing = <
10705b98ec3SBin Meng					PCI_BDF(0, 20, 0) INTA PIRQE
10805b98ec3SBin Meng					PCI_BDF(0, 20, 1) INTB PIRQF
10905b98ec3SBin Meng					PCI_BDF(0, 20, 2) INTC PIRQG
11005b98ec3SBin Meng					PCI_BDF(0, 20, 3) INTD PIRQH
11105b98ec3SBin Meng					PCI_BDF(0, 20, 4) INTA PIRQE
11205b98ec3SBin Meng					PCI_BDF(0, 20, 5) INTB PIRQF
11305b98ec3SBin Meng					PCI_BDF(0, 20, 6) INTC PIRQG
11405b98ec3SBin Meng					PCI_BDF(0, 20, 7) INTD PIRQH
11505b98ec3SBin Meng					PCI_BDF(0, 21, 0) INTA PIRQE
11605b98ec3SBin Meng					PCI_BDF(0, 21, 1) INTB PIRQF
11705b98ec3SBin Meng					PCI_BDF(0, 21, 2) INTC PIRQG
1185bf0f7f6SBin Meng					PCI_BDF(0, 23, 0) INTA PIRQA
1195bf0f7f6SBin Meng					PCI_BDF(0, 23, 1) INTB PIRQB
1205bf0f7f6SBin Meng
1215bf0f7f6SBin Meng					/* PCIe root ports downstream interrupts */
1225bf0f7f6SBin Meng					PCI_BDF(1, 0, 0) INTA PIRQA
1235bf0f7f6SBin Meng					PCI_BDF(1, 0, 0) INTB PIRQB
1245bf0f7f6SBin Meng					PCI_BDF(1, 0, 0) INTC PIRQC
1255bf0f7f6SBin Meng					PCI_BDF(1, 0, 0) INTD PIRQD
1265bf0f7f6SBin Meng					PCI_BDF(2, 0, 0) INTA PIRQB
1275bf0f7f6SBin Meng					PCI_BDF(2, 0, 0) INTB PIRQC
1285bf0f7f6SBin Meng					PCI_BDF(2, 0, 0) INTC PIRQD
1295bf0f7f6SBin Meng					PCI_BDF(2, 0, 0) INTD PIRQA
13005b98ec3SBin Meng				>;
13105b98ec3SBin Meng			};
132f2b85ab5SSimon Glass
13381aaa3d9SBin Meng			spi: spi {
134f2b85ab5SSimon Glass				#address-cells = <1>;
135f2b85ab5SSimon Glass				#size-cells = <0>;
1361f9eb59dSBin Meng				compatible = "intel,ich7-spi";
137f2b85ab5SSimon Glass				spi-flash@0 {
138f2b85ab5SSimon Glass					#size-cells = <1>;
139f2b85ab5SSimon Glass					#address-cells = <1>;
140f2b85ab5SSimon Glass					reg = <0>;
141f2b85ab5SSimon Glass					compatible = "winbond,w25q64",
142f2b85ab5SSimon Glass						"spi-flash";
143f2b85ab5SSimon Glass					memory-map = <0xff800000 0x00800000>;
144f2b85ab5SSimon Glass					rw-mrc-cache {
145f2b85ab5SSimon Glass						label = "rw-mrc-cache";
146f2b85ab5SSimon Glass						reg = <0x00010000 0x00010000>;
147f2b85ab5SSimon Glass					};
148f2b85ab5SSimon Glass				};
149f2b85ab5SSimon Glass			};
150afee3fb8SBin Meng
151d8b1d225SBin Meng			gpioa {
152d8b1d225SBin Meng				compatible = "intel,ich6-gpio";
153d8b1d225SBin Meng				u-boot,dm-pre-reloc;
154d8b1d225SBin Meng				reg = <0 0x20>;
155d8b1d225SBin Meng				bank-name = "A";
156d8b1d225SBin Meng			};
157d8b1d225SBin Meng
158d8b1d225SBin Meng			gpiob {
159d8b1d225SBin Meng				compatible = "intel,ich6-gpio";
160d8b1d225SBin Meng				u-boot,dm-pre-reloc;
161d8b1d225SBin Meng				reg = <0x20 0x20>;
162d8b1d225SBin Meng				bank-name = "B";
163d8b1d225SBin Meng			};
1643ddc1c7bSBin Meng		};
1653ddc1c7bSBin Meng	};
166d8b1d225SBin Meng
167afee3fb8SBin Meng};
168