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
7sysclk: system-clock {
8	compatible = "fixed-clock";
9	clock-frequency = <25000000>;
10	#clock-cells = <0>;
11};
12
13gpio0: gpio@100000 {
14	compatible = "arm,cmsdk-gpio";
15	reg = <0x100000 0x1000>;
16	interrupts = <69 3>;
17	gpio-controller;
18	#gpio-cells = <2>;
19};
20
21gpio1: gpio@101000 {
22	compatible = "arm,cmsdk-gpio";
23	reg = <0x101000 0x1000>;
24	interrupts = <70 3>;
25	gpio-controller;
26	#gpio-cells = <2>;
27};
28
29gpio2: gpio@102000 {
30	compatible = "arm,cmsdk-gpio";
31	reg = <0x102000 0x1000>;
32	interrupts = <71 3>;
33	gpio-controller;
34	#gpio-cells = <2>;
35};
36
37gpio3: gpio@103000 {
38	compatible = "arm,cmsdk-gpio";
39	reg = <0x103000 0x1000>;
40	interrupts = <72 3>;
41	gpio-controller;
42	#gpio-cells = <2>;
43};
44
45eth0: eth@400000 {
46	/* Linux has "smsc,lan9115" */
47	compatible = "smsc,lan9220";
48	/* Actual reg range is ~0x200 */
49	reg = <0x400000 0x100000>;
50	interrupts = <49 3>;
51};
52
53i2c_touch: i2c@8100000 {
54	compatible = "arm,versatile-i2c";
55	clock-frequency = <I2C_BITRATE_STANDARD>;
56	#address-cells = <1>;
57	#size-cells = <0>;
58	reg = <0x8100000 0x1000>;
59};
60
61i2c_audio_conf: i2c@8101000 {
62	compatible = "arm,versatile-i2c";
63	clock-frequency = <I2C_BITRATE_STANDARD>;
64	#address-cells = <1>;
65	#size-cells = <0>;
66	reg = <0x8101000 0x1000>;
67};
68
69spi_adc: spi@8102000 {
70	compatible = "arm,pl022";
71	reg = <0x8102000 DT_SIZE_K(4)>;
72	interrupts = <53 3>;
73	interrupt-names = "shield_adc";
74	clocks = <&sysclk>;
75	#address-cells = <1>;
76	#size-cells = <0>;
77};
78
79spi_shield0: spi@8103000 {
80	compatible = "arm,pl022";
81	reg = <0x8103000 DT_SIZE_K(4)>;
82	interrupts = <54 3>;
83	interrupt-names = "shield0_spi";
84	clocks = <&sysclk>;
85	#address-cells = <1>;
86	#size-cells = <0>;
87	pinctrl-0 = <&spi3_default>;
88	pinctrl-names = "default";
89};
90
91spi_shield1: spi@8104000 {
92	compatible = "arm,pl022";
93	reg = <0x8104000 DT_SIZE_K(4)>;
94	interrupts = <55 3>;
95	interrupt-names = "shield1_spi";
96	clocks = <&sysclk>;
97	#address-cells = <1>;
98	#size-cells = <0>;
99	pinctrl-0 = <&spi4_default>;
100	pinctrl-names = "default";
101};
102
103i2c_shield0: i2c@8105000 {
104	compatible = "arm,versatile-i2c";
105	clock-frequency = <I2C_BITRATE_STANDARD>;
106	#address-cells = <1>;
107	#size-cells = <0>;
108	reg = <0x8105000 0x1000>;
109	pinctrl-0 = <&sbcon2_default>;
110	pinctrl-names = "default";
111};
112
113i2c_shield1: i2c@8106000 {
114	compatible = "arm,versatile-i2c";
115	clock-frequency = <I2C_BITRATE_STANDARD>;
116	#address-cells = <1>;
117	#size-cells = <0>;
118	reg = <0x8106000 0x1000>;
119	pinctrl-0 = <&sbcon3_default>;
120	pinctrl-names = "default";
121};
122
123i2c_ddr4_eeprom: i2c@8108000 {
124	compatible = "arm,versatile-i2c";
125	clock-frequency = <I2C_BITRATE_STANDARD>;
126	#address-cells = <1>;
127	#size-cells = <0>;
128	reg = <0x8108000 0x1000>;
129};
130
131gpio_led0: mps4_fpgaio@8202000 {
132	compatible = "arm,mmio32-gpio";
133	reg = <0x8202000 0x4>;
134	gpio-controller;
135	#gpio-cells = <1>;
136	ngpios = <8>;
137};
138
139gpio_button: mps4_fpgaio@8202008 {
140	compatible = "arm,mmio32-gpio";
141	reg = <0x8202008 0x4>;
142	gpio-controller;
143	#gpio-cells = <1>;
144	ngpios = <2>;
145	direction-input;
146};
147
148gpio_misc: mps4_fpgaio@820204c {
149	compatible = "arm,mmio32-gpio";
150	reg = <0x820204c 0x4>;
151	gpio-controller;
152	#gpio-cells = <1>;
153	ngpios = <3>;
154};
155
156uart0: uart@8203000 {
157	compatible = "arm,cmsdk-uart";
158	reg = <0x8203000 0x1000>;
159	interrupts = <34 3 33 3>;
160	interrupt-names = "tx", "rx";
161	clocks = <&sysclk>;
162	current-speed = <115200>;
163};
164
165uart1: uart@8204000 {
166	compatible = "arm,cmsdk-uart";
167	reg = <0x8204000 0x1000>;
168	interrupts = <36 3 35 3>;
169	interrupt-names = "tx", "rx";
170	clocks = <&sysclk>;
171	current-speed = <115200>;
172};
173
174uart2: uart@8205000 {
175	compatible = "arm,cmsdk-uart";
176	reg = <0x8205000 0x1000>;
177	interrupts = <38 3 37 3>;
178	interrupt-names = "tx", "rx";
179	clocks = <&sysclk>;
180	current-speed = <115200>;
181};
182
183uart3: uart@8206000 {
184	compatible = "arm,cmsdk-uart";
185	reg = <0x8206000 0x1000>;
186	interrupts = <40 3 39 3>;
187	interrupt-names = "tx", "rx";
188	clocks = <&sysclk>;
189	current-speed = <115200>;
190	pinctrl-0 = <&uart3_default>;
191	pinctrl-names = "default";
192};
193
194uart4: uart@8207000 {
195	compatible = "arm,cmsdk-uart";
196	reg = <0x8207000 0x1000>;
197	interrupts = <42 3 41 3>;
198	interrupt-names = "tx", "rx";
199	clocks = <&sysclk>;
200	current-speed = <115200>;
201	pinctrl-0 = <&uart4_default>;
202	pinctrl-names = "default";
203};
204
205uart5: uart@8208000 {
206	compatible = "arm,cmsdk-uart";
207	status = "disabled";
208	reg = <0x8208000 0x1000>;
209	interrupt-names = "tx", "rx";
210	interrupts = <126 3 125 3>;
211	clocks = <&sysclk>;
212	current-speed = <115200>;
213};
214
215pinctrl: pinctrl {
216	compatible = "arm,mps4-pinctrl";
217	status = "okay";
218};
219