1/*
2 * Copyright (c) 2018, Cypress
3 * Copyright (c) 2020-2021, ATL Electronics
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#include <mem.h>
9#include <zephyr/dt-bindings/gpio/gpio.h>
10
11#include "psoc6-pinctrl.dtsi"
12
13/ {
14	cpus {
15		#address-cells = <1>;
16		#size-cells = <0>;
17
18		cpu@0 {
19			device_type = "cpu";
20			compatible = "arm,cortex-m0+";
21			reg = <0>;
22		};
23		cpu@1 {
24			device_type = "cpu";
25			compatible = "arm,cortex-m4f";
26			reg = <1>;
27		};
28	};
29
30	flash-controller@40250000 {
31			compatible = "cypress,psoc6-flash-controller";
32			reg = <0x40250000 0x10000>;
33
34			#address-cells = <1>;
35			#size-cells = <1>;
36
37
38			flash0: flash@10000000 {
39				compatible = "soc-nv-flash";
40				reg = <0x10000000 DT_SIZE_K(384)>;
41				write-block-size = <4>;
42			};
43
44			flash1: flash@10060000 {
45				compatible = "soc-nv-flash";
46				reg = <0x10060000 DT_SIZE_K(640)>;
47				write-block-size = <4>;
48			};
49	};
50
51	sram0: memory@8000000 {
52		compatible = "mmio-sram";
53		reg = <0x08000000 DT_SIZE_K(140)>;
54	};
55
56	sram1: memory@8023000 {
57		compatible = "zephyr,memory-region", "mmio-sram";
58		reg = <0x08023000 DT_SIZE_K(4)>;
59		zephyr,memory-region = "SRAM1";
60	};
61
62	sram2: memory@8024000 {
63		compatible = "zephyr,memory-region", "mmio-sram";
64		reg = <0x08024000 DT_SIZE_K(112)>;
65		zephyr,memory-region = "SRAM2";
66	};
67
68	soc {
69		pinctrl@40310000 {
70			compatible = "cypress,psoc6-pinctrl";
71			#address-cells = <1>;
72			#size-cells = <1>;
73			ranges = <0x40310000 0x40310000 0x2024>;
74
75			hsiom: hsiom@40310000 {
76				compatible = "cypress,psoc6-hsiom";
77				reg = <0x40310000 0x2024>;
78				interrupts = <15 1>, <16 1>;
79				status = "disabled";
80			};
81
82			gpio_prt0: gpio@40320000 {
83				compatible = "cypress,psoc6-gpio";
84				reg = <0x40320000 0x80>;
85				interrupts = <0 1>;
86				gpio-controller;
87				ngpios = <6>;
88				#gpio-cells = <2>;
89				#cypress,pin-cells = <2>;
90				status = "disabled";
91			};
92			gpio_prt1: gpio@40320080 {
93				compatible = "cypress,psoc6-gpio";
94				reg = <0x40320080 0x80>;
95				interrupts = <1 1>;
96				gpio-controller;
97				ngpios = <6>;
98				#gpio-cells = <2>;
99				#cypress,pin-cells = <2>;
100				status = "disabled";
101			};
102			gpio_prt2: gpio@40320100 {
103				compatible = "cypress,psoc6-gpio";
104				reg = <0x40320100 0x80>;
105				interrupts = <2 1>;
106				gpio-controller;
107				ngpios = <8>;
108				#gpio-cells = <2>;
109				#cypress,pin-cells = <2>;
110				status = "disabled";
111			};
112			gpio_prt3: gpio@40320180 {
113				compatible = "cypress,psoc6-gpio";
114				reg = <0x40320180 0x80>;
115				interrupts = <3 1>;
116				gpio-controller;
117				ngpios = <6>;
118				#gpio-cells = <2>;
119				#cypress,pin-cells = <2>;
120				status = "disabled";
121			};
122			gpio_prt4: gpio@40320200 {
123				compatible = "cypress,psoc6-gpio";
124				reg = <0x40320200 0x80>;
125				interrupts = <4 1>;
126				gpio-controller;
127				ngpios = <4>;
128				#gpio-cells = <2>;
129				#cypress,pin-cells = <2>;
130				status = "disabled";
131			};
132			gpio_prt5: gpio@40320280 {
133				compatible = "cypress,psoc6-gpio";
134				reg = <0x40320280 0x80>;
135				interrupts = <5 1>;
136				gpio-controller;
137				ngpios = <8>;
138				#gpio-cells = <2>;
139				#cypress,pin-cells = <2>;
140				status = "disabled";
141			};
142			gpio_prt6: gpio@40320300 {
143				compatible = "cypress,psoc6-gpio";
144				reg = <0x40320300 0x80>;
145				interrupts = <6 1>;
146				gpio-controller;
147				ngpios = <8>;
148				#gpio-cells = <2>;
149				#cypress,pin-cells = <2>;
150				status = "disabled";
151			};
152			gpio_prt7: gpio@40320380 {
153				compatible = "cypress,psoc6-gpio";
154				reg = <0x40320380 0x80>;
155				interrupts = <7 1>;
156				gpio-controller;
157				ngpios = <8>;
158				#gpio-cells = <2>;
159				#cypress,pin-cells = <2>;
160				status = "disabled";
161			};
162			gpio_prt8: gpio@40320400 {
163				compatible = "cypress,psoc6-gpio";
164				reg = <0x40320400 0x80>;
165				interrupts = <8 1>;
166				gpio-controller;
167				ngpios = <8>;
168				#gpio-cells = <2>;
169				#cypress,pin-cells = <2>;
170				status = "disabled";
171			};
172			gpio_prt9: gpio@40320480 {
173				compatible = "cypress,psoc6-gpio";
174				reg = <0x40320480 0x80>;
175				interrupts = <9 1>;
176				gpio-controller;
177				ngpios = <8>;
178				#gpio-cells = <2>;
179				#cypress,pin-cells = <2>;
180				status = "disabled";
181			};
182			gpio_prt10: gpio@40320500 {
183				compatible = "cypress,psoc6-gpio";
184				reg = <0x40320500 0x80>;
185				interrupts = <10 1>;
186				gpio-controller;
187				ngpios = <8>;
188				#gpio-cells = <2>;
189				#cypress,pin-cells = <2>;
190				status = "disabled";
191			};
192			gpio_prt11: gpio@40320580 {
193				compatible = "cypress,psoc6-gpio";
194				reg = <0x40320580 0x80>;
195				interrupts = <11 1>;
196				gpio-controller;
197				ngpios = <8>;
198				#gpio-cells = <2>;
199				#cypress,pin-cells = <2>;
200				status = "disabled";
201			};
202			gpio_prt12: gpio@40320600 {
203				compatible = "cypress,psoc6-gpio";
204				reg = <0x40320600 0x80>;
205				interrupts = <12 1>;
206				gpio-controller;
207				ngpios = <8>;
208				#gpio-cells = <2>;
209				#cypress,pin-cells = <2>;
210				status = "disabled";
211			};
212			gpio_prt13: gpio@40320680 {
213				compatible = "cypress,psoc6-gpio";
214				reg = <0x40320680 0x80>;
215				interrupts = <13 1>;
216				gpio-controller;
217				ngpios = <8>;
218				#gpio-cells = <2>;
219				#cypress,pin-cells = <2>;
220				status = "disabled";
221			};
222			gpio_prt14: gpio@40320700 {
223				compatible = "cypress,psoc6-gpio";
224				reg = <0x40320700 0x80>;
225				interrupts = <14 1>;
226				gpio-controller;
227				ngpios = <2>;
228				#gpio-cells = <2>;
229				#cypress,pin-cells = <2>;
230				status = "disabled";
231			};
232		};
233
234		spi0: spi@40610000 {
235			compatible = "cypress,psoc6-spi";
236			reg = <0x40610000 0x10000>;
237			interrupts = <41 6>;
238			peripheral-id = <0>;
239			status = "disabled";
240			#address-cells = <1>;
241			#size-cells = <0>;
242		};
243		spi1: spi@40620000 {
244			compatible = "cypress,psoc6-spi";
245			reg = <0x40620000 0x10000>;
246			interrupts = <42 6>;
247			peripheral-id = <1>;
248			status = "disabled";
249			#address-cells = <1>;
250			#size-cells = <0>;
251		};
252		spi2: spi@40630000 {
253			compatible = "cypress,psoc6-spi";
254			reg = <0x40630000 0x10000>;
255			interrupts = <43 6>;
256			peripheral-id = <2>;
257			status = "disabled";
258			#address-cells = <1>;
259			#size-cells = <0>;
260		};
261		spi3: spi@40640000 {
262			compatible = "cypress,psoc6-spi";
263			reg = <0x40640000 0x10000>;
264			interrupts = <44 6>;
265			peripheral-id = <3>;
266			status = "disabled";
267			#address-cells = <1>;
268			#size-cells = <0>;
269		};
270		spi4: spi@40650000 {
271			compatible = "cypress,psoc6-spi";
272			reg = <0x40650000 0x10000>;
273			interrupts = <45 6>;
274			peripheral-id = <4>;
275			status = "disabled";
276			#address-cells = <1>;
277			#size-cells = <0>;
278		};
279		spi5: spi@40660000 {
280			compatible = "cypress,psoc6-spi";
281			reg = <0x40660000 0x10000>;
282			interrupts = <46 6>;
283			peripheral-id = <5>;
284			status = "disabled";
285			#address-cells = <1>;
286			#size-cells = <0>;
287		};
288		spi6: spi@40670000 {
289			compatible = "cypress,psoc6-spi";
290			reg = <0x40670000 0x10000>;
291			interrupts = <47 6>;
292			peripheral-id = <6>;
293			status = "disabled";
294			#address-cells = <1>;
295			#size-cells = <0>;
296		};
297		spi7: spi@40680000 {
298			compatible = "cypress,psoc6-spi";
299			reg = <0x40680000 0x10000>;
300			interrupts = <48 6>;
301			peripheral-id = <7>;
302			status = "disabled";
303			#address-cells = <1>;
304			#size-cells = <0>;
305		};
306		spi8: spi@40690000 {
307			compatible = "cypress,psoc6-spi";
308			reg = <0x40690000 0x10000>;
309			interrupts = <18 6>;
310			peripheral-id = <8>;
311			status = "disabled";
312			#address-cells = <1>;
313			#size-cells = <0>;
314		};
315
316		uart0: uart@40610000 {
317			compatible = "cypress,psoc6-uart";
318			reg = <0x40610000 0x10000>;
319			interrupts = <41 6>;
320			peripheral-id = <0>;
321			status = "disabled";
322		};
323		uart1: uart@40620000 {
324			compatible = "cypress,psoc6-uart";
325			reg = <0x40620000 0x10000>;
326			interrupts = <42 6>;
327			peripheral-id = <1>;
328			status = "disabled";
329		};
330		uart2: uart@40630000 {
331			compatible = "cypress,psoc6-uart";
332			reg = <0x40630000 0x10000>;
333			interrupts = <43 6>;
334			peripheral-id = <2>;
335			status = "disabled";
336		};
337		uart3: uart@40640000 {
338			compatible = "cypress,psoc6-uart";
339			reg = <0x40640000 0x10000>;
340			interrupts = <44 6>;
341			peripheral-id = <3>;
342			status = "disabled";
343		};
344		uart4: uart@40650000 {
345			compatible = "cypress,psoc6-uart";
346			reg = <0x40650000 0x10000>;
347			interrupts = <45 6>;
348			peripheral-id = <4>;
349			status = "disabled";
350		};
351		uart5: uart@40660000 {
352			compatible = "cypress,psoc6-uart";
353			reg = <0x40660000 0x10000>;
354			interrupts = <46 6>;
355			peripheral-id = <5>;
356			status = "disabled";
357		};
358		uart6: uart@40670000 {
359			compatible = "cypress,psoc6-uart";
360			reg = <0x40670000 0x10000>;
361			interrupts = <47 6>;
362			peripheral-id = <6>;
363			status = "disabled";
364		};
365		uart7: uart@40680000 {
366			compatible = "cypress,psoc6-uart";
367			reg = <0x40680000 0x10000>;
368			interrupts = <48 6>;
369			peripheral-id = <7>;
370			status = "disabled";
371		};
372		uart8: uart@40690000 {
373			compatible = "cypress,psoc6-uart";
374			reg = <0x40690000 0x10000>;
375			interrupts = <18 6>;
376			peripheral-id = <8>;
377			status = "disabled";
378		};
379
380		uid: device_uid@16000600 {
381			compatible = "cypress,psoc6-uid";
382			reg = <0x16000600 0xb>;
383			status = "okay";
384		};
385	};
386};
387