xref: /openbmc/u-boot/arch/x86/dts/crownbay.dts (revision 6a08213d52f036dbfbdd92f1416bc4b08fd4d3f6)
183d290c5STom Rini// SPDX-License-Identifier: GPL-2.0+
2568868ddSBin Meng/*
3568868ddSBin Meng * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
4568868ddSBin Meng */
5568868ddSBin Meng
6568868ddSBin Meng/dts-v1/;
7568868ddSBin Meng
89c7dea60SBin Meng#include <dt-bindings/interrupt-router/intel-irq.h>
99c7dea60SBin Meng
10120c4169SBin Meng/include/ "skeleton.dtsi"
119ca5a0caSBin Meng/include/ "serial.dtsi"
1260fe1018SBin Meng/include/ "keyboard.dtsi"
13*3592965aSBin Meng/include/ "pcspkr.dtsi"
14b37b7b20SBin Meng/include/ "reset.dtsi"
15b0014b64SBin Meng/include/ "rtc.dtsi"
1680af3984SBin Meng/include/ "tsc_timer.dtsi"
17568868ddSBin Meng
18568868ddSBin Meng/ {
19568868ddSBin Meng	model = "Intel Crown Bay";
20568868ddSBin Meng	compatible = "intel,crownbay", "intel,queensbay";
21568868ddSBin Meng
220a9bb489SBin Meng	aliases {
2381aaa3d9SBin Meng		spi0 = &spi;
240a9bb489SBin Meng	};
250a9bb489SBin Meng
26568868ddSBin Meng	config {
27568868ddSBin Meng		silent_console = <0>;
28568868ddSBin Meng	};
29568868ddSBin Meng
30990acd0dSBin Meng	cpus {
31990acd0dSBin Meng		#address-cells = <1>;
32990acd0dSBin Meng		#size-cells = <0>;
33990acd0dSBin Meng
34990acd0dSBin Meng		cpu@0 {
35990acd0dSBin Meng			device_type = "cpu";
36990acd0dSBin Meng			compatible = "cpu-x86";
37990acd0dSBin Meng			reg = <0>;
38990acd0dSBin Meng			intel,apic-id = <0>;
39990acd0dSBin Meng		};
40990acd0dSBin Meng
41990acd0dSBin Meng		cpu@1 {
42990acd0dSBin Meng			device_type = "cpu";
43990acd0dSBin Meng			compatible = "cpu-x86";
44990acd0dSBin Meng			reg = <1>;
45990acd0dSBin Meng			intel,apic-id = <1>;
46990acd0dSBin Meng		};
47990acd0dSBin Meng
48990acd0dSBin Meng	};
49990acd0dSBin Meng
50120c4169SBin Meng	chosen {
51b21b2081SBin Meng		/*
52b21b2081SBin Meng		 * By default the legacy superio serial port is used as the
53b21b2081SBin Meng		 * U-Boot serial console. If we want to use UART from Topcliff
54b21b2081SBin Meng		 * PCH as the console, change this property to &pciuart#.
55b21b2081SBin Meng		 *
56b21b2081SBin Meng		 * For example, stdout-path = &pciuart0 will use the first
57b21b2081SBin Meng		 * UART on Topcliff PCH.
58b21b2081SBin Meng		 */
59120c4169SBin Meng		stdout-path = "/serial";
60568868ddSBin Meng	};
61568868ddSBin Meng
620f61de8dSSimon Glass	microcode {
630f61de8dSSimon Glass		update@0 {
640f61de8dSSimon Glass#include "microcode/m0220661105_cv.dtsi"
650f61de8dSSimon Glass		};
660f61de8dSSimon Glass	};
670f61de8dSSimon Glass
68b21b2081SBin Meng	pci {
69b21b2081SBin Meng		#address-cells = <3>;
70b21b2081SBin Meng		#size-cells = <2>;
71a2771943SBin Meng		compatible = "pci-x86";
72a2771943SBin Meng		u-boot,dm-pre-reloc;
73a2771943SBin Meng		ranges = <0x02000000 0x0 0x40000000 0x40000000 0 0x80000000
74a2771943SBin Meng			  0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
75a2771943SBin Meng			  0x01000000 0x0 0x2000 0x2000 0 0xe000>;
76b21b2081SBin Meng
77b21b2081SBin Meng		pcie@17,0 {
78b21b2081SBin Meng			#address-cells = <3>;
79b21b2081SBin Meng			#size-cells = <2>;
80a1f1582bSBin Meng			compatible = "pci-bridge";
81a1f1582bSBin Meng			u-boot,dm-pre-reloc;
82a1f1582bSBin Meng			reg = <0x0000b800 0x0 0x0 0x0 0x0>;
83b21b2081SBin Meng
84b21b2081SBin Meng			topcliff@0,0 {
85b21b2081SBin Meng				#address-cells = <3>;
86b21b2081SBin Meng				#size-cells = <2>;
87a1f1582bSBin Meng				compatible = "pci-bridge";
88a1f1582bSBin Meng				u-boot,dm-pre-reloc;
89a1f1582bSBin Meng				reg = <0x00010000 0x0 0x0 0x0 0x0>;
90b21b2081SBin Meng
91b21b2081SBin Meng				pciuart0: uart@a,1 {
92b21b2081SBin Meng					compatible = "pci8086,8811.00",
93b21b2081SBin Meng							"pci8086,8811",
94b21b2081SBin Meng							"pciclass,070002",
95b21b2081SBin Meng							"pciclass,0700",
96c5c5c201SBin Meng							"ns16550";
97a1f1582bSBin Meng					u-boot,dm-pre-reloc;
98b21b2081SBin Meng					reg = <0x00025100 0x0 0x0 0x0 0x0
99b21b2081SBin Meng					       0x01025110 0x0 0x0 0x0 0x0>;
100b21b2081SBin Meng					reg-shift = <0>;
101b21b2081SBin Meng					clock-frequency = <1843200>;
102b21b2081SBin Meng					current-speed = <115200>;
103b21b2081SBin Meng				};
104b21b2081SBin Meng
105b21b2081SBin Meng				pciuart1: uart@a,2 {
106b21b2081SBin Meng					compatible = "pci8086,8812.00",
107b21b2081SBin Meng							"pci8086,8812",
108b21b2081SBin Meng							"pciclass,070002",
109b21b2081SBin Meng							"pciclass,0700",
110c5c5c201SBin Meng							"ns16550";
111a1f1582bSBin Meng					u-boot,dm-pre-reloc;
112b21b2081SBin Meng					reg = <0x00025200 0x0 0x0 0x0 0x0
113b21b2081SBin Meng					       0x01025210 0x0 0x0 0x0 0x0>;
114b21b2081SBin Meng					reg-shift = <0>;
115b21b2081SBin Meng					clock-frequency = <1843200>;
116b21b2081SBin Meng					current-speed = <115200>;
117b21b2081SBin Meng				};
118b21b2081SBin Meng
119b21b2081SBin Meng				pciuart2: uart@a,3 {
120b21b2081SBin Meng					compatible = "pci8086,8813.00",
121b21b2081SBin Meng							"pci8086,8813",
122b21b2081SBin Meng							"pciclass,070002",
123b21b2081SBin Meng							"pciclass,0700",
124c5c5c201SBin Meng							"ns16550";
125a1f1582bSBin Meng					u-boot,dm-pre-reloc;
126b21b2081SBin Meng					reg = <0x00025300 0x0 0x0 0x0 0x0
127b21b2081SBin Meng					       0x01025310 0x0 0x0 0x0 0x0>;
128b21b2081SBin Meng					reg-shift = <0>;
129b21b2081SBin Meng					clock-frequency = <1843200>;
130b21b2081SBin Meng					current-speed = <115200>;
131b21b2081SBin Meng				};
132b21b2081SBin Meng
133b21b2081SBin Meng				pciuart3: uart@a,4 {
134b21b2081SBin Meng					compatible = "pci8086,8814.00",
135b21b2081SBin Meng							"pci8086,8814",
136b21b2081SBin Meng							"pciclass,070002",
137b21b2081SBin Meng							"pciclass,0700",
138c5c5c201SBin Meng							"ns16550";
139a1f1582bSBin Meng					u-boot,dm-pre-reloc;
140b21b2081SBin Meng					reg = <0x00025400 0x0 0x0 0x0 0x0
141b21b2081SBin Meng					       0x01025410 0x0 0x0 0x0 0x0>;
142b21b2081SBin Meng					reg-shift = <0>;
143b21b2081SBin Meng					clock-frequency = <1843200>;
144b21b2081SBin Meng					current-speed = <115200>;
145b21b2081SBin Meng				};
146b21b2081SBin Meng			};
147b21b2081SBin Meng		};
1489c7dea60SBin Meng
149f2b85ab5SSimon Glass		pch@1f,0 {
1509c7dea60SBin Meng			reg = <0x0000f800 0 0 0 0>;
151f2b85ab5SSimon Glass			compatible = "intel,pch7";
1523ddc1c7bSBin Meng			#address-cells = <1>;
1533ddc1c7bSBin Meng			#size-cells = <1>;
154f2b85ab5SSimon Glass
155f2b85ab5SSimon Glass			irq-router {
156bc728b1bSBin Meng				compatible = "intel,irq-router";
1579c7dea60SBin Meng				intel,pirq-config = "pci";
158ce8dd77dSBin Meng				intel,actl-addr = <0x58>;
1599c7dea60SBin Meng				intel,pirq-link = <0x60 8>;
1604dd02a75SBin Meng				intel,pirq-mask = <0xcee0>;
1619c7dea60SBin Meng				intel,pirq-routing = <
1629c7dea60SBin Meng					/* TunnelCreek PCI devices */
1639c7dea60SBin Meng					PCI_BDF(0, 2, 0) INTA PIRQE
1649c7dea60SBin Meng					PCI_BDF(0, 3, 0) INTA PIRQF
165cdb6babeSBin Meng					PCI_BDF(0, 23, 0) INTA PIRQA
166cdb6babeSBin Meng					PCI_BDF(0, 23, 0) INTB PIRQB
167cdb6babeSBin Meng					PCI_BDF(0, 23, 0) INTC PIRQC
168cdb6babeSBin Meng					PCI_BDF(0, 23, 0) INTD PIRQD
169cdb6babeSBin Meng					PCI_BDF(0, 24, 0) INTA PIRQB
170cdb6babeSBin Meng					PCI_BDF(0, 24, 0) INTB PIRQC
171cdb6babeSBin Meng					PCI_BDF(0, 24, 0) INTC PIRQD
172cdb6babeSBin Meng					PCI_BDF(0, 24, 0) INTD PIRQA
173cdb6babeSBin Meng					PCI_BDF(0, 25, 0) INTA PIRQC
174cdb6babeSBin Meng					PCI_BDF(0, 25, 0) INTB PIRQD
175cdb6babeSBin Meng					PCI_BDF(0, 25, 0) INTC PIRQA
176cdb6babeSBin Meng					PCI_BDF(0, 25, 0) INTD PIRQB
177cdb6babeSBin Meng					PCI_BDF(0, 26, 0) INTA PIRQD
178cdb6babeSBin Meng					PCI_BDF(0, 26, 0) INTB PIRQA
179cdb6babeSBin Meng					PCI_BDF(0, 26, 0) INTC PIRQB
180cdb6babeSBin Meng					PCI_BDF(0, 26, 0) INTD PIRQC
1819c7dea60SBin Meng					PCI_BDF(0, 27, 0) INTA PIRQG
1829c7dea60SBin Meng					/*
1839c7dea60SBin Meng					* Topcliff PCI devices
1849c7dea60SBin Meng					*
185f2b85ab5SSimon Glass					* Note on the Crown Bay board, Topcliff
186f2b85ab5SSimon Glass					* chipset is connected to TunnelCreek
187f2b85ab5SSimon Glass					* PCIe port 0, so its bus number is 1
188f2b85ab5SSimon Glass					* for its PCIe port and 2 for its PCI
189f2b85ab5SSimon Glass					* devices per U-Boot current PCI bus
190f2b85ab5SSimon Glass					* enumeration algorithm.
1919c7dea60SBin Meng					*/
1929c7dea60SBin Meng					PCI_BDF(1, 0, 0) INTA PIRQA
1939c7dea60SBin Meng					PCI_BDF(2, 0, 1) INTA PIRQA
1949c7dea60SBin Meng					PCI_BDF(2, 0, 2) INTA PIRQA
195d402f922SBin Meng					PCI_BDF(2, 2, 0) INTB PIRQD
196d402f922SBin Meng					PCI_BDF(2, 2, 1) INTB PIRQD
197d402f922SBin Meng					PCI_BDF(2, 2, 2) INTB PIRQD
198d402f922SBin Meng					PCI_BDF(2, 2, 3) INTB PIRQD
199d402f922SBin Meng					PCI_BDF(2, 2, 4) INTB PIRQD
2009c7dea60SBin Meng					PCI_BDF(2, 4, 0) INTC PIRQC
2019c7dea60SBin Meng					PCI_BDF(2, 4, 1) INTC PIRQC
202d402f922SBin Meng					PCI_BDF(2, 6, 0) INTD PIRQB
2039c7dea60SBin Meng					PCI_BDF(2, 8, 0) INTA PIRQA
2049c7dea60SBin Meng					PCI_BDF(2, 8, 1) INTA PIRQA
2059c7dea60SBin Meng					PCI_BDF(2, 8, 2) INTA PIRQA
2069c7dea60SBin Meng					PCI_BDF(2, 8, 3) INTA PIRQA
207d402f922SBin Meng					PCI_BDF(2, 10, 0) INTB PIRQD
208d402f922SBin Meng					PCI_BDF(2, 10, 1) INTB PIRQD
209d402f922SBin Meng					PCI_BDF(2, 10, 2) INTB PIRQD
210d402f922SBin Meng					PCI_BDF(2, 10, 3) INTB PIRQD
211d402f922SBin Meng					PCI_BDF(2, 10, 4) INTB PIRQD
2129c7dea60SBin Meng					PCI_BDF(2, 12, 0) INTC PIRQC
2139c7dea60SBin Meng					PCI_BDF(2, 12, 1) INTC PIRQC
2149c7dea60SBin Meng					PCI_BDF(2, 12, 2) INTC PIRQC
2159c7dea60SBin Meng					PCI_BDF(2, 12, 3) INTC PIRQC
2169c7dea60SBin Meng					PCI_BDF(2, 12, 4) INTC PIRQC
2179c7dea60SBin Meng				>;
2189c7dea60SBin Meng			};
219f2b85ab5SSimon Glass
22081aaa3d9SBin Meng			spi: spi {
221f2b85ab5SSimon Glass				#address-cells = <1>;
222f2b85ab5SSimon Glass				#size-cells = <0>;
2231f9eb59dSBin Meng				compatible = "intel,ich7-spi";
224f2b85ab5SSimon Glass				spi-flash@0 {
225f2b85ab5SSimon Glass					reg = <0>;
226f2b85ab5SSimon Glass					compatible = "sst,25vf016b",
227f2b85ab5SSimon Glass						"spi-flash";
228f2b85ab5SSimon Glass					memory-map = <0xffe00000 0x00200000>;
229f2b85ab5SSimon Glass				};
230f2b85ab5SSimon Glass			};
2313ddc1c7bSBin Meng
2323ddc1c7bSBin Meng			gpioa {
2333ddc1c7bSBin Meng				compatible = "intel,ich6-gpio";
2343ddc1c7bSBin Meng				u-boot,dm-pre-reloc;
2353ddc1c7bSBin Meng				reg = <0 0x20>;
2363ddc1c7bSBin Meng				bank-name = "A";
2373ddc1c7bSBin Meng			};
2383ddc1c7bSBin Meng
2393ddc1c7bSBin Meng			gpiob {
2403ddc1c7bSBin Meng				compatible = "intel,ich6-gpio";
2413ddc1c7bSBin Meng				u-boot,dm-pre-reloc;
2423ddc1c7bSBin Meng				reg = <0x20 0x20>;
2433ddc1c7bSBin Meng				bank-name = "B";
2443ddc1c7bSBin Meng			};
245f2b85ab5SSimon Glass		};
246b21b2081SBin Meng	};
247b21b2081SBin Meng
248568868ddSBin Meng};
249