2 * ARM Ltd. Juno Plaform
4 * Fast Models FVP v2 support
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
13 compatible = "arm,juno", "arm,vexpress";
14 interrupt-parent = <&gic>;
54 entry-method = "arm,psci";
56 CPU_SLEEP_0: cpu-sleep-0 {
57 compatible = "arm,idle-state";
58 entry-method-param = <0x0010000>;
59 entry-latency-us = <40>;
60 exit-latency-us = <100>;
61 min-residency-us = <150>;
64 CLUSTER_SLEEP_0: cluster-sleep-0 {
65 compatible = "arm,idle-state";
66 entry-method-param = <0x1010000>;
67 entry-latency-us = <500>;
68 exit-latency-us = <1000>;
69 min-residency-us = <2500>;
75 compatible = "arm,cortex-a53","arm,armv8";
77 enable-method = "psci";
78 clocks = <&scpi_dvfs 1>;
79 clock-names = "vlittle";
80 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
85 compatible = "arm,cortex-a53","arm,armv8";
87 enable-method = "psci";
88 clocks = <&scpi_dvfs 1>;
89 clock-names = "vlittle";
90 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
95 compatible = "arm,cortex-a53","arm,armv8";
97 enable-method = "psci";
98 clocks = <&scpi_dvfs 1>;
99 clock-names = "vlittle";
100 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
105 compatible = "arm,cortex-a53","arm,armv8";
107 enable-method = "psci";
108 clocks = <&scpi_dvfs 1>;
109 clock-names = "vlittle";
110 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
115 compatible = "arm,cortex-a57","arm,armv8";
117 enable-method = "psci";
118 clocks = <&scpi_dvfs 0>;
119 clock-names = "vbig";
120 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
125 compatible = "arm,cortex-a57","arm,armv8";
127 enable-method = "psci";
128 clocks = <&scpi_dvfs 0>;
129 clock-names = "vbig";
130 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
135 device_type = "memory";
136 reg = <0x00000000 0x80000000 0x0 0x7f000000>,
137 <0x00000008 0x80000000 0x1 0x80000000>;
141 device_type = "memory";
142 reg = <0x00000000 0x14000000 0x0 0x02000000>;
145 gic: interrupt-controller@2c001000 {
146 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
147 #interrupt-cells = <3>;
148 #address-cells = <0>;
149 interrupt-controller;
150 reg = <0x0 0x2c010000 0 0x1000>,
151 <0x0 0x2c02f000 0 0x2000>,
152 <0x0 0x2c04f000 0 0x2000>,
153 <0x0 0x2c06f000 0 0x2000>;
154 interrupts = <GIC_PPI 9 0xf04>;
158 compatible = "arm,gic-msi";
159 reg = <0x0 0x2c1c0000 0 0x10000
160 0x0 0x2c1d0000 0 0x10000
161 0x0 0x2c1e0000 0 0x10000
162 0x0 0x2c1f0000 0 0x10000>;
166 compatible = "arm,armv8-timer";
167 interrupts = <GIC_PPI 13 0xff01>,
174 compatible = "arm,armv7-timer-mem";
175 reg = <0x0 0x2a810000 0x0 0x10000>;
176 clock-frequency = <100000000>;
177 #address-cells = <2>;
182 interrupts = <0 60 4>;
183 reg = <0x0 0x2a830000 0x0 0x10000>;
188 compatible = "arm,armv8-pmuv3";
189 interrupts = <0 18 4>,
198 compatible = "arm,psci";
200 cpu_suspend = <0xc4000001>;
201 cpu_off = <0x84000002>;
202 cpu_on = <0xc4000003>;
203 migrate = <0xc4000005>;
204 sys_poweroff = <0x84000008>;
205 sys_reset = <0x84000009>;
209 compatible = "arm,pcie-xr3";
211 reg = <0 0x7ff30000 0 0x1000
212 0 0x7ff20000 0 0x10000
213 0 0x40000000 0 0x10000000>;
215 #address-cells = <3>;
217 ranges = <0x01000000 0x0 0x00000000 0x00 0x5ff00000 0x0 0x00100000
218 0x02000000 0x0 0x00000000 0x00 0x40000000 0x0 0x1f000000>;
219 /* 0x42000000 0x0 0x20000000 0x40 0x00000000 0x0 0x80000000>;
220 0x02000000 0x0 0xA0000000 0x40 0x80000000 0x0 0x80000000>; */
221 #interrupt-cells = <1>;
222 interrupt-map-mask = <0 0 0 7>;
223 interrupt-map = <0 0 0 1 &gic 0 136 4
226 0 0 0 4 &gic 0 139 4>;
230 compatible = "arm,mhu";
231 reg = <0x0 0x2b1f0000 0x0 0x10000>, /* MHU registers */
232 <0x0 0x2e000000 0x0 0x10000>; /* Payload area */
233 interrupts = <0 36 4>, /* low priority interrupt */
234 <0 35 4>; /* high priority interrupt */
238 compatible = "arm,scpi-clks";
240 scpi_dvfs: scpi_clocks@0 {
241 compatible = "arm,scpi-clk-indexed";
243 clock-indices = <0>, <1>, <2>;
244 clock-output-names = "vbig", "vlittle", "vgpu";
247 scpi_clk: scpi_clocks@3 {
248 compatible = "arm,scpi-clk-range";
250 clock-indices = <3>, <4>;
251 frequency-range = <23000000 210000000>;
252 clock-output-names = "pxlclk0", "pxlclk1";
255 scpi_i2sclk: scpi_clocks@5 {
256 compatible = "arm,scpi-clk-range";
259 frequency-range = <1536000 9216000>;
260 clock-output-names = "i2s_clock";
265 compatible = "arm,scpi-cpufreq";
268 soc_uartclk: refclk72738khz {
269 compatible = "fixed-clock";
271 clock-frequency = <7273800>;
272 clock-output-names = "juno:uartclk";
275 soc_refclk24mhz: clk24mhz {
276 compatible = "fixed-clock";
278 clock-frequency = <24000000>;
279 clock-output-names = "juno:clk24mhz";
282 mb_eth25mhz: clk25mhz {
283 compatible = "fixed-clock";
285 clock-frequency = <25000000>;
286 clock-output-names = "ethclk25mhz";
289 soc_usb48mhz: clk48mhz {
290 compatible = "fixed-clock";
292 clock-frequency = <48000000>;
293 clock-output-names = "clk48mhz";
296 soc_smc50mhz: clk50mhz {
297 compatible = "fixed-clock";
299 clock-frequency = <50000000>;
300 clock-output-names = "smc_clk";
304 compatible = "fixed-clock";
306 clock-frequency = <2116800>;
307 clock-output-names = "i2sclk";
310 soc_refclk100mhz: refclk100mhz {
311 compatible = "fixed-clock";
313 clock-frequency = <100000000>;
314 clock-output-names = "apb_pclk";
317 soc_faxiclk: refclk533mhz {
318 compatible = "fixed-clock";
320 clock-frequency = <533000000>;
321 clock-output-names = "faxi_clk";
324 soc_fixed_3v3: fixedregulator@0 {
325 compatible = "regulator-fixed";
326 regulator-name = "3V3";
327 regulator-min-microvolt = <3300000>;
328 regulator-max-microvolt = <3300000>;
332 memory-controller@7ffd0000 {
333 compatible = "arm,pl354", "arm,primecell";
334 reg = <0 0x7ffd0000 0 0x1000>;
335 interrupts = <0 86 4>,
337 clocks = <&soc_smc50mhz>;
338 clock-names = "apb_pclk";
339 chip5-memwidth = <16>;
342 dma0: dma@0x7ff00000 {
343 compatible = "arm,pl330", "arm,primecell";
344 reg = <0x0 0x7ff00000 0 0x1000>;
345 interrupts = <0 95 4>,
356 #dma-requests = <32>;
357 clocks = <&soc_faxiclk>;
358 clock-names = "apb_pclk";
361 soc_uart0: uart@7ff80000 {
362 compatible = "arm,pl011", "arm,primecell";
363 reg = <0x0 0x7ff80000 0x0 0x1000>;
364 interrupts = <0 83 4>;
365 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
366 clock-names = "uartclk", "apb_pclk";
369 dma-names = "rx", "tx";
372 /* this UART is reserved for secure software.
373 soc_uart1: uart@7ff70000 {
374 compatible = "arm,pl011", "arm,primecell";
375 reg = <0x0 0x7ff70000 0x0 0x1000>;
376 interrupts = <0 84 4>;
377 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
378 clock-names = "uartclk", "apb_pclk";
382 compatible = "phy-ulpi-generic";
383 reg = <0x0 0x94 0x0 0x4>;
388 compatible = "snps,ehci-h20ahb";
389 /* compatible = "arm,h20ahb-ehci"; */
390 reg = <0x0 0x7ffc0000 0x0 0x10000>;
391 interrupts = <0 117 4>;
392 clocks = <&soc_usb48mhz>;
398 compatible = "generic-ohci";
399 reg = <0x0 0x7ffb0000 0x0 0x10000>;
400 interrupts = <0 116 4>;
401 clocks = <&soc_usb48mhz>;
406 #address-cells = <1>;
408 compatible = "snps,designware-i2c";
409 reg = <0x0 0x7ffa0000 0x0 0x1000>;
410 interrupts = <0 104 4>;
411 clock-frequency = <400000>;
412 i2c-sda-hold-time-ns = <500>;
413 clocks = <&soc_smc50mhz>;
415 dvi0: dvi-transmitter@70 {
416 compatible = "nxp,tda998x";
418 audio-ports = <0x03>, <0x04>;
419 audio-port-names = "i2s", "spdif";
420 #sound-dai-cells = <1>;
423 dvi1: dvi-transmitter@71 {
424 compatible = "nxp,tda998x";
426 audio-ports = <0x03>, <0x04>;
427 audio-port-names = "i2s", "spdif";
428 #sound-dai-cells = <1>;
433 compatible = "arm,pl180", "arm,primecell";
434 reg = <0x0 0x1c050000 0x0 0x1000>;
435 interrupts = <0 73 4>,
437 max-frequency = <12000000>;
438 vmmc-supply = <&soc_fixed_3v3>;
439 clocks = <&soc_refclk24mhz>, <&soc_refclk100mhz>;
440 clock-names = "mclk", "apb_pclk";
444 compatible = "arm,hdlcd";
445 reg = <0 0x7ff60000 0 0x1000>;
446 interrupts = <0 85 4>;
447 clocks = <&scpi_clk 0>;
448 clock-names = "pxlclk";
452 native-mode = <&timing0>;
454 /* 1024 x 768 framebufer, standard VGA timings * /
455 clock-frequency = <65000>;
469 compatible = "arm,hdlcd";
470 reg = <0 0x7ff50000 0 0x1000>;
471 interrupts = <0 93 4>;
472 clocks = <&scpi_clk 1>;
473 clock-names = "pxlclk";
477 native-mode = <&timing1>;
479 /* 1024 x 768 framebufer, standard VGA timings * /
480 clock-frequency = <65000>;
494 compatible = "arm,malit6xx", "arm,mali";
495 reg = <0x0 0x2d000000 0x0 0x4000>;
496 interrupts = <0 33 4>, <0 34 4>, <0 32 4>;
497 interrupt-names = "JOB", "MMU", "GPU";
498 clocks = <&scpi_dvfs 2>;
499 clock-names = "clk_mali";
502 soc_i2s: i2s@7ff90000 {
503 compatible = "snps,i2s";
504 reg = <0x0 0x7ff90000 0x0 0x1000>;
505 clocks = <&scpi_i2sclk 0>, <&soc_refclk100mhz>;
506 clock-names = "i2sclk", "apb_pclk";
507 #sound-dai-cells = <0>;
512 hdmi_audio: hdmi_audio@0 {
513 compatible = "linux,hdmi-audio";
514 #sound-dai-cells = <0>;
519 compatible = "simple-audio-card";
521 simple-audio-card,format = "i2s";
523 simple-audio-card,cpu {
524 sound-dai = <&soc_i2s>;
527 simple-audio-card,codec {
528 sound-dai = <&dvi0 0>;
534 compatible = "simple-bus";
535 #address-cells = <2>;
537 ranges = <0 0 0 0x08000000 0x04000000>,
538 <1 0 0 0x14000000 0x04000000>,
539 <2 0 0 0x18000000 0x04000000>,
540 <3 0 0 0x1c000000 0x04000000>,
541 <4 0 0 0x0c000000 0x04000000>,
542 <5 0 0 0x10000000 0x04000000>;
544 #interrupt-cells = <1>;
545 interrupt-map-mask = <0 0 15>;
546 interrupt-map = <0 0 0 &gic 0 68 4>,
549 <0 0 3 &gic 0 160 4>,
550 <0 0 4 &gic 0 161 4>,
551 <0 0 5 &gic 0 162 4>,
552 <0 0 6 &gic 0 163 4>,
553 <0 0 7 &gic 0 164 4>,
554 <0 0 8 &gic 0 165 4>,
555 <0 0 9 &gic 0 166 4>,
556 <0 0 10 &gic 0 167 4>,
557 <0 0 11 &gic 0 168 4>,
558 <0 0 12 &gic 0 169 4>;
563 arm,vexpress,site = <0>;
564 arm,v2m-memory-map = "rs1";
565 compatible = "arm,vexpress,v2p-p1", "simple-bus";
566 #address-cells = <2>; /* SMB chipselect number and offset */
568 #interrupt-cells = <1>;
572 compatible = "nxp,usb-isp1763";
573 reg = <5 0x00000000 0x20000>;
578 ethernet@2,00000000 {
579 compatible = "smsc,lan9118", "smsc,lan9115";
580 reg = <2 0x00000000 0x10000>;
584 smsc,irq-active-high;
586 clocks = <&mb_eth25mhz>;
587 vdd33a-supply = <&soc_fixed_3v3>; /* change this */
588 vddvario-supply = <&soc_fixed_3v3>; /* and this */
592 compatible = "arm,amba-bus", "simple-bus";
593 #address-cells = <1>;
595 ranges = <0 3 0 0x200000>;
598 compatible = "arm,pl050", "arm,primecell";
599 reg = <0x060000 0x1000>;
601 clocks = <&soc_refclk24mhz>, <&soc_smc50mhz>;
602 clock-names = "KMIREFCLK", "apb_pclk";
606 compatible = "arm,pl050", "arm,primecell";
607 reg = <0x070000 0x1000>;
609 clocks = <&soc_refclk24mhz>, <&soc_smc50mhz>;
610 clock-names = "KMIREFCLK", "apb_pclk";
614 compatible = "arm,sp805", "arm,primecell";
615 reg = <0x0f0000 0x10000>;
617 clocks = <&soc_refclk24mhz>, <&soc_smc50mhz>;
618 clock-names = "wdogclk", "apb_pclk";
621 v2m_timer01: timer@110000 {
622 compatible = "arm,sp804", "arm,primecell";
623 reg = <0x110000 0x10000>;
625 clocks = <&soc_refclk24mhz>, <&soc_smc50mhz>;
626 clock-names = "timclken1", "apb_pclk";
629 v2m_timer23: timer@120000 {
630 compatible = "arm,sp804", "arm,primecell";
631 reg = <0x120000 0x10000>;
633 clocks = <&soc_refclk24mhz>, <&soc_smc50mhz>;
634 clock-names = "timclken1", "apb_pclk";
638 compatible = "arm,pl031", "arm,primecell";
639 reg = <0x170000 0x10000>;
641 clocks = <&soc_smc50mhz>;
642 clock-names = "apb_pclk";