1/*
2 * Copyright (c) 2022 Intel Corporation.
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#include "skeleton.dtsi"
7#include <zephyr/dt-bindings/interrupt-controller/intel-ioapic.h>
8#include <zephyr/dt-bindings/i2c/i2c.h>
9#include <zephyr/dt-bindings/pcie/pcie.h>
10#include <zephyr/dt-bindings/gpio/gpio.h>
11
12/ {
13	cpus {
14		#address-cells = <1>;
15		#size-cells = <0>;
16
17		cpu@0 {
18			device_type = "cpu";
19			compatible = "intel,raptor-lake";
20			d-cache-line-size = <64>;
21			reg = <0>;
22		};
23
24	};
25
26	dram0: memory@0 {
27		device_type = "memory";
28		reg = <0x0 DT_DRAM_SIZE>;
29	};
30
31	intc: ioapic@fec00000  {
32		compatible = "intel,ioapic";
33		#address-cells = <1>;
34		#interrupt-cells = <3>;
35		reg = <0xfec00000 0x1000>;
36		interrupt-controller;
37	};
38
39	intc_loapic: loapic@fee00000  {
40		compatible = "intel,loapic";
41		reg = <0xfee00000 0x1000>;
42		interrupt-controller;
43		#interrupt-cells = <3>;
44		#address-cells = <1>;
45	};
46
47	pcie0: pcie0 {
48		#address-cells = <1>;
49		#size-cells = <1>;
50		compatible = "pcie-controller";
51		acpi-hid = "PNP0A08";
52		ranges;
53
54		smbus0: smbus0 {
55			compatible = "intel,pch-smbus";
56			#address-cells = <1>;
57			#size-cells = <0>;
58			vendor-id = <0x8086>;
59			device-id = <0x7a23>;
60			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
61			interrupt-parent = <&intc>;
62
63			status = "okay";
64		};
65
66		i2c0_dma: i2c0_dma {
67			compatible = "intel,lpss";
68			#dma-cells = <1>;
69			status = "okay";
70		};
71
72		i2c0: i2c0 {
73			compatible = "snps,designware-i2c";
74			clock-frequency = <I2C_BITRATE_STANDARD>;
75			#address-cells = <1>;
76			#size-cells = <0>;
77			vendor-id = <0x8086>;
78			device-id = <0x7acc>;
79			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
80			interrupt-parent = <&intc>;
81			dmas = <&i2c0_dma 0>;
82
83			status = "okay";
84		};
85
86		i2c1_dma: i2c1_dma {
87			compatible = "intel,lpss";
88			#dma-cells = <1>;
89			status = "disabled";
90		};
91
92		i2c1: i2c1 {
93			compatible = "snps,designware-i2c";
94			clock-frequency = <I2C_BITRATE_STANDARD>;
95			#address-cells = <1>;
96			#size-cells = <0>;
97			vendor-id = <0x8086>;
98			device-id = <0x7acd>;
99			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
100			interrupt-parent = <&intc>;
101			dmas = <&i2c1_dma 0>;
102
103			status = "disabled";
104		};
105
106		i2c2_dma: i2c2_dma {
107			compatible = "intel,lpss";
108			#dma-cells = <1>;
109			status = "disabled";
110		};
111
112		i2c2: i2c2 {
113			compatible = "snps,designware-i2c";
114			clock-frequency = <I2C_BITRATE_STANDARD>;
115			#address-cells = <1>;
116			#size-cells = <0>;
117			#address-cells = <1>;
118			#size-cells = <0>;
119			vendor-id = <0x8086>;
120			device-id = <0x7ace>;
121			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
122			interrupt-parent = <&intc>;
123			dmas = <&i2c2_dma 0>;
124
125			status = "disabled";
126		};
127
128		i2c3_dma: i2c3_dma {
129			compatible = "intel,lpss";
130			#dma-cells = <1>;
131			status = "disabled";
132		};
133
134		i2c3: i2c3 {
135			compatible = "snps,designware-i2c";
136			clock-frequency = <I2C_BITRATE_STANDARD>;
137			#address-cells = <1>;
138			#size-cells = <0>;
139			vendor-id = <0x8086>;
140			device-id = <0x7acf>;
141			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
142			interrupt-parent = <&intc>;
143			dmas = <&i2c3_dma 0>;
144
145			status = "disabled";
146		};
147
148		i2c4_dma: i2c4_dma {
149			compatible = "intel,lpss";
150			#dma-cells = <1>;
151			status = "disabled";
152		};
153
154		i2c4: i2c4 {
155			compatible = "snps,designware-i2c";
156			clock-frequency = <I2C_BITRATE_STANDARD>;
157			#address-cells = <1>;
158			#size-cells = <0>;
159			vendor-id = <0x8086>;
160			device-id = <0x7afc>;
161			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
162			interrupt-parent = <&intc>;
163			dmas = <&i2c4_dma 0>;
164
165			status = "disabled";
166		};
167
168		i2c5_dma: i2c5_dma {
169			compatible = "intel,lpss";
170			#dma-cells = <1>;
171			status = "disabled";
172		};
173
174		i2c5: i2c5 {
175			compatible = "snps,designware-i2c";
176			clock-frequency = <I2C_BITRATE_STANDARD>;
177			#address-cells = <1>;
178			#size-cells = <0>;
179			vendor-id = <0x8086>;
180			device-id = <0x7afd>;
181			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
182			interrupt-parent = <&intc>;
183			dmas = <&i2c5_dma 0>;
184
185			status = "disabled";
186		};
187
188		i2c6_dma: i2c6_dma {
189			compatible = "intel,lpss";
190			#dma-cells = <1>;
191			status = "disabled";
192		};
193
194		i2c6: i2c6 {
195			compatible = "snps,designware-i2c";
196			clock-frequency = <I2C_BITRATE_STANDARD>;
197			#address-cells = <1>;
198			#size-cells = <0>;
199			vendor-id = <0x8086>;
200			device-id = <0x7ada>;
201			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
202			interrupt-parent = <&intc>;
203			dmas = <&i2c6_dma 0>;
204
205			status = "disabled";
206		};
207
208		i2c7_dma: i2c7_dma {
209			compatible = "intel,lpss";
210			#dma-cells = <1>;
211			status = "disabled";
212		};
213
214		i2c7: i2c7 {
215			compatible = "snps,designware-i2c";
216			clock-frequency = <I2C_BITRATE_STANDARD>;
217			#address-cells = <1>;
218			#size-cells = <0>;
219			vendor-id = <0x8086>;
220			device-id = <0x7adb>;
221			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
222			interrupt-parent = <&intc>;
223			dmas = <&i2c7_dma 0>;
224
225			status = "disabled";
226		};
227
228		spi0: spi0 {
229			compatible = "intel,penwell-spi";
230			vendor-id = <0x8086>;
231			device-id = <0x7aaa>;
232			#address-cells = <1>;
233			#size-cells = <0>;
234			pw,cs-mode = <0>;
235			pw,cs-output = <0>;
236			pw,fifo-depth = <64>;
237			cs-gpios = <&gpio_0_i 15 GPIO_ACTIVE_LOW>;
238			clock-frequency = <100000000>;
239			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
240			interrupt-parent = <&intc>;
241			status = "okay";
242		};
243
244		spi1: spi1 {
245			compatible = "intel,penwell-spi";
246			vendor-id = <0x8086>;
247			device-id = <0x7aab>;
248			#address-cells = <1>;
249			#size-cells = <0>;
250			pw,cs-mode = <0>;
251			pw,cs-output = <0>;
252			pw,fifo-depth = <64>;
253			cs-gpios = <&gpio_0_i 19 GPIO_ACTIVE_LOW>;
254			clock-frequency = <100000000>;
255			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
256			interrupt-parent = <&intc>;
257			status = "disabled";
258		};
259
260		spi2: spi2 {
261			compatible = "intel,penwell-spi";
262			vendor-id = <0x8086>;
263			device-id = <0x7afb>;
264			#address-cells = <1>;
265			#size-cells = <0>;
266			pw,cs-mode = <0>;
267			pw,cs-output = <0>;
268			pw,fifo-depth = <64>;
269			cs-gpios = <&gpio_0_r 12 GPIO_ACTIVE_LOW>;
270			clock-frequency = <100000000>;
271			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
272			interrupt-parent = <&intc>;
273			status = "disabled";
274		};
275
276		uart0_dma: uart0_dma {
277			compatible = "intel,lpss";
278			#dma-cells = <1>;
279			status = "disabled";
280		};
281
282		uart0: uart0 {
283			compatible = "ns16550";
284			vendor-id = <0x8086>;
285			device-id = <0x7aa8>;
286			reg-shift = <2>;
287			clock-frequency = <1843200>;
288			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
289			interrupt-parent = <&intc>;
290			current-speed = <115200>;
291			dmas = <&uart0_dma 0>, <&uart0_dma 1>;
292			dma-names = "tx", "rx";
293			status = "disabled";
294		};
295
296		uart1_dma: uart1_dma {
297			compatible = "intel,lpss";
298			#dma-cells = <1>;
299			status = "disabled";
300		};
301
302		uart1: uart1 {
303			compatible = "ns16550";
304			vendor-id = <0x8086>;
305			device-id = <0x7aa9>;
306			reg-shift = <2>;
307			clock-frequency = <1843200>;
308			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
309			interrupt-parent = <&intc>;
310			current-speed = <115200>;
311			dmas = <&uart1_dma 0>, <&uart1_dma 1>;
312			dma-names = "tx", "rx";
313			status = "disabled";
314		};
315
316		uart2: uart2 {
317			compatible = "ns16550";
318			vendor-id = <0x8086>;
319			device-id = <0x7afe>;
320			reg-shift = <2>;
321			clock-frequency = <1843200>;
322			interrupts = <PCIE_IRQ_DETECT IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
323			interrupt-parent = <&intc>;
324			current-speed = <115200>;
325			status = "disabled";
326		};
327	};
328
329	soc {
330		#address-cells = <1>;
331		#size-cells = <1>;
332		compatible = "simple-bus";
333		ranges;
334
335		vtd: vtd@fed91000 {
336			compatible = "intel,vt-d";
337			reg = <0xfed91000 0x1000>;
338
339			status = "okay";
340		};
341
342		uart_ec_0: uart@3f8 {
343			compatible = "ns16550";
344			reg = <0x000003f8 0x100>;
345			io-mapped;
346			clock-frequency = <1843200>;
347			interrupts = <4 IRQ_TYPE_LOWEST_EDGE_RISING 3>;
348			interrupt-parent = <&intc>;
349			reg-shift = <0>;
350			io-mapped;
351			status = "okay";
352		};
353
354		gpio_0_i: gpio@e06e0700 {
355			compatible = "intel,gpio";
356			reg = <0xe06e0700 0x1000>;
357			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
358			interrupt-parent = <&intc>;
359			group-index = <0x0>;
360			gpio-controller;
361			#gpio-cells = <2>;
362			ngpios = <23>;
363			pin-offset = <0>;
364
365			status = "okay";
366		};
367
368		gpio_0_r: gpio@e06e0890 {
369			compatible = "intel,gpio";
370			reg = <0xe06e0890 0x1000>;
371			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
372			interrupt-parent = <&intc>;
373			group-index = <0x1>;
374			gpio-controller;
375			#gpio-cells = <2>;
376			ngpios = <22>;
377			pin-offset = <26>;
378
379			status = "okay";
380		};
381
382		gpio_0_j: gpio@e06e0a00 {
383			compatible = "intel,gpio";
384			reg = <0xe06e0a00 0x1000>;
385			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
386			interrupt-parent = <&intc>;
387			group-index = <0x2>;
388			gpio-controller;
389			#gpio-cells = <2>;
390			ngpios = <12>;
391			pin-offset = <49>;
392
393			status = "okay";
394		};
395
396		gpio_1_b: gpio@e06d0700 {
397			compatible = "intel,gpio";
398			reg = <0xe06d0700 0x1000>;
399			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
400			interrupt-parent = <&intc>;
401			group-index = <0x0>;
402			gpio-controller;
403			#gpio-cells = <2>;
404			ngpios = <24>;
405			pin-offset = <0>;
406
407			status = "okay";
408		};
409
410		gpio_1_g: gpio@e06d0880 {
411			compatible = "intel,gpio";
412			reg = <0xe06d0880 0x1000>;
413			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
414			interrupt-parent = <&intc>;
415			group-index = <0x1>;
416			gpio-controller;
417			#gpio-cells = <2>;
418			ngpios = <8>;
419			pin-offset = <24>;
420
421			status = "okay";
422		};
423
424		gpio_1_h: gpio@e06d0900 {
425			compatible = "intel,gpio";
426			reg = <0xe06d0900 0x1000>;
427			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
428			interrupt-parent = <&intc>;
429			group-index = <0x2>;
430			gpio-controller;
431			#gpio-cells = <2>;
432			ngpios = <24>;
433			pin-offset = <32>;
434
435			status = "okay";
436		};
437
438		gpio_3_a: gpio@e06b0790 {
439			compatible = "intel,gpio";
440			reg = <0xe06b0790 0x1000>;
441			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
442			interrupt-parent = <&intc>;
443			group-index = <0x1>;
444			gpio-controller;
445			#gpio-cells = <2>;
446			ngpios = <15>;
447			pin-offset = <9>;
448
449			status = "okay";
450		};
451
452		gpio_3_c: gpio@e06b0890 {
453			compatible = "intel,gpio";
454			reg = <0xe06b0890 0x1000>;
455			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
456			interrupt-parent = <&intc>;
457			group-index = <0x2>;
458			gpio-controller;
459			#gpio-cells = <2>;
460			ngpios = <24>;
461			pin-offset = <25>;
462
463			status = "okay";
464		};
465
466		gpio_4_s: gpio@e06a0700 {
467			compatible = "intel,gpio";
468			reg = <0xe06a0700 0x1000>;
469			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
470			interrupt-parent = <&intc>;
471			group-index = <0x0>;
472			gpio-controller;
473			#gpio-cells = <2>;
474			ngpios = <8>;
475			pin-offset = <0>;
476
477			status = "okay";
478		};
479
480		gpio_4_e: gpio@e06a0780 {
481			compatible = "intel,gpio";
482			reg = <0xe06a0780 0x1000>;
483			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
484			interrupt-parent = <&intc>;
485			group-index = <0x1>;
486			gpio-controller;
487			#gpio-cells = <2>;
488			ngpios = <22>;
489			pin-offset = <8>;
490
491			status = "okay";
492		};
493
494		gpio_4_k: gpio@e06a08f0 {
495			compatible = "intel,gpio";
496			reg = <0xe06a08f0 0x1000>;
497			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
498			interrupt-parent = <&intc>;
499			group-index = <0x2>;
500			gpio-controller;
501			#gpio-cells = <2>;
502			ngpios = <12>;
503			pin-offset = <25>;
504
505			status = "okay";
506		};
507
508		gpio_4_f: gpio@e06a09e0 {
509			compatible = "intel,gpio";
510			reg = <0xe06a09e0 0x1000>;
511			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
512			interrupt-parent = <&intc>;
513			group-index = <0x3>;
514			gpio-controller;
515			#gpio-cells = <2>;
516			ngpios = <24>;
517			pin-offset = <41>;
518
519			status = "okay";
520		};
521
522		gpio_5_d: gpio@e0690700 {
523			compatible = "intel,gpio";
524			reg = <0xe0690700 0x1000>;
525			interrupts = <14 IRQ_TYPE_LOWEST_LEVEL_LOW 3>;
526			interrupt-parent = <&intc>;
527			group-index = <0x0>;
528			gpio-controller;
529			#gpio-cells = <2>;
530			ngpios = <24>;
531			pin-offset = <0>;
532
533			status = "okay";
534		};
535
536		pwm0: pwm@e06a0000 {
537			compatible = "intel,blinky-pwm";
538			reg = <0xe06a0000 0x400>;
539			reg-offset = <0x304>;
540			clock-frequency = <32768>;
541			max-pins = <1>;
542			#pwm-cells = <2>;
543			status = "okay";
544		};
545
546		rtc: counter: rtc@70 {
547			compatible = "motorola,mc146818";
548			reg = <0x70 0x0D 0x71 0x0D>;
549			interrupts = <8 IRQ_TYPE_LOWEST_EDGE_RISING 3>;
550			interrupt-parent = <&intc>;
551			alarms-count = <1>;
552
553			status = "okay";
554		};
555
556		tgpio: tgpio@fe001200 {
557			compatible = "intel,timeaware-gpio";
558			reg = <0xfe001200 0x100>;
559			timer-clock = <19200000>;
560			max-pins = <2>;
561			status = "okay";
562		};
563
564		hpet: hpet@fed00000 {
565			compatible = "intel,hpet";
566			reg = <0xfed00000 0x400>;
567			interrupts = <2 IRQ_TYPE_FIXED_EDGE_RISING 4>;
568			interrupt-parent = <&intc>;
569
570			status = "okay";
571		};
572
573		tco_wdt: tco_wdt@400 {
574			compatible = "intel,tco-wdt";
575			reg = <0x0400 0x20>;
576
577			status = "disabled";
578		};
579	};
580};
581