1// SPDX-License-Identifier: GPL-2.0
2/*
3 * SoC core Device Tree for the ARM Integrator platforms
4 */
5
6/ {
7	#address-cells = <1>;
8	#size-cells = <1>;
9
10	memory {
11		device_type = "memory";
12		reg = <0x0 0x0>;
13	};
14
15	core-module@10000000 {
16		compatible = "arm,core-module-integrator", "syscon", "simple-mfd";
17		reg = <0x10000000 0x200>;
18
19		/* Use core module LED to indicate CPU load */
20		led@c.0 {
21			compatible = "register-bit-led";
22			offset = <0x0c>;
23			mask = <0x01>;
24			label = "integrator:core_module";
25			linux,default-trigger = "cpu0";
26			default-state = "on";
27		};
28	};
29
30	ebi@12000000 {
31		compatible = "arm,external-bus-interface";
32		reg = <0x12000000 0x100>;
33	};
34
35	timer@13000000 {
36		reg = <0x13000000 0x100>;
37		interrupt-parent = <&pic>;
38		interrupts = <5>;
39	};
40
41	timer@13000100 {
42		reg = <0x13000100 0x100>;
43		interrupt-parent = <&pic>;
44		interrupts = <6>;
45	};
46
47	timer@13000200 {
48		reg = <0x13000200 0x100>;
49		interrupt-parent = <&pic>;
50		interrupts = <7>;
51	};
52
53	pic@14000000 {
54		compatible = "arm,versatile-fpga-irq";
55		#interrupt-cells = <1>;
56		interrupt-controller;
57		reg = <0x14000000 0x100>;
58		clear-mask = <0xffffffff>;
59	};
60
61	flash@24000000 {
62		compatible = "arm,versatile-flash", "cfi-flash";
63		reg = <0x24000000 0x02000000>;
64		bank-width = <4>;
65		partitions {
66			compatible = "arm,arm-firmware-suite";
67		};
68	};
69
70	fpga {
71		compatible = "simple-bus";
72		#address-cells = <1>;
73		#size-cells = <1>;
74		ranges;
75		interrupt-parent = <&pic>;
76
77		/*
78		 * These PrimeCells are in the same locations and using the
79		 * same interrupts in all Integrators, however the silicon
80		 * version deployed is different.
81		 */
82		rtc@15000000 {
83			reg = <0x15000000 0x1000>;
84			interrupts = <8>;
85		};
86
87		uart@16000000 {
88			reg = <0x16000000 0x1000>;
89			interrupts = <1>;
90		};
91
92		uart@17000000 {
93			reg = <0x17000000 0x1000>;
94			interrupts = <2>;
95		};
96
97		kmi@18000000 {
98			reg = <0x18000000 0x1000>;
99			interrupts = <3>;
100		};
101
102		kmi@19000000 {
103			reg = <0x19000000 0x1000>;
104			interrupts = <4>;
105		};
106
107		syscon {
108			/* Debug registers mapped as syscon */
109			compatible = "syscon", "simple-mfd";
110			reg = <0x1a000000 0x10>;
111
112			led@4.0 {
113				compatible = "register-bit-led";
114				offset = <0x04>;
115				mask = <0x01>;
116				label = "integrator:green0";
117				linux,default-trigger = "heartbeat";
118				default-state = "on";
119			};
120			led@4.1 {
121				compatible = "register-bit-led";
122				offset = <0x04>;
123				mask = <0x02>;
124				label = "integrator:yellow";
125				default-state = "off";
126			};
127			led@4.2 {
128				compatible = "register-bit-led";
129				offset = <0x04>;
130				mask = <0x04>;
131				label = "integrator:red";
132				default-state = "off";
133			};
134			led@4.3 {
135				compatible = "register-bit-led";
136				offset = <0x04>;
137				mask = <0x08>;
138				label = "integrator:green1";
139				default-state = "off";
140			};
141		};
142	};
143};
144