1/*
2 * Copyright 2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8
9#include <arm/armv8.1-m.dtsi>
10#include <zephyr/dt-bindings/i2c/i2c.h>
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12#include <mem.h>
13
14/ {
15	compatible = "arm,mps4-fvp";
16	#address-cells = <1>;
17	#size-cells = <1>;
18
19	chosen {
20		zephyr,console = &uart0;
21		zephyr,shell-uart = &uart0;
22		zephyr,sram = &sram;
23		zephyr,flash = &isram;
24	};
25
26	cpus {
27		#address-cells = <1>;
28		#size-cells = <0>;
29
30		cpu@0 {
31			device_type = "cpu";
32			compatible = "arm,cortex-m85";
33			reg = <0>;
34			#address-cells = <1>;
35			#size-cells = <1>;
36
37			mpu: mpu@e000ed90 {
38				compatible = "arm,armv8.1m-mpu";
39				reg = <0xe000ed90 0x40>;
40			};
41		};
42	};
43
44	ethosu {
45		#address-cells = <1>;
46		#size-cells = <0>;
47		interrupt-parent = <&nvic>;
48
49		ethosu0: ethosu@50004000 {
50			compatible = "arm,ethos-u";
51			reg = <0x50004000>;
52			interrupts = <16 3>;
53			secure-enable;
54			privilege-enable;
55			status = "okay";
56		};
57	};
58
59	/* We utilize the secure addresses, if you subtract 0x10000000
60	 * you'll get the non-secure alias
61	 */
62	itcm: itcm@10000000 {	/* alias @ 0x0 */
63		compatible = "zephyr,memory-region";
64		reg = <0x10000000 DT_SIZE_K(32)>;
65		zephyr,memory-region = "ITCM";
66	};
67
68	sram: sram@12000000 {	/* alias @ 0x01000000 */
69		compatible = "zephyr,memory-region", "mmio-sram";
70		reg = <0x12000000 DT_SIZE_M(2)>;
71		zephyr,memory-region = "SRAM";
72	};
73
74	dtcm: dtcm@30000000 {	/* alias @ 0x20000000 */
75		compatible = "zephyr,memory-region";
76		reg = <0x30000000 DT_SIZE_K(32)>;
77		zephyr,memory-region = "DTCM";
78	};
79
80	isram: sram@31000000 {	/* alias @ 0x21000000 */
81		compatible = "zephyr,memory-region", "mmio-sram";
82		reg = <0x31000000 DT_SIZE_M(4)>;
83		zephyr,memory-region = "ISRAM";
84	};
85
86	soc {
87		peripheral@50000000 {
88			#address-cells = <1>;
89			#size-cells = <1>;
90			ranges = <0x0 0x50000000 0x10000000>;
91
92			#include "mps4_common_soc_peripheral.dtsi"
93		};
94	};
95};
96
97#include "mps4_common.dtsi"
98