1*572c8ce2SManoj Kumar/* 2*572c8ce2SManoj Kumar * Copyright (c) 2021, Arm Limited. All rights reserved. 3*572c8ce2SManoj Kumar * 4*572c8ce2SManoj Kumar * SPDX-License-Identifier: BSD-3-Clause 5*572c8ce2SManoj Kumar */ 6*572c8ce2SManoj Kumar 7*572c8ce2SManoj Kumar/dts-v1/; 8*572c8ce2SManoj Kumar#include "morello.dtsi" 9*572c8ce2SManoj Kumar 10*572c8ce2SManoj Kumar/ { 11*572c8ce2SManoj Kumar 12*572c8ce2SManoj Kumar chosen { 13*572c8ce2SManoj Kumar stdout-path = "soc_uart0:115200n8"; 14*572c8ce2SManoj Kumar }; 15*572c8ce2SManoj Kumar 16*572c8ce2SManoj Kumar reserved-memory { 17*572c8ce2SManoj Kumar #address-cells = <2>; 18*572c8ce2SManoj Kumar #size-cells = <2>; 19*572c8ce2SManoj Kumar ranges; 20*572c8ce2SManoj Kumar 21*572c8ce2SManoj Kumar secure-firmware@ff000000 { 22*572c8ce2SManoj Kumar reg = <0 0xff000000 0 0x01000000>; 23*572c8ce2SManoj Kumar no-map; 24*572c8ce2SManoj Kumar }; 25*572c8ce2SManoj Kumar }; 26*572c8ce2SManoj Kumar 27*572c8ce2SManoj Kumar cpus { 28*572c8ce2SManoj Kumar #address-cells = <2>; 29*572c8ce2SManoj Kumar #size-cells = <0>; 30*572c8ce2SManoj Kumar cpu0@0 { 31*572c8ce2SManoj Kumar compatible = "arm,armv8"; 32*572c8ce2SManoj Kumar reg = <0x0 0x0>; 33*572c8ce2SManoj Kumar device_type = "cpu"; 34*572c8ce2SManoj Kumar enable-method = "psci"; 35*572c8ce2SManoj Kumar }; 36*572c8ce2SManoj Kumar cpu1@100 { 37*572c8ce2SManoj Kumar compatible = "arm,armv8"; 38*572c8ce2SManoj Kumar reg = <0x0 0x100>; 39*572c8ce2SManoj Kumar device_type = "cpu"; 40*572c8ce2SManoj Kumar enable-method = "psci"; 41*572c8ce2SManoj Kumar }; 42*572c8ce2SManoj Kumar cpu2@10000 { 43*572c8ce2SManoj Kumar compatible = "arm,armv8"; 44*572c8ce2SManoj Kumar reg = <0x0 0x10000>; 45*572c8ce2SManoj Kumar device_type = "cpu"; 46*572c8ce2SManoj Kumar enable-method = "psci"; 47*572c8ce2SManoj Kumar }; 48*572c8ce2SManoj Kumar cpu3@10100 { 49*572c8ce2SManoj Kumar compatible = "arm,armv8"; 50*572c8ce2SManoj Kumar reg = <0x0 0x10100>; 51*572c8ce2SManoj Kumar device_type = "cpu"; 52*572c8ce2SManoj Kumar enable-method = "psci"; 53*572c8ce2SManoj Kumar }; 54*572c8ce2SManoj Kumar }; 55*572c8ce2SManoj Kumar 56*572c8ce2SManoj Kumar /* The first bank of memory, memory map is actually provided by UEFI. */ 57*572c8ce2SManoj Kumar memory@80000000 { 58*572c8ce2SManoj Kumar #address-cells = <2>; 59*572c8ce2SManoj Kumar #size-cells = <2>; 60*572c8ce2SManoj Kumar device_type = "memory"; 61*572c8ce2SManoj Kumar /* [0x80000000-0xffffffff] */ 62*572c8ce2SManoj Kumar reg = <0x00000000 0x80000000 0x0 0x7F000000>; 63*572c8ce2SManoj Kumar }; 64*572c8ce2SManoj Kumar 65*572c8ce2SManoj Kumar memory@8080000000 { 66*572c8ce2SManoj Kumar #address-cells = <2>; 67*572c8ce2SManoj Kumar #size-cells = <2>; 68*572c8ce2SManoj Kumar device_type = "memory"; 69*572c8ce2SManoj Kumar /* [0x8080000000-0x83f7ffffff] */ 70*572c8ce2SManoj Kumar reg = <0x00000080 0x80000000 0x3 0x78000000>; 71*572c8ce2SManoj Kumar }; 72*572c8ce2SManoj Kumar 73*572c8ce2SManoj Kumar smmu_pcie: iommu@4f400000 { 74*572c8ce2SManoj Kumar compatible = "arm,smmu-v3"; 75*572c8ce2SManoj Kumar reg = <0 0x4f400000 0 0x40000>; 76*572c8ce2SManoj Kumar interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>, 77*572c8ce2SManoj Kumar <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>, 78*572c8ce2SManoj Kumar <GIC_SPI 236 IRQ_TYPE_EDGE_RISING>, 79*572c8ce2SManoj Kumar <GIC_SPI 237 IRQ_TYPE_EDGE_RISING>; 80*572c8ce2SManoj Kumar interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; 81*572c8ce2SManoj Kumar msi-parent = <&its2 0>; 82*572c8ce2SManoj Kumar #iommu-cells = <1>; 83*572c8ce2SManoj Kumar dma-coherent; 84*572c8ce2SManoj Kumar }; 85*572c8ce2SManoj Kumar 86*572c8ce2SManoj Kumar pcie_ctlr: pcie@28c0000000 { 87*572c8ce2SManoj Kumar compatible = "pci-host-ecam-generic"; 88*572c8ce2SManoj Kumar device_type = "pci"; 89*572c8ce2SManoj Kumar reg = <0x28 0xC0000000 0 0x10000000>; 90*572c8ce2SManoj Kumar bus-range = <0 255>; 91*572c8ce2SManoj Kumar linux,pci-domain = <0>; 92*572c8ce2SManoj Kumar #address-cells = <3>; 93*572c8ce2SManoj Kumar #size-cells = <2>; 94*572c8ce2SManoj Kumar dma-coherent; 95*572c8ce2SManoj Kumar ranges = <0x01000000 0x00 0x00000000 0x00 0x6F000000 0x00 0x00800000>, 96*572c8ce2SManoj Kumar <0x02000000 0x00 0x60000000 0x00 0x60000000 0x00 0x0F000000>, 97*572c8ce2SManoj Kumar <0x42000000 0x09 0x00000000 0x09 0x00000000 0x1F 0xC0000000>; 98*572c8ce2SManoj Kumar #interrupt-cells = <1>; 99*572c8ce2SManoj Kumar interrupt-map-mask = <0 0 0 7>; 100*572c8ce2SManoj Kumar interrupt-map = <0 0 0 1 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>, 101*572c8ce2SManoj Kumar <0 0 0 2 &gic 0 0 0 170 IRQ_TYPE_LEVEL_HIGH>, 102*572c8ce2SManoj Kumar <0 0 0 3 &gic 0 0 0 171 IRQ_TYPE_LEVEL_HIGH>, 103*572c8ce2SManoj Kumar <0 0 0 4 &gic 0 0 0 172 IRQ_TYPE_LEVEL_HIGH>; 104*572c8ce2SManoj Kumar msi-map = <0 &its_pcie 0 0x10000>; 105*572c8ce2SManoj Kumar iommu-map = <0 &smmu_pcie 0 0x10000>; 106*572c8ce2SManoj Kumar status = "okay"; 107*572c8ce2SManoj Kumar }; 108*572c8ce2SManoj Kumar 109*572c8ce2SManoj Kumar smmu_ccix: iommu@4f000000 { 110*572c8ce2SManoj Kumar compatible = "arm,smmu-v3"; 111*572c8ce2SManoj Kumar reg = <0 0x4f000000 0 0x40000>; 112*572c8ce2SManoj Kumar interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>, 113*572c8ce2SManoj Kumar <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>, 114*572c8ce2SManoj Kumar <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>, 115*572c8ce2SManoj Kumar <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>; 116*572c8ce2SManoj Kumar interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; 117*572c8ce2SManoj Kumar msi-parent = <&its1 0>; 118*572c8ce2SManoj Kumar #iommu-cells = <1>; 119*572c8ce2SManoj Kumar dma-coherent; 120*572c8ce2SManoj Kumar }; 121*572c8ce2SManoj Kumar 122*572c8ce2SManoj Kumar ccix_pcie_ctlr: pcie@4fc0000000 { 123*572c8ce2SManoj Kumar compatible = "pci-host-ecam-generic"; 124*572c8ce2SManoj Kumar device_type = "pci"; 125*572c8ce2SManoj Kumar reg = <0x4F 0xC0000000 0 0x10000000>; 126*572c8ce2SManoj Kumar bus-range = <0 255>; 127*572c8ce2SManoj Kumar linux,pci-domain = <1>; 128*572c8ce2SManoj Kumar #address-cells = <3>; 129*572c8ce2SManoj Kumar #size-cells = <2>; 130*572c8ce2SManoj Kumar dma-coherent; 131*572c8ce2SManoj Kumar ranges = <0x01000000 0x00 0x00000000 0x00 0x7F000000 0x00 0x00800000>, 132*572c8ce2SManoj Kumar <0x02000000 0x00 0x70000000 0x00 0x70000000 0x00 0x0F000000>, 133*572c8ce2SManoj Kumar <0x42000000 0x30 0x00000000 0x30 0x00000000 0x1F 0xC0000000>; 134*572c8ce2SManoj Kumar #interrupt-cells = <1>; 135*572c8ce2SManoj Kumar interrupt-map-mask = <0 0 0 7>; 136*572c8ce2SManoj Kumar interrupt-map = <0 0 0 1 &gic 0 0 0 201 IRQ_TYPE_LEVEL_HIGH>, 137*572c8ce2SManoj Kumar <0 0 0 2 &gic 0 0 0 202 IRQ_TYPE_LEVEL_HIGH>, 138*572c8ce2SManoj Kumar <0 0 0 3 &gic 0 0 0 203 IRQ_TYPE_LEVEL_HIGH>, 139*572c8ce2SManoj Kumar <0 0 0 4 &gic 0 0 0 204 IRQ_TYPE_LEVEL_HIGH>; 140*572c8ce2SManoj Kumar msi-map = <0 &its_ccix 0 0x10000>; 141*572c8ce2SManoj Kumar iommu-map = <0 &smmu_ccix 0 0x10000>; 142*572c8ce2SManoj Kumar status = "okay"; 143*572c8ce2SManoj Kumar }; 144*572c8ce2SManoj Kumar 145*572c8ce2SManoj Kumar smmu_dp: iommu@2ce00000 { 146*572c8ce2SManoj Kumar compatible = "arm,smmu-v3"; 147*572c8ce2SManoj Kumar reg = <0 0x2ce00000 0 0x40000>; 148*572c8ce2SManoj Kumar interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>, 149*572c8ce2SManoj Kumar <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>, 150*572c8ce2SManoj Kumar <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>; 151*572c8ce2SManoj Kumar interrupt-names = "eventq", "cmdq-sync", "gerror"; 152*572c8ce2SManoj Kumar #iommu-cells = <1>; 153*572c8ce2SManoj Kumar }; 154*572c8ce2SManoj Kumar 155*572c8ce2SManoj Kumar dp0: display@2cc00000 { 156*572c8ce2SManoj Kumar #address-cells = <1>; 157*572c8ce2SManoj Kumar #size-cells = <0>; 158*572c8ce2SManoj Kumar compatible = "arm,mali-d32"; 159*572c8ce2SManoj Kumar reg = <0 0x2cc00000 0 0x20000>; 160*572c8ce2SManoj Kumar interrupts = <0 69 4>; 161*572c8ce2SManoj Kumar interrupt-names = "DPU"; 162*572c8ce2SManoj Kumar clocks = <&dpu_aclk>; 163*572c8ce2SManoj Kumar clock-names = "aclk"; 164*572c8ce2SManoj Kumar iommus = <&smmu_dp 0>, <&smmu_dp 1>, <&smmu_dp 2>, <&smmu_dp 3>, 165*572c8ce2SManoj Kumar <&smmu_dp 8>; 166*572c8ce2SManoj Kumar 167*572c8ce2SManoj Kumar pl0: pipeline@0 { 168*572c8ce2SManoj Kumar reg = <0>; 169*572c8ce2SManoj Kumar clocks = <&dpu_pixel_clk>; 170*572c8ce2SManoj Kumar clock-names = "pxclk"; 171*572c8ce2SManoj Kumar pl_id = <0>; 172*572c8ce2SManoj Kumar ports { 173*572c8ce2SManoj Kumar #address-cells = <1>; 174*572c8ce2SManoj Kumar #size-cells = <0>; 175*572c8ce2SManoj Kumar port@0 { 176*572c8ce2SManoj Kumar reg = <0>; 177*572c8ce2SManoj Kumar dp_pl0_out0: endpoint { 178*572c8ce2SManoj Kumar remote-endpoint = <&tda998x_0_input>; 179*572c8ce2SManoj Kumar }; 180*572c8ce2SManoj Kumar }; 181*572c8ce2SManoj Kumar }; 182*572c8ce2SManoj Kumar }; 183*572c8ce2SManoj Kumar }; 184*572c8ce2SManoj Kumar 185*572c8ce2SManoj Kumar i2c@1c0f0000 { 186*572c8ce2SManoj Kumar compatible = "cdns,i2c-r1p14"; 187*572c8ce2SManoj Kumar reg = <0x0 0x1c0f0000 0x0 0x1000>; 188*572c8ce2SManoj Kumar #address-cells = <1>; 189*572c8ce2SManoj Kumar #size-cells = <0>; 190*572c8ce2SManoj Kumar clock-frequency = <100000>; 191*572c8ce2SManoj Kumar i2c-sda-hold-time-ns = <500>; 192*572c8ce2SManoj Kumar interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 193*572c8ce2SManoj Kumar clocks = <&dpu_aclk>; 194*572c8ce2SManoj Kumar 195*572c8ce2SManoj Kumar hdmi-transmitter@70 { 196*572c8ce2SManoj Kumar compatible = "nxp,tda998x"; 197*572c8ce2SManoj Kumar reg = <0x70>; 198*572c8ce2SManoj Kumar video-ports = <0x234501>; 199*572c8ce2SManoj Kumar port { 200*572c8ce2SManoj Kumar tda998x_0_input: endpoint { 201*572c8ce2SManoj Kumar remote-endpoint = <&dp_pl0_out0>; 202*572c8ce2SManoj Kumar }; 203*572c8ce2SManoj Kumar }; 204*572c8ce2SManoj Kumar }; 205*572c8ce2SManoj Kumar }; 206*572c8ce2SManoj Kumar 207*572c8ce2SManoj Kumar dpu_aclk: dpu_aclk { 208*572c8ce2SManoj Kumar /* 77.1 MHz derived from 24 MHz reference clock */ 209*572c8ce2SManoj Kumar compatible = "fixed-clock"; 210*572c8ce2SManoj Kumar #clock-cells = <0>; 211*572c8ce2SManoj Kumar clock-frequency = <350000000>; 212*572c8ce2SManoj Kumar clock-output-names = "aclk"; 213*572c8ce2SManoj Kumar }; 214*572c8ce2SManoj Kumar 215*572c8ce2SManoj Kumar dpu_pixel_clk: dpu-pixel-clk { 216*572c8ce2SManoj Kumar compatible = "fixed-clock"; 217*572c8ce2SManoj Kumar #clock-cells = <0>; 218*572c8ce2SManoj Kumar clock-frequency = <148500000>; 219*572c8ce2SManoj Kumar clock-output-names = "pxclk"; 220*572c8ce2SManoj Kumar }; 221*572c8ce2SManoj Kumar}; 222*572c8ce2SManoj Kumar 223*572c8ce2SManoj Kumar&gic { 224*572c8ce2SManoj Kumar reg = <0x0 0x30000000 0 0x10000>, /* GICD */ 225*572c8ce2SManoj Kumar <0x0 0x300c0000 0 0x80000>; /* GICR */ 226*572c8ce2SManoj Kumar interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 227*572c8ce2SManoj Kumar 228*572c8ce2SManoj Kumar its1: its@30040000 { 229*572c8ce2SManoj Kumar compatible = "arm,gic-v3-its"; 230*572c8ce2SManoj Kumar msi-controller; 231*572c8ce2SManoj Kumar #msi-cells = <1>; 232*572c8ce2SManoj Kumar reg = <0x0 0x30040000 0x0 0x20000>; 233*572c8ce2SManoj Kumar }; 234*572c8ce2SManoj Kumar 235*572c8ce2SManoj Kumar its2: its@30060000 { 236*572c8ce2SManoj Kumar compatible = "arm,gic-v3-its"; 237*572c8ce2SManoj Kumar msi-controller; 238*572c8ce2SManoj Kumar #msi-cells = <1>; 239*572c8ce2SManoj Kumar reg = <0x0 0x30060000 0x0 0x20000>; 240*572c8ce2SManoj Kumar }; 241*572c8ce2SManoj Kumar 242*572c8ce2SManoj Kumar its_ccix: its@30080000 { 243*572c8ce2SManoj Kumar compatible = "arm,gic-v3-its"; 244*572c8ce2SManoj Kumar msi-controller; 245*572c8ce2SManoj Kumar #msi-cells = <1>; 246*572c8ce2SManoj Kumar reg = <0x0 0x30080000 0x0 0x20000>; 247*572c8ce2SManoj Kumar }; 248*572c8ce2SManoj Kumar 249*572c8ce2SManoj Kumar its_pcie: its@300a0000 { 250*572c8ce2SManoj Kumar compatible = "arm,gic-v3-its"; 251*572c8ce2SManoj Kumar msi-controller; 252*572c8ce2SManoj Kumar #msi-cells = <1>; 253*572c8ce2SManoj Kumar reg = <0x0 0x300a0000 0x0 0x20000>; 254*572c8ce2SManoj Kumar }; 255*572c8ce2SManoj Kumar}; 256