Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
8deed178 PM |
2 | /* |
3 | * ARM Ltd. Versatile Express | |
4 | * | |
5 | * Motherboard Express uATX | |
6 | * V2M-P1 | |
7 | * | |
8 | * HBI-0190D | |
9 | * | |
10 | * Original memory map ("Legacy memory map" in the board's | |
11 | * Technical Reference Manual) | |
12 | * | |
13 | * WARNING! The hardware described in this file is independent from the | |
14 | * RS1 variant (vexpress-v2m-rs1.dtsi), but there is a strong | |
15 | * correspondence between the two configurations. | |
16 | * | |
17 | * TAKE CARE WHEN MAINTAINING THIS FILE TO PROPAGATE ANY RELEVANT | |
18 | * CHANGES TO vexpress-v2m-rs1.dtsi! | |
19 | */ | |
20 | ||
bd7aff03 LW |
21 | / { |
22 | smb@4000000 { | |
23 | motherboard { | |
24 | model = "V2M-P1"; | |
25 | arm,hbi = <0x190>; | |
26 | arm,vexpress,site = <0>; | |
27 | compatible = "arm,vexpress,v2m-p1", "simple-bus"; | |
28 | #address-cells = <2>; /* SMB chipselect number and offset */ | |
29 | #size-cells = <1>; | |
30 | #interrupt-cells = <1>; | |
31 | ranges; | |
8deed178 | 32 | |
bd7aff03 LW |
33 | flash@0,00000000 { |
34 | compatible = "arm,vexpress-flash", "cfi-flash"; | |
35 | reg = <0 0x00000000 0x04000000>, | |
36 | <1 0x00000000 0x04000000>; | |
37 | bank-width = <4>; | |
38 | }; | |
8deed178 | 39 | |
bd7aff03 LW |
40 | psram@2,00000000 { |
41 | compatible = "arm,vexpress-psram", "mtd-ram"; | |
42 | reg = <2 0x00000000 0x02000000>; | |
43 | bank-width = <4>; | |
44 | }; | |
8deed178 | 45 | |
bd7aff03 LW |
46 | ethernet@3,02000000 { |
47 | compatible = "smsc,lan9118", "smsc,lan9115"; | |
48 | reg = <3 0x02000000 0x10000>; | |
49 | interrupts = <15>; | |
50 | phy-mode = "mii"; | |
51 | reg-io-width = <4>; | |
52 | smsc,irq-active-high; | |
53 | smsc,irq-push-pull; | |
54 | vdd33a-supply = <&v2m_fixed_3v3>; | |
55 | vddvario-supply = <&v2m_fixed_3v3>; | |
56 | }; | |
8deed178 | 57 | |
bd7aff03 LW |
58 | usb@3,03000000 { |
59 | compatible = "nxp,usb-isp1761"; | |
60 | reg = <3 0x03000000 0x20000>; | |
61 | interrupts = <16>; | |
62 | port1-otg; | |
63 | }; | |
8deed178 | 64 | |
bd7aff03 LW |
65 | iofpga@7,00000000 { |
66 | compatible = "simple-bus"; | |
67 | #address-cells = <1>; | |
68 | #size-cells = <1>; | |
69 | ranges = <0 7 0 0x20000>; | |
974cc7b9 | 70 | |
bd7aff03 LW |
71 | v2m_sysreg: sysreg@0 { |
72 | compatible = "arm,vexpress-sysreg"; | |
73 | reg = <0x00000 0x1000>; | |
83be0e60 SH |
74 | #address-cells = <1>; |
75 | #size-cells = <1>; | |
76 | ranges = <0 0 0x1000>; | |
974cc7b9 | 77 | |
83be0e60 | 78 | v2m_led_gpios: gpio@8 { |
bd7aff03 | 79 | compatible = "arm,vexpress-sysreg,sys_led"; |
83be0e60 | 80 | reg = <0x008 4>; |
bd7aff03 LW |
81 | gpio-controller; |
82 | #gpio-cells = <2>; | |
83 | }; | |
84 | ||
83be0e60 | 85 | v2m_mmc_gpios: gpio@48 { |
bd7aff03 | 86 | compatible = "arm,vexpress-sysreg,sys_mci"; |
83be0e60 | 87 | reg = <0x048 4>; |
bd7aff03 LW |
88 | gpio-controller; |
89 | #gpio-cells = <2>; | |
90 | }; | |
91 | ||
83be0e60 | 92 | v2m_flash_gpios: gpio@4c { |
bd7aff03 | 93 | compatible = "arm,vexpress-sysreg,sys_flash"; |
83be0e60 | 94 | reg = <0x04c 4>; |
bd7aff03 LW |
95 | gpio-controller; |
96 | #gpio-cells = <2>; | |
97 | }; | |
974cc7b9 PM |
98 | }; |
99 | ||
bd7aff03 LW |
100 | v2m_sysctl: sysctl@1000 { |
101 | compatible = "arm,sp810", "arm,primecell"; | |
102 | reg = <0x01000 0x1000>; | |
103 | clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>; | |
104 | clock-names = "refclk", "timclk", "apb_pclk"; | |
105 | #clock-cells = <1>; | |
106 | clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; | |
107 | assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; | |
108 | assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; | |
974cc7b9 | 109 | }; |
8deed178 | 110 | |
bd7aff03 LW |
111 | /* PCI-E I2C bus */ |
112 | v2m_i2c_pcie: i2c@2000 { | |
113 | compatible = "arm,versatile-i2c"; | |
114 | reg = <0x02000 0x1000>; | |
8deed178 | 115 | |
bd7aff03 LW |
116 | #address-cells = <1>; |
117 | #size-cells = <0>; | |
8deed178 | 118 | |
bd7aff03 LW |
119 | pcie-switch@60 { |
120 | compatible = "idt,89hpes32h8"; | |
121 | reg = <0x60>; | |
122 | }; | |
123 | }; | |
8deed178 | 124 | |
bd7aff03 LW |
125 | aaci@4000 { |
126 | compatible = "arm,pl041", "arm,primecell"; | |
127 | reg = <0x04000 0x1000>; | |
128 | interrupts = <11>; | |
129 | clocks = <&smbclk>; | |
130 | clock-names = "apb_pclk"; | |
8deed178 | 131 | }; |
8deed178 | 132 | |
bd7aff03 LW |
133 | mmci@5000 { |
134 | compatible = "arm,pl180", "arm,primecell"; | |
135 | reg = <0x05000 0x1000>; | |
136 | interrupts = <9 10>; | |
137 | cd-gpios = <&v2m_mmc_gpios 0 0>; | |
138 | wp-gpios = <&v2m_mmc_gpios 1 0>; | |
139 | max-frequency = <12000000>; | |
140 | vmmc-supply = <&v2m_fixed_3v3>; | |
141 | clocks = <&v2m_clk24mhz>, <&smbclk>; | |
142 | clock-names = "mclk", "apb_pclk"; | |
143 | }; | |
8deed178 | 144 | |
bd7aff03 LW |
145 | kmi@6000 { |
146 | compatible = "arm,pl050", "arm,primecell"; | |
147 | reg = <0x06000 0x1000>; | |
148 | interrupts = <12>; | |
149 | clocks = <&v2m_clk24mhz>, <&smbclk>; | |
150 | clock-names = "KMIREFCLK", "apb_pclk"; | |
151 | }; | |
8deed178 | 152 | |
bd7aff03 LW |
153 | kmi@7000 { |
154 | compatible = "arm,pl050", "arm,primecell"; | |
155 | reg = <0x07000 0x1000>; | |
156 | interrupts = <13>; | |
157 | clocks = <&v2m_clk24mhz>, <&smbclk>; | |
158 | clock-names = "KMIREFCLK", "apb_pclk"; | |
159 | }; | |
8deed178 | 160 | |
bd7aff03 LW |
161 | v2m_serial0: uart@9000 { |
162 | compatible = "arm,pl011", "arm,primecell"; | |
163 | reg = <0x09000 0x1000>; | |
164 | interrupts = <5>; | |
165 | clocks = <&v2m_oscclk2>, <&smbclk>; | |
166 | clock-names = "uartclk", "apb_pclk"; | |
167 | }; | |
8deed178 | 168 | |
bd7aff03 LW |
169 | v2m_serial1: uart@a000 { |
170 | compatible = "arm,pl011", "arm,primecell"; | |
171 | reg = <0x0a000 0x1000>; | |
172 | interrupts = <6>; | |
173 | clocks = <&v2m_oscclk2>, <&smbclk>; | |
174 | clock-names = "uartclk", "apb_pclk"; | |
175 | }; | |
8deed178 | 176 | |
bd7aff03 LW |
177 | v2m_serial2: uart@b000 { |
178 | compatible = "arm,pl011", "arm,primecell"; | |
179 | reg = <0x0b000 0x1000>; | |
180 | interrupts = <7>; | |
181 | clocks = <&v2m_oscclk2>, <&smbclk>; | |
182 | clock-names = "uartclk", "apb_pclk"; | |
183 | }; | |
8deed178 | 184 | |
bd7aff03 LW |
185 | v2m_serial3: uart@c000 { |
186 | compatible = "arm,pl011", "arm,primecell"; | |
187 | reg = <0x0c000 0x1000>; | |
188 | interrupts = <8>; | |
189 | clocks = <&v2m_oscclk2>, <&smbclk>; | |
190 | clock-names = "uartclk", "apb_pclk"; | |
191 | }; | |
8deed178 | 192 | |
bd7aff03 LW |
193 | wdt@f000 { |
194 | compatible = "arm,sp805", "arm,primecell"; | |
195 | reg = <0x0f000 0x1000>; | |
196 | interrupts = <0>; | |
197 | clocks = <&v2m_refclk32khz>, <&smbclk>; | |
198 | clock-names = "wdogclk", "apb_pclk"; | |
199 | }; | |
8deed178 | 200 | |
bd7aff03 LW |
201 | v2m_timer01: timer@11000 { |
202 | compatible = "arm,sp804", "arm,primecell"; | |
203 | reg = <0x11000 0x1000>; | |
204 | interrupts = <2>; | |
205 | clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&smbclk>; | |
206 | clock-names = "timclken1", "timclken2", "apb_pclk"; | |
207 | }; | |
8deed178 | 208 | |
bd7aff03 LW |
209 | v2m_timer23: timer@12000 { |
210 | compatible = "arm,sp804", "arm,primecell"; | |
211 | reg = <0x12000 0x1000>; | |
212 | interrupts = <3>; | |
213 | clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&smbclk>; | |
214 | clock-names = "timclken1", "timclken2", "apb_pclk"; | |
215 | }; | |
8deed178 | 216 | |
bd7aff03 LW |
217 | /* DVI I2C bus */ |
218 | v2m_i2c_dvi: i2c@16000 { | |
219 | compatible = "arm,versatile-i2c"; | |
220 | reg = <0x16000 0x1000>; | |
bd7aff03 LW |
221 | #address-cells = <1>; |
222 | #size-cells = <0>; | |
8deed178 | 223 | |
bd7aff03 LW |
224 | dvi-transmitter@39 { |
225 | compatible = "sil,sii9022-tpi", "sil,sii9022"; | |
226 | reg = <0x39>; | |
f1fe12c8 LW |
227 | |
228 | ports { | |
229 | #address-cells = <1>; | |
230 | #size-cells = <0>; | |
231 | ||
232 | /* | |
233 | * Both the core tile and the motherboard routes their output | |
234 | * pads to this transmitter. The motherboard system controller | |
235 | * can select one of them as input using a mux register in | |
236 | * "arm,vexpress-muxfpga". The Vexpress with the CA9 core tile is | |
237 | * the only platform with this specific set-up. | |
238 | */ | |
239 | port@0 { | |
240 | reg = <0>; | |
241 | dvi_bridge_in_ct: endpoint { | |
242 | remote-endpoint = <&clcd_pads_ct>; | |
243 | }; | |
244 | }; | |
245 | port@1 { | |
246 | reg = <1>; | |
247 | dvi_bridge_in_mb: endpoint { | |
248 | remote-endpoint = <&clcd_pads_mb>; | |
249 | }; | |
250 | }; | |
251 | }; | |
bd7aff03 | 252 | }; |
8deed178 | 253 | |
bd7aff03 LW |
254 | dvi-transmitter@60 { |
255 | compatible = "sil,sii9022-cpi", "sil,sii9022"; | |
256 | reg = <0x60>; | |
257 | }; | |
8deed178 PM |
258 | }; |
259 | ||
bd7aff03 LW |
260 | rtc@17000 { |
261 | compatible = "arm,pl031", "arm,primecell"; | |
262 | reg = <0x17000 0x1000>; | |
263 | interrupts = <4>; | |
264 | clocks = <&smbclk>; | |
265 | clock-names = "apb_pclk"; | |
8deed178 | 266 | }; |
8deed178 | 267 | |
bd7aff03 LW |
268 | compact-flash@1a000 { |
269 | compatible = "arm,vexpress-cf", "ata-generic"; | |
270 | reg = <0x1a000 0x100 | |
271 | 0x1a100 0xf00>; | |
272 | reg-shift = <2>; | |
478a4f81 PM |
273 | }; |
274 | ||
f1fe12c8 | 275 | |
bd7aff03 LW |
276 | clcd@1f000 { |
277 | compatible = "arm,pl111", "arm,primecell"; | |
278 | reg = <0x1f000 0x1000>; | |
279 | interrupt-names = "combined"; | |
280 | interrupts = <14>; | |
281 | clocks = <&v2m_oscclk1>, <&smbclk>; | |
282 | clock-names = "clcdclk", "apb_pclk"; | |
f1fe12c8 LW |
283 | /* 800x600 16bpp @36MHz works fine */ |
284 | max-memory-bandwidth = <54000000>; | |
285 | memory-region = <&vram>; | |
478a4f81 PM |
286 | |
287 | port { | |
f1fe12c8 LW |
288 | clcd_pads_mb: endpoint { |
289 | remote-endpoint = <&dvi_bridge_in_mb>; | |
bd7aff03 | 290 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
478a4f81 PM |
291 | }; |
292 | }; | |
478a4f81 | 293 | }; |
8deed178 | 294 | }; |
b2a54ff0 | 295 | |
bd7aff03 LW |
296 | v2m_fixed_3v3: fixed-regulator-0 { |
297 | compatible = "regulator-fixed"; | |
298 | regulator-name = "3V3"; | |
299 | regulator-min-microvolt = <3300000>; | |
300 | regulator-max-microvolt = <3300000>; | |
301 | regulator-always-on; | |
302 | }; | |
842839a3 | 303 | |
bd7aff03 LW |
304 | v2m_clk24mhz: clk24mhz { |
305 | compatible = "fixed-clock"; | |
306 | #clock-cells = <0>; | |
307 | clock-frequency = <24000000>; | |
308 | clock-output-names = "v2m:clk24mhz"; | |
309 | }; | |
842839a3 | 310 | |
bd7aff03 LW |
311 | v2m_refclk1mhz: refclk1mhz { |
312 | compatible = "fixed-clock"; | |
313 | #clock-cells = <0>; | |
314 | clock-frequency = <1000000>; | |
315 | clock-output-names = "v2m:refclk1mhz"; | |
316 | }; | |
842839a3 | 317 | |
bd7aff03 LW |
318 | v2m_refclk32khz: refclk32khz { |
319 | compatible = "fixed-clock"; | |
320 | #clock-cells = <0>; | |
321 | clock-frequency = <32768>; | |
322 | clock-output-names = "v2m:refclk32khz"; | |
323 | }; | |
842839a3 | 324 | |
bd7aff03 LW |
325 | leds { |
326 | compatible = "gpio-leds"; | |
974cc7b9 | 327 | |
bd7aff03 LW |
328 | user1 { |
329 | label = "v2m:green:user1"; | |
330 | gpios = <&v2m_led_gpios 0 0>; | |
331 | linux,default-trigger = "heartbeat"; | |
332 | }; | |
974cc7b9 | 333 | |
bd7aff03 LW |
334 | user2 { |
335 | label = "v2m:green:user2"; | |
336 | gpios = <&v2m_led_gpios 1 0>; | |
337 | linux,default-trigger = "mmc0"; | |
338 | }; | |
974cc7b9 | 339 | |
bd7aff03 LW |
340 | user3 { |
341 | label = "v2m:green:user3"; | |
342 | gpios = <&v2m_led_gpios 2 0>; | |
343 | linux,default-trigger = "cpu0"; | |
344 | }; | |
974cc7b9 | 345 | |
bd7aff03 LW |
346 | user4 { |
347 | label = "v2m:green:user4"; | |
348 | gpios = <&v2m_led_gpios 3 0>; | |
349 | linux,default-trigger = "cpu1"; | |
350 | }; | |
974cc7b9 | 351 | |
bd7aff03 LW |
352 | user5 { |
353 | label = "v2m:green:user5"; | |
354 | gpios = <&v2m_led_gpios 4 0>; | |
355 | linux,default-trigger = "cpu2"; | |
356 | }; | |
974cc7b9 | 357 | |
bd7aff03 LW |
358 | user6 { |
359 | label = "v2m:green:user6"; | |
360 | gpios = <&v2m_led_gpios 5 0>; | |
361 | linux,default-trigger = "cpu3"; | |
362 | }; | |
974cc7b9 | 363 | |
bd7aff03 LW |
364 | user7 { |
365 | label = "v2m:green:user7"; | |
366 | gpios = <&v2m_led_gpios 6 0>; | |
367 | linux,default-trigger = "cpu4"; | |
368 | }; | |
974cc7b9 | 369 | |
bd7aff03 LW |
370 | user8 { |
371 | label = "v2m:green:user8"; | |
372 | gpios = <&v2m_led_gpios 7 0>; | |
373 | linux,default-trigger = "cpu5"; | |
374 | }; | |
974cc7b9 | 375 | }; |
974cc7b9 | 376 | |
bd7aff03 LW |
377 | mcc { |
378 | compatible = "arm,vexpress,config-bus"; | |
379 | arm,vexpress,config-bridge = <&v2m_sysreg>; | |
842839a3 | 380 | |
bd7aff03 LW |
381 | oscclk0 { |
382 | /* MCC static memory clock */ | |
383 | compatible = "arm,vexpress-osc"; | |
384 | arm,vexpress-sysreg,func = <1 0>; | |
385 | freq-range = <25000000 60000000>; | |
386 | #clock-cells = <0>; | |
387 | clock-output-names = "v2m:oscclk0"; | |
388 | }; | |
842839a3 | 389 | |
bd7aff03 LW |
390 | v2m_oscclk1: oscclk1 { |
391 | /* CLCD clock */ | |
392 | compatible = "arm,vexpress-osc"; | |
393 | arm,vexpress-sysreg,func = <1 1>; | |
394 | freq-range = <23750000 65000000>; | |
395 | #clock-cells = <0>; | |
396 | clock-output-names = "v2m:oscclk1"; | |
397 | }; | |
842839a3 | 398 | |
bd7aff03 LW |
399 | v2m_oscclk2: oscclk2 { |
400 | /* IO FPGA peripheral clock */ | |
401 | compatible = "arm,vexpress-osc"; | |
402 | arm,vexpress-sysreg,func = <1 2>; | |
403 | freq-range = <24000000 24000000>; | |
404 | #clock-cells = <0>; | |
405 | clock-output-names = "v2m:oscclk2"; | |
406 | }; | |
842839a3 | 407 | |
bd7aff03 LW |
408 | volt-vio { |
409 | /* Logic level voltage */ | |
410 | compatible = "arm,vexpress-volt"; | |
411 | arm,vexpress-sysreg,func = <2 0>; | |
412 | regulator-name = "VIO"; | |
413 | regulator-always-on; | |
414 | label = "VIO"; | |
415 | }; | |
842839a3 | 416 | |
bd7aff03 LW |
417 | temp-mcc { |
418 | /* MCC internal operating temperature */ | |
419 | compatible = "arm,vexpress-temp"; | |
420 | arm,vexpress-sysreg,func = <4 0>; | |
421 | label = "MCC"; | |
422 | }; | |
842839a3 | 423 | |
bd7aff03 LW |
424 | reset { |
425 | compatible = "arm,vexpress-reset"; | |
426 | arm,vexpress-sysreg,func = <5 0>; | |
427 | }; | |
842839a3 | 428 | |
bd7aff03 LW |
429 | muxfpga { |
430 | compatible = "arm,vexpress-muxfpga"; | |
431 | arm,vexpress-sysreg,func = <7 0>; | |
432 | }; | |
842839a3 | 433 | |
bd7aff03 LW |
434 | shutdown { |
435 | compatible = "arm,vexpress-shutdown"; | |
436 | arm,vexpress-sysreg,func = <8 0>; | |
437 | }; | |
842839a3 | 438 | |
bd7aff03 LW |
439 | reboot { |
440 | compatible = "arm,vexpress-reboot"; | |
441 | arm,vexpress-sysreg,func = <9 0>; | |
442 | }; | |
842839a3 | 443 | |
bd7aff03 LW |
444 | dvimode { |
445 | compatible = "arm,vexpress-dvimode"; | |
446 | arm,vexpress-sysreg,func = <11 0>; | |
447 | }; | |
842839a3 PM |
448 | }; |
449 | }; | |
8deed178 | 450 | }; |
bd7aff03 | 451 | }; |