0001 // SPDX-License-Identifier: GPL-2.0
0002 #include "juno-clocks.dtsi"
0003 #include "juno-motherboard.dtsi"
0004
0005 / {
0006 /*
0007 * Devices shared by all Juno boards
0008 */
0009
0010 memtimer: timer@2a810000 {
0011 compatible = "arm,armv7-timer-mem";
0012 reg = <0x0 0x2a810000 0x0 0x10000>;
0013 clock-frequency = <50000000>;
0014 #address-cells = <1>;
0015 #size-cells = <1>;
0016 ranges = <0 0x0 0x2a820000 0x20000>;
0017 status = "disabled";
0018 frame@2a830000 {
0019 frame-number = <1>;
0020 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
0021 reg = <0x10000 0x10000>;
0022 };
0023 };
0024
0025 mailbox: mhu@2b1f0000 {
0026 compatible = "arm,mhu", "arm,primecell";
0027 reg = <0x0 0x2b1f0000 0x0 0x1000>;
0028 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
0029 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
0030 <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
0031 #mbox-cells = <1>;
0032 clocks = <&soc_refclk100mhz>;
0033 clock-names = "apb_pclk";
0034 };
0035
0036 smmu_gpu: iommu@2b400000 {
0037 compatible = "arm,mmu-400", "arm,smmu-v1";
0038 reg = <0x0 0x2b400000 0x0 0x10000>;
0039 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
0040 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
0041 #iommu-cells = <1>;
0042 #global-interrupts = <1>;
0043 power-domains = <&scpi_devpd 1>;
0044 dma-coherent;
0045 status = "disabled";
0046 };
0047
0048 smmu_pcie: iommu@2b500000 {
0049 compatible = "arm,mmu-401", "arm,smmu-v1";
0050 reg = <0x0 0x2b500000 0x0 0x10000>;
0051 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
0052 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
0053 #iommu-cells = <1>;
0054 #global-interrupts = <1>;
0055 dma-coherent;
0056 status = "disabled";
0057 };
0058
0059 smmu_etr: iommu@2b600000 {
0060 compatible = "arm,mmu-401", "arm,smmu-v1";
0061 reg = <0x0 0x2b600000 0x0 0x10000>;
0062 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
0063 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
0064 #iommu-cells = <1>;
0065 #global-interrupts = <1>;
0066 dma-coherent;
0067 power-domains = <&scpi_devpd 0>;
0068 };
0069
0070 gic: interrupt-controller@2c010000 {
0071 compatible = "arm,gic-400", "arm,cortex-a15-gic";
0072 reg = <0x0 0x2c010000 0 0x1000>,
0073 <0x0 0x2c02f000 0 0x2000>,
0074 <0x0 0x2c04f000 0 0x2000>,
0075 <0x0 0x2c06f000 0 0x2000>;
0076 #address-cells = <1>;
0077 #interrupt-cells = <3>;
0078 #size-cells = <1>;
0079 interrupt-controller;
0080 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
0081 ranges = <0 0 0x2c1c0000 0x40000>;
0082
0083 v2m_0: v2m@0 {
0084 compatible = "arm,gic-v2m-frame";
0085 msi-controller;
0086 reg = <0 0x10000>;
0087 };
0088
0089 v2m@10000 {
0090 compatible = "arm,gic-v2m-frame";
0091 msi-controller;
0092 reg = <0x10000 0x10000>;
0093 };
0094
0095 v2m@20000 {
0096 compatible = "arm,gic-v2m-frame";
0097 msi-controller;
0098 reg = <0x20000 0x10000>;
0099 };
0100
0101 v2m@30000 {
0102 compatible = "arm,gic-v2m-frame";
0103 msi-controller;
0104 reg = <0x30000 0x10000>;
0105 };
0106 };
0107
0108 timer {
0109 compatible = "arm,armv8-timer";
0110 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
0111 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
0112 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
0113 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
0114 };
0115
0116 /*
0117 * Juno TRMs specify the size for these coresight components as 64K.
0118 * The actual size is just 4K though 64K is reserved. Access to the
0119 * unmapped reserved region results in a DECERR response.
0120 */
0121 etf_sys0: etf@20010000 { /* etf0 */
0122 compatible = "arm,coresight-tmc", "arm,primecell";
0123 reg = <0 0x20010000 0 0x1000>;
0124
0125 clocks = <&soc_smc50mhz>;
0126 clock-names = "apb_pclk";
0127 power-domains = <&scpi_devpd 0>;
0128
0129 in-ports {
0130 port {
0131 etf0_in_port: endpoint {
0132 remote-endpoint = <&main_funnel_out_port>;
0133 };
0134 };
0135 };
0136
0137 out-ports {
0138 port {
0139 etf0_out_port: endpoint {
0140 };
0141 };
0142 };
0143 };
0144
0145 tpiu_sys: tpiu@20030000 {
0146 compatible = "arm,coresight-tpiu", "arm,primecell";
0147 reg = <0 0x20030000 0 0x1000>;
0148
0149 clocks = <&soc_smc50mhz>;
0150 clock-names = "apb_pclk";
0151 power-domains = <&scpi_devpd 0>;
0152 in-ports {
0153 port {
0154 tpiu_in_port: endpoint {
0155 remote-endpoint = <&replicator_out_port0>;
0156 };
0157 };
0158 };
0159 };
0160
0161 /* main funnel on Juno r0, cssys0 funnel on Juno r1/r2 as per TRM*/
0162 main_funnel: funnel@20040000 {
0163 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
0164 reg = <0 0x20040000 0 0x1000>;
0165
0166 clocks = <&soc_smc50mhz>;
0167 clock-names = "apb_pclk";
0168 power-domains = <&scpi_devpd 0>;
0169
0170 out-ports {
0171 port {
0172 main_funnel_out_port: endpoint {
0173 remote-endpoint = <&etf0_in_port>;
0174 };
0175 };
0176 };
0177
0178 main_funnel_in_ports: in-ports {
0179 #address-cells = <1>;
0180 #size-cells = <0>;
0181
0182 port@0 {
0183 reg = <0>;
0184 main_funnel_in_port0: endpoint {
0185 remote-endpoint = <&cluster0_funnel_out_port>;
0186 };
0187 };
0188
0189 port@1 {
0190 reg = <1>;
0191 main_funnel_in_port1: endpoint {
0192 remote-endpoint = <&cluster1_funnel_out_port>;
0193 };
0194 };
0195 };
0196 };
0197
0198 etr_sys: etr@20070000 {
0199 compatible = "arm,coresight-tmc", "arm,primecell";
0200 reg = <0 0x20070000 0 0x1000>;
0201 iommus = <&smmu_etr 0>;
0202
0203 clocks = <&soc_smc50mhz>;
0204 clock-names = "apb_pclk";
0205 power-domains = <&scpi_devpd 0>;
0206 arm,scatter-gather;
0207 in-ports {
0208 port {
0209 etr_in_port: endpoint {
0210 remote-endpoint = <&replicator_out_port1>;
0211 };
0212 };
0213 };
0214 };
0215
0216 stm_sys: stm@20100000 {
0217 compatible = "arm,coresight-stm", "arm,primecell";
0218 reg = <0 0x20100000 0 0x1000>,
0219 <0 0x28000000 0 0x1000000>;
0220 reg-names = "stm-base", "stm-stimulus-base";
0221
0222 clocks = <&soc_smc50mhz>;
0223 clock-names = "apb_pclk";
0224 power-domains = <&scpi_devpd 0>;
0225 out-ports {
0226 port {
0227 stm_out_port: endpoint {
0228 };
0229 };
0230 };
0231 };
0232
0233 replicator@20120000 {
0234 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
0235 reg = <0 0x20120000 0 0x1000>;
0236
0237 clocks = <&soc_smc50mhz>;
0238 clock-names = "apb_pclk";
0239 power-domains = <&scpi_devpd 0>;
0240
0241 out-ports {
0242 #address-cells = <1>;
0243 #size-cells = <0>;
0244
0245 /* replicator output ports */
0246 port@0 {
0247 reg = <0>;
0248 replicator_out_port0: endpoint {
0249 remote-endpoint = <&tpiu_in_port>;
0250 };
0251 };
0252
0253 port@1 {
0254 reg = <1>;
0255 replicator_out_port1: endpoint {
0256 remote-endpoint = <&etr_in_port>;
0257 };
0258 };
0259 };
0260 in-ports {
0261 port {
0262 replicator_in_port0: endpoint {
0263 };
0264 };
0265 };
0266 };
0267
0268 cpu_debug0: cpu-debug@22010000 {
0269 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0270 reg = <0x0 0x22010000 0x0 0x1000>;
0271
0272 clocks = <&soc_smc50mhz>;
0273 clock-names = "apb_pclk";
0274 power-domains = <&scpi_devpd 0>;
0275 };
0276
0277 etm0: etm@22040000 {
0278 compatible = "arm,coresight-etm4x", "arm,primecell";
0279 reg = <0 0x22040000 0 0x1000>;
0280
0281 clocks = <&soc_smc50mhz>;
0282 clock-names = "apb_pclk";
0283 power-domains = <&scpi_devpd 0>;
0284 out-ports {
0285 port {
0286 cluster0_etm0_out_port: endpoint {
0287 remote-endpoint = <&cluster0_funnel_in_port0>;
0288 };
0289 };
0290 };
0291 };
0292
0293 cti0: cti@22020000 {
0294 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0295 "arm,primecell";
0296 reg = <0 0x22020000 0 0x1000>;
0297
0298 clocks = <&soc_smc50mhz>;
0299 clock-names = "apb_pclk";
0300 power-domains = <&scpi_devpd 0>;
0301
0302 arm,cs-dev-assoc = <&etm0>;
0303 };
0304
0305 funnel@220c0000 { /* cluster0 funnel */
0306 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
0307 reg = <0 0x220c0000 0 0x1000>;
0308
0309 clocks = <&soc_smc50mhz>;
0310 clock-names = "apb_pclk";
0311 power-domains = <&scpi_devpd 0>;
0312 out-ports {
0313 port {
0314 cluster0_funnel_out_port: endpoint {
0315 remote-endpoint = <&main_funnel_in_port0>;
0316 };
0317 };
0318 };
0319
0320 in-ports {
0321 #address-cells = <1>;
0322 #size-cells = <0>;
0323
0324 port@0 {
0325 reg = <0>;
0326 cluster0_funnel_in_port0: endpoint {
0327 remote-endpoint = <&cluster0_etm0_out_port>;
0328 };
0329 };
0330
0331 port@1 {
0332 reg = <1>;
0333 cluster0_funnel_in_port1: endpoint {
0334 remote-endpoint = <&cluster0_etm1_out_port>;
0335 };
0336 };
0337 };
0338 };
0339
0340 cpu_debug1: cpu-debug@22110000 {
0341 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0342 reg = <0x0 0x22110000 0x0 0x1000>;
0343
0344 clocks = <&soc_smc50mhz>;
0345 clock-names = "apb_pclk";
0346 power-domains = <&scpi_devpd 0>;
0347 };
0348
0349 etm1: etm@22140000 {
0350 compatible = "arm,coresight-etm4x", "arm,primecell";
0351 reg = <0 0x22140000 0 0x1000>;
0352
0353 clocks = <&soc_smc50mhz>;
0354 clock-names = "apb_pclk";
0355 power-domains = <&scpi_devpd 0>;
0356 out-ports {
0357 port {
0358 cluster0_etm1_out_port: endpoint {
0359 remote-endpoint = <&cluster0_funnel_in_port1>;
0360 };
0361 };
0362 };
0363 };
0364
0365 cti1: cti@22120000 {
0366 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0367 "arm,primecell";
0368 reg = <0 0x22120000 0 0x1000>;
0369
0370 clocks = <&soc_smc50mhz>;
0371 clock-names = "apb_pclk";
0372 power-domains = <&scpi_devpd 0>;
0373
0374 arm,cs-dev-assoc = <&etm1>;
0375 };
0376
0377 cpu_debug2: cpu-debug@23010000 {
0378 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0379 reg = <0x0 0x23010000 0x0 0x1000>;
0380
0381 clocks = <&soc_smc50mhz>;
0382 clock-names = "apb_pclk";
0383 power-domains = <&scpi_devpd 0>;
0384 };
0385
0386 etm2: etm@23040000 {
0387 compatible = "arm,coresight-etm4x", "arm,primecell";
0388 reg = <0 0x23040000 0 0x1000>;
0389
0390 clocks = <&soc_smc50mhz>;
0391 clock-names = "apb_pclk";
0392 power-domains = <&scpi_devpd 0>;
0393 out-ports {
0394 port {
0395 cluster1_etm0_out_port: endpoint {
0396 remote-endpoint = <&cluster1_funnel_in_port0>;
0397 };
0398 };
0399 };
0400 };
0401
0402 cti2: cti@23020000 {
0403 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0404 "arm,primecell";
0405 reg = <0 0x23020000 0 0x1000>;
0406
0407 clocks = <&soc_smc50mhz>;
0408 clock-names = "apb_pclk";
0409 power-domains = <&scpi_devpd 0>;
0410
0411 arm,cs-dev-assoc = <&etm2>;
0412 };
0413
0414 funnel@230c0000 { /* cluster1 funnel */
0415 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
0416 reg = <0 0x230c0000 0 0x1000>;
0417
0418 clocks = <&soc_smc50mhz>;
0419 clock-names = "apb_pclk";
0420 power-domains = <&scpi_devpd 0>;
0421 out-ports {
0422 port {
0423 cluster1_funnel_out_port: endpoint {
0424 remote-endpoint = <&main_funnel_in_port1>;
0425 };
0426 };
0427 };
0428
0429 in-ports {
0430 #address-cells = <1>;
0431 #size-cells = <0>;
0432
0433 port@0 {
0434 reg = <0>;
0435 cluster1_funnel_in_port0: endpoint {
0436 remote-endpoint = <&cluster1_etm0_out_port>;
0437 };
0438 };
0439
0440 port@1 {
0441 reg = <1>;
0442 cluster1_funnel_in_port1: endpoint {
0443 remote-endpoint = <&cluster1_etm1_out_port>;
0444 };
0445 };
0446 port@2 {
0447 reg = <2>;
0448 cluster1_funnel_in_port2: endpoint {
0449 remote-endpoint = <&cluster1_etm2_out_port>;
0450 };
0451 };
0452 port@3 {
0453 reg = <3>;
0454 cluster1_funnel_in_port3: endpoint {
0455 remote-endpoint = <&cluster1_etm3_out_port>;
0456 };
0457 };
0458 };
0459 };
0460
0461 cpu_debug3: cpu-debug@23110000 {
0462 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0463 reg = <0x0 0x23110000 0x0 0x1000>;
0464
0465 clocks = <&soc_smc50mhz>;
0466 clock-names = "apb_pclk";
0467 power-domains = <&scpi_devpd 0>;
0468 };
0469
0470 etm3: etm@23140000 {
0471 compatible = "arm,coresight-etm4x", "arm,primecell";
0472 reg = <0 0x23140000 0 0x1000>;
0473
0474 clocks = <&soc_smc50mhz>;
0475 clock-names = "apb_pclk";
0476 power-domains = <&scpi_devpd 0>;
0477 out-ports {
0478 port {
0479 cluster1_etm1_out_port: endpoint {
0480 remote-endpoint = <&cluster1_funnel_in_port1>;
0481 };
0482 };
0483 };
0484 };
0485
0486 cti3: cti@23120000 {
0487 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0488 "arm,primecell";
0489 reg = <0 0x23120000 0 0x1000>;
0490
0491 clocks = <&soc_smc50mhz>;
0492 clock-names = "apb_pclk";
0493 power-domains = <&scpi_devpd 0>;
0494
0495 arm,cs-dev-assoc = <&etm3>;
0496 };
0497
0498 cpu_debug4: cpu-debug@23210000 {
0499 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0500 reg = <0x0 0x23210000 0x0 0x1000>;
0501
0502 clocks = <&soc_smc50mhz>;
0503 clock-names = "apb_pclk";
0504 power-domains = <&scpi_devpd 0>;
0505 };
0506
0507 etm4: etm@23240000 {
0508 compatible = "arm,coresight-etm4x", "arm,primecell";
0509 reg = <0 0x23240000 0 0x1000>;
0510
0511 clocks = <&soc_smc50mhz>;
0512 clock-names = "apb_pclk";
0513 power-domains = <&scpi_devpd 0>;
0514 out-ports {
0515 port {
0516 cluster1_etm2_out_port: endpoint {
0517 remote-endpoint = <&cluster1_funnel_in_port2>;
0518 };
0519 };
0520 };
0521 };
0522
0523 cti4: cti@23220000 {
0524 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0525 "arm,primecell";
0526 reg = <0 0x23220000 0 0x1000>;
0527
0528 clocks = <&soc_smc50mhz>;
0529 clock-names = "apb_pclk";
0530 power-domains = <&scpi_devpd 0>;
0531
0532 arm,cs-dev-assoc = <&etm4>;
0533 };
0534
0535 cpu_debug5: cpu-debug@23310000 {
0536 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0537 reg = <0x0 0x23310000 0x0 0x1000>;
0538
0539 clocks = <&soc_smc50mhz>;
0540 clock-names = "apb_pclk";
0541 power-domains = <&scpi_devpd 0>;
0542 };
0543
0544 etm5: etm@23340000 {
0545 compatible = "arm,coresight-etm4x", "arm,primecell";
0546 reg = <0 0x23340000 0 0x1000>;
0547
0548 clocks = <&soc_smc50mhz>;
0549 clock-names = "apb_pclk";
0550 power-domains = <&scpi_devpd 0>;
0551 out-ports {
0552 port {
0553 cluster1_etm3_out_port: endpoint {
0554 remote-endpoint = <&cluster1_funnel_in_port3>;
0555 };
0556 };
0557 };
0558 };
0559
0560 cti5: cti@23320000 {
0561 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0562 "arm,primecell";
0563 reg = <0 0x23320000 0 0x1000>;
0564
0565 clocks = <&soc_smc50mhz>;
0566 clock-names = "apb_pclk";
0567 power-domains = <&scpi_devpd 0>;
0568
0569 arm,cs-dev-assoc = <&etm5>;
0570 };
0571
0572 cti_sys0: cti@20020000 { /* sys_cti_0 */
0573 compatible = "arm,coresight-cti", "arm,primecell";
0574 reg = <0 0x20020000 0 0x1000>;
0575
0576 clocks = <&soc_smc50mhz>;
0577 clock-names = "apb_pclk";
0578 power-domains = <&scpi_devpd 0>;
0579
0580 #address-cells = <1>;
0581 #size-cells = <0>;
0582
0583 trig-conns@0 {
0584 reg = <0>;
0585 arm,trig-in-sigs = <2 3>;
0586 arm,trig-in-types = <SNK_FULL SNK_ACQCOMP>;
0587 arm,trig-out-sigs = <0 1>;
0588 arm,trig-out-types = <SNK_FLUSHIN SNK_TRIGIN>;
0589 arm,cs-dev-assoc = <&etr_sys>;
0590 };
0591
0592 trig-conns@1 {
0593 reg = <1>;
0594 arm,trig-in-sigs = <0 1>;
0595 arm,trig-in-types = <SNK_FULL SNK_ACQCOMP>;
0596 arm,trig-out-sigs = <7 6>;
0597 arm,trig-out-types = <SNK_FLUSHIN SNK_TRIGIN>;
0598 arm,cs-dev-assoc = <&etf_sys0>;
0599 };
0600
0601 trig-conns@2 {
0602 reg = <2>;
0603 arm,trig-in-sigs = <4 5 6 7>;
0604 arm,trig-in-types = <STM_TOUT_SPTE STM_TOUT_SW
0605 STM_TOUT_HETE STM_ASYNCOUT>;
0606 arm,trig-out-sigs = <4 5>;
0607 arm,trig-out-types = <STM_HWEVENT STM_HWEVENT>;
0608 arm,cs-dev-assoc = <&stm_sys>;
0609 };
0610
0611 trig-conns@3 {
0612 reg = <3>;
0613 arm,trig-out-sigs = <2 3>;
0614 arm,trig-out-types = <SNK_FLUSHIN SNK_TRIGIN>;
0615 arm,cs-dev-assoc = <&tpiu_sys>;
0616 };
0617 };
0618
0619 cti_sys1: cti@20110000 { /* sys_cti_1 */
0620 compatible = "arm,coresight-cti", "arm,primecell";
0621 reg = <0 0x20110000 0 0x1000>;
0622
0623 clocks = <&soc_smc50mhz>;
0624 clock-names = "apb_pclk";
0625 power-domains = <&scpi_devpd 0>;
0626
0627 #address-cells = <1>;
0628 #size-cells = <0>;
0629
0630 trig-conns@0 {
0631 reg = <0>;
0632 arm,trig-in-sigs = <0>;
0633 arm,trig-in-types = <GEN_INTREQ>;
0634 arm,trig-out-sigs = <0>;
0635 arm,trig-out-types = <GEN_HALTREQ>;
0636 arm,trig-conn-name = "sys_profiler";
0637 };
0638
0639 trig-conns@1 {
0640 reg = <1>;
0641 arm,trig-out-sigs = <2 3>;
0642 arm,trig-out-types = <GEN_HALTREQ GEN_RESTARTREQ>;
0643 arm,trig-conn-name = "watchdog";
0644 };
0645
0646 trig-conns@2 {
0647 reg = <2>;
0648 arm,trig-out-sigs = <1 6>;
0649 arm,trig-out-types = <GEN_HALTREQ GEN_RESTARTREQ>;
0650 arm,trig-conn-name = "g_counter";
0651 };
0652 };
0653
0654 gpu: gpu@2d000000 {
0655 compatible = "arm,juno-mali", "arm,mali-t624";
0656 reg = <0 0x2d000000 0 0x10000>;
0657 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
0658 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
0659 <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
0660 interrupt-names = "job", "mmu", "gpu";
0661 clocks = <&scpi_dvfs 2>;
0662 power-domains = <&scpi_devpd 1>;
0663 dma-coherent;
0664 /* The SMMU is only really of interest to bare-metal hypervisors */
0665 /* iommus = <&smmu_gpu 0>; */
0666 status = "disabled";
0667 };
0668
0669 sram: sram@2e000000 {
0670 compatible = "arm,juno-sram-ns", "mmio-sram";
0671 reg = <0x0 0x2e000000 0x0 0x8000>;
0672
0673 #address-cells = <1>;
0674 #size-cells = <1>;
0675 ranges = <0 0x0 0x2e000000 0x8000>;
0676
0677 cpu_scp_lpri: scp-sram@0 {
0678 compatible = "arm,juno-scp-shmem";
0679 reg = <0x0 0x200>;
0680 };
0681
0682 cpu_scp_hpri: scp-sram@200 {
0683 compatible = "arm,juno-scp-shmem";
0684 reg = <0x200 0x200>;
0685 };
0686 };
0687
0688 pcie_ctlr: pcie@40000000 {
0689 compatible = "arm,juno-r1-pcie", "plda,xpressrich3-axi", "pci-host-ecam-generic";
0690 device_type = "pci";
0691 reg = <0 0x40000000 0 0x10000000>; /* ECAM config space */
0692 bus-range = <0 255>;
0693 linux,pci-domain = <0>;
0694 #address-cells = <3>;
0695 #size-cells = <2>;
0696 dma-coherent;
0697 ranges = <0x01000000 0x00 0x00000000 0x00 0x5f800000 0x0 0x00800000>,
0698 <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
0699 <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
0700 /* Standard AXI Translation entries as programmed by EDK2 */
0701 dma-ranges = <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
0702 <0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
0703 #interrupt-cells = <1>;
0704 interrupt-map-mask = <0 0 0 7>;
0705 interrupt-map = <0 0 0 1 &gic 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
0706 <0 0 0 2 &gic 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
0707 <0 0 0 3 &gic 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
0708 <0 0 0 4 &gic 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
0709 msi-parent = <&v2m_0>;
0710 status = "disabled";
0711 iommu-map-mask = <0x0>; /* RC has no means to output PCI RID */
0712 iommu-map = <0x0 &smmu_pcie 0x0 0x1>;
0713 };
0714
0715 scpi {
0716 compatible = "arm,scpi";
0717 mboxes = <&mailbox 1>;
0718 shmem = <&cpu_scp_hpri>;
0719
0720 clocks {
0721 compatible = "arm,scpi-clocks";
0722
0723 scpi_dvfs: clocks-0 {
0724 compatible = "arm,scpi-dvfs-clocks";
0725 #clock-cells = <1>;
0726 clock-indices = <0>, <1>, <2>;
0727 clock-output-names = "atlclk", "aplclk","gpuclk";
0728 };
0729 scpi_clk: clocks-1 {
0730 compatible = "arm,scpi-variable-clocks";
0731 #clock-cells = <1>;
0732 clock-indices = <3>;
0733 clock-output-names = "pxlclk";
0734 };
0735 };
0736
0737 scpi_devpd: power-controller {
0738 compatible = "arm,scpi-power-domains";
0739 num-domains = <2>;
0740 #power-domain-cells = <1>;
0741 };
0742
0743 scpi_sensors0: sensors {
0744 compatible = "arm,scpi-sensors";
0745 #thermal-sensor-cells = <1>;
0746 };
0747 };
0748
0749 thermal-zones {
0750 pmic {
0751 polling-delay = <1000>;
0752 polling-delay-passive = <100>;
0753 thermal-sensors = <&scpi_sensors0 0>;
0754 };
0755
0756 soc {
0757 polling-delay = <1000>;
0758 polling-delay-passive = <100>;
0759 thermal-sensors = <&scpi_sensors0 3>;
0760 };
0761
0762 big_cluster_thermal_zone: big-cluster {
0763 polling-delay = <1000>;
0764 polling-delay-passive = <100>;
0765 thermal-sensors = <&scpi_sensors0 21>;
0766 status = "disabled";
0767 };
0768
0769 little_cluster_thermal_zone: little-cluster {
0770 polling-delay = <1000>;
0771 polling-delay-passive = <100>;
0772 thermal-sensors = <&scpi_sensors0 22>;
0773 status = "disabled";
0774 };
0775
0776 gpu0_thermal_zone: gpu0 {
0777 polling-delay = <1000>;
0778 polling-delay-passive = <100>;
0779 thermal-sensors = <&scpi_sensors0 23>;
0780 status = "disabled";
0781 };
0782
0783 gpu1_thermal_zone: gpu1 {
0784 polling-delay = <1000>;
0785 polling-delay-passive = <100>;
0786 thermal-sensors = <&scpi_sensors0 24>;
0787 status = "disabled";
0788 };
0789 };
0790
0791 smmu_dma: iommu@7fb00000 {
0792 compatible = "arm,mmu-401", "arm,smmu-v1";
0793 reg = <0x0 0x7fb00000 0x0 0x10000>;
0794 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
0795 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
0796 #iommu-cells = <1>;
0797 #global-interrupts = <1>;
0798 dma-coherent;
0799 };
0800
0801 smmu_hdlcd1: iommu@7fb10000 {
0802 compatible = "arm,mmu-401", "arm,smmu-v1";
0803 reg = <0x0 0x7fb10000 0x0 0x10000>;
0804 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
0805 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
0806 #iommu-cells = <1>;
0807 #global-interrupts = <1>;
0808 };
0809
0810 smmu_hdlcd0: iommu@7fb20000 {
0811 compatible = "arm,mmu-401", "arm,smmu-v1";
0812 reg = <0x0 0x7fb20000 0x0 0x10000>;
0813 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
0814 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
0815 #iommu-cells = <1>;
0816 #global-interrupts = <1>;
0817 };
0818
0819 smmu_usb: iommu@7fb30000 {
0820 compatible = "arm,mmu-401", "arm,smmu-v1";
0821 reg = <0x0 0x7fb30000 0x0 0x10000>;
0822 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
0823 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
0824 #iommu-cells = <1>;
0825 #global-interrupts = <1>;
0826 dma-coherent;
0827 };
0828
0829 dma-controller@7ff00000 {
0830 compatible = "arm,pl330", "arm,primecell";
0831 reg = <0x0 0x7ff00000 0 0x1000>;
0832 #dma-cells = <1>;
0833 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
0834 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
0835 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
0836 <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
0837 <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
0838 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
0839 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
0840 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
0841 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
0842 iommus = <&smmu_dma 0>,
0843 <&smmu_dma 1>,
0844 <&smmu_dma 2>,
0845 <&smmu_dma 3>,
0846 <&smmu_dma 4>,
0847 <&smmu_dma 5>,
0848 <&smmu_dma 6>,
0849 <&smmu_dma 7>,
0850 <&smmu_dma 8>;
0851 clocks = <&soc_faxiclk>;
0852 clock-names = "apb_pclk";
0853 };
0854
0855 hdlcd@7ff50000 {
0856 compatible = "arm,hdlcd";
0857 reg = <0 0x7ff50000 0 0x1000>;
0858 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
0859 iommus = <&smmu_hdlcd1 0>;
0860 clocks = <&scpi_clk 3>;
0861 clock-names = "pxlclk";
0862
0863 port {
0864 hdlcd1_output: endpoint {
0865 remote-endpoint = <&tda998x_1_input>;
0866 };
0867 };
0868 };
0869
0870 hdlcd@7ff60000 {
0871 compatible = "arm,hdlcd";
0872 reg = <0 0x7ff60000 0 0x1000>;
0873 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
0874 iommus = <&smmu_hdlcd0 0>;
0875 clocks = <&scpi_clk 3>;
0876 clock-names = "pxlclk";
0877
0878 port {
0879 hdlcd0_output: endpoint {
0880 remote-endpoint = <&tda998x_0_input>;
0881 };
0882 };
0883 };
0884
0885 soc_uart0: serial@7ff80000 {
0886 compatible = "arm,pl011", "arm,primecell";
0887 reg = <0x0 0x7ff80000 0x0 0x1000>;
0888 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
0889 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
0890 clock-names = "uartclk", "apb_pclk";
0891 };
0892
0893 i2c@7ffa0000 {
0894 compatible = "snps,designware-i2c";
0895 reg = <0x0 0x7ffa0000 0x0 0x1000>;
0896 #address-cells = <1>;
0897 #size-cells = <0>;
0898 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
0899 clock-frequency = <400000>;
0900 i2c-sda-hold-time-ns = <500>;
0901 clocks = <&soc_smc50mhz>;
0902
0903 hdmi-transmitter@70 {
0904 compatible = "nxp,tda998x";
0905 reg = <0x70>;
0906 port {
0907 tda998x_0_input: endpoint {
0908 remote-endpoint = <&hdlcd0_output>;
0909 };
0910 };
0911 };
0912
0913 hdmi-transmitter@71 {
0914 compatible = "nxp,tda998x";
0915 reg = <0x71>;
0916 port {
0917 tda998x_1_input: endpoint {
0918 remote-endpoint = <&hdlcd1_output>;
0919 };
0920 };
0921 };
0922 };
0923
0924 usb@7ffb0000 {
0925 compatible = "generic-ohci";
0926 reg = <0x0 0x7ffb0000 0x0 0x10000>;
0927 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
0928 iommus = <&smmu_usb 0>;
0929 clocks = <&soc_usb48mhz>;
0930 };
0931
0932 usb@7ffc0000 {
0933 compatible = "generic-ehci";
0934 reg = <0x0 0x7ffc0000 0x0 0x10000>;
0935 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
0936 iommus = <&smmu_usb 0>;
0937 clocks = <&soc_usb48mhz>;
0938 };
0939
0940 memory-controller@7ffd0000 {
0941 compatible = "arm,pl354", "arm,primecell";
0942 reg = <0 0x7ffd0000 0 0x1000>;
0943 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
0944 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
0945 clocks = <&soc_smc50mhz>;
0946 clock-names = "apb_pclk";
0947 };
0948
0949 memory@80000000 {
0950 device_type = "memory";
0951 /* last 16MB of the first memory area is reserved for secure world use by firmware */
0952 reg = <0x00000000 0x80000000 0x0 0x7f000000>,
0953 <0x00000008 0x80000000 0x1 0x80000000>;
0954 };
0955
0956 bus@8000000 {
0957 #interrupt-cells = <1>;
0958 interrupt-map-mask = <0 0 15>;
0959 interrupt-map = <0 0 0 &gic 0 GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
0960 <0 0 1 &gic 0 GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
0961 <0 0 2 &gic 0 GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
0962 <0 0 3 &gic 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
0963 <0 0 4 &gic 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
0964 <0 0 5 &gic 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
0965 <0 0 6 &gic 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
0966 <0 0 7 &gic 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
0967 <0 0 8 &gic 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
0968 <0 0 9 &gic 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
0969 <0 0 10 &gic 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
0970 <0 0 11 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
0971 <0 0 12 &gic 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
0972 };
0973
0974 site2: tlx-bus@60000000 {
0975 compatible = "simple-bus";
0976 #address-cells = <1>;
0977 #size-cells = <1>;
0978 ranges = <0 0 0x60000000 0x10000000>;
0979 #interrupt-cells = <1>;
0980 interrupt-map-mask = <0 0>;
0981 interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
0982 };
0983 };