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