1*54fd6939SJiyong Park// SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause) 2*54fd6939SJiyong Park/* 3*54fd6939SJiyong Park * Copyright (c) 2019-2020, Arm Limited. 4*54fd6939SJiyong Park */ 5*54fd6939SJiyong Park 6*54fd6939SJiyong Park#include <dt-bindings/interrupt-controller/arm-gic.h> 7*54fd6939SJiyong Park 8*54fd6939SJiyong Park/ { 9*54fd6939SJiyong Park interrupt-parent = <&gic>; 10*54fd6939SJiyong Park #address-cells = <2>; 11*54fd6939SJiyong Park #size-cells = <2>; 12*54fd6939SJiyong Park 13*54fd6939SJiyong Park cpus { 14*54fd6939SJiyong Park #address-cells = <2>; 15*54fd6939SJiyong Park #size-cells = <0>; 16*54fd6939SJiyong Park 17*54fd6939SJiyong Park cpu0@0 { 18*54fd6939SJiyong Park compatible = "arm,neoverse-n1"; 19*54fd6939SJiyong Park reg = <0x0 0x0>; 20*54fd6939SJiyong Park device_type = "cpu"; 21*54fd6939SJiyong Park enable-method = "psci"; 22*54fd6939SJiyong Park numa-node-id = <0>; 23*54fd6939SJiyong Park }; 24*54fd6939SJiyong Park cpu1@100 { 25*54fd6939SJiyong Park compatible = "arm,neoverse-n1"; 26*54fd6939SJiyong Park reg = <0x0 0x100>; 27*54fd6939SJiyong Park device_type = "cpu"; 28*54fd6939SJiyong Park enable-method = "psci"; 29*54fd6939SJiyong Park numa-node-id = <0>; 30*54fd6939SJiyong Park }; 31*54fd6939SJiyong Park cpu2@10000 { 32*54fd6939SJiyong Park compatible = "arm,neoverse-n1"; 33*54fd6939SJiyong Park reg = <0x0 0x10000>; 34*54fd6939SJiyong Park device_type = "cpu"; 35*54fd6939SJiyong Park enable-method = "psci"; 36*54fd6939SJiyong Park numa-node-id = <0>; 37*54fd6939SJiyong Park }; 38*54fd6939SJiyong Park cpu3@10100 { 39*54fd6939SJiyong Park compatible = "arm,neoverse-n1"; 40*54fd6939SJiyong Park reg = <0x0 0x10100>; 41*54fd6939SJiyong Park device_type = "cpu"; 42*54fd6939SJiyong Park enable-method = "psci"; 43*54fd6939SJiyong Park numa-node-id = <0>; 44*54fd6939SJiyong Park }; 45*54fd6939SJiyong Park }; 46*54fd6939SJiyong Park 47*54fd6939SJiyong Park pmu { 48*54fd6939SJiyong Park compatible = "arm,armv8-pmuv3"; 49*54fd6939SJiyong Park interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 50*54fd6939SJiyong Park }; 51*54fd6939SJiyong Park 52*54fd6939SJiyong Park spe-pmu { 53*54fd6939SJiyong Park compatible = "arm,statistical-profiling-extension-v1"; 54*54fd6939SJiyong Park interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>; 55*54fd6939SJiyong Park }; 56*54fd6939SJiyong Park 57*54fd6939SJiyong Park psci { 58*54fd6939SJiyong Park compatible = "arm,psci-0.2"; 59*54fd6939SJiyong Park method = "smc"; 60*54fd6939SJiyong Park }; 61*54fd6939SJiyong Park 62*54fd6939SJiyong Park timer { 63*54fd6939SJiyong Park compatible = "arm,armv8-timer"; 64*54fd6939SJiyong Park interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 65*54fd6939SJiyong Park <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 66*54fd6939SJiyong Park <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 67*54fd6939SJiyong Park <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 68*54fd6939SJiyong Park }; 69*54fd6939SJiyong Park 70*54fd6939SJiyong Park soc_refclk100mhz: refclk100mhz { 71*54fd6939SJiyong Park compatible = "fixed-clock"; 72*54fd6939SJiyong Park #clock-cells = <0>; 73*54fd6939SJiyong Park clock-frequency = <100000000>; 74*54fd6939SJiyong Park clock-output-names = "apb_pclk"; 75*54fd6939SJiyong Park }; 76*54fd6939SJiyong Park 77*54fd6939SJiyong Park soc_uartclk: uartclk { 78*54fd6939SJiyong Park compatible = "fixed-clock"; 79*54fd6939SJiyong Park #clock-cells = <0>; 80*54fd6939SJiyong Park clock-frequency = <50000000>; 81*54fd6939SJiyong Park clock-output-names = "uartclk"; 82*54fd6939SJiyong Park }; 83*54fd6939SJiyong Park 84*54fd6939SJiyong Park soc { 85*54fd6939SJiyong Park compatible = "arm,neoverse-n1-soc", "simple-bus"; 86*54fd6939SJiyong Park #address-cells = <2>; 87*54fd6939SJiyong Park #size-cells = <2>; 88*54fd6939SJiyong Park ranges; 89*54fd6939SJiyong Park 90*54fd6939SJiyong Park gic: interrupt-controller@30000000 { 91*54fd6939SJiyong Park compatible = "arm,gic-v3"; 92*54fd6939SJiyong Park #address-cells = <2>; 93*54fd6939SJiyong Park #interrupt-cells = <3>; 94*54fd6939SJiyong Park #size-cells = <2>; 95*54fd6939SJiyong Park ranges; 96*54fd6939SJiyong Park interrupt-controller; 97*54fd6939SJiyong Park reg = <0x0 0x30000000 0 0x10000>, /* GICD */ 98*54fd6939SJiyong Park <0x0 0x300c0000 0 0x80000>; /* GICR */ 99*54fd6939SJiyong Park 100*54fd6939SJiyong Park interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 101*54fd6939SJiyong Park 102*54fd6939SJiyong Park its1: its@30040000 { 103*54fd6939SJiyong Park compatible = "arm,gic-v3-its"; 104*54fd6939SJiyong Park msi-controller; 105*54fd6939SJiyong Park #msi-cells = <1>; 106*54fd6939SJiyong Park reg = <0x0 0x30040000 0x0 0x20000>; 107*54fd6939SJiyong Park }; 108*54fd6939SJiyong Park 109*54fd6939SJiyong Park its2: its@30060000 { 110*54fd6939SJiyong Park compatible = "arm,gic-v3-its"; 111*54fd6939SJiyong Park msi-controller; 112*54fd6939SJiyong Park #msi-cells = <1>; 113*54fd6939SJiyong Park reg = <0x0 0x30060000 0x0 0x20000>; 114*54fd6939SJiyong Park }; 115*54fd6939SJiyong Park 116*54fd6939SJiyong Park its_ccix: its@30080000 { 117*54fd6939SJiyong Park compatible = "arm,gic-v3-its"; 118*54fd6939SJiyong Park msi-controller; 119*54fd6939SJiyong Park #msi-cells = <1>; 120*54fd6939SJiyong Park reg = <0x0 0x30080000 0x0 0x20000>; 121*54fd6939SJiyong Park }; 122*54fd6939SJiyong Park 123*54fd6939SJiyong Park its_pcie: its@300a0000 { 124*54fd6939SJiyong Park compatible = "arm,gic-v3-its"; 125*54fd6939SJiyong Park msi-controller; 126*54fd6939SJiyong Park #msi-cells = <1>; 127*54fd6939SJiyong Park reg = <0x0 0x300a0000 0x0 0x20000>; 128*54fd6939SJiyong Park }; 129*54fd6939SJiyong Park }; 130*54fd6939SJiyong Park 131*54fd6939SJiyong Park smmu_ccix: iommu@4f000000 { 132*54fd6939SJiyong Park compatible = "arm,smmu-v3"; 133*54fd6939SJiyong Park reg = <0 0x4f000000 0 0x40000>; 134*54fd6939SJiyong Park interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>, 135*54fd6939SJiyong Park <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>, 136*54fd6939SJiyong Park <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>; 137*54fd6939SJiyong Park interrupt-names = "eventq", "cmdq-sync", "gerror"; 138*54fd6939SJiyong Park msi-parent = <&its1 0>; 139*54fd6939SJiyong Park #iommu-cells = <1>; 140*54fd6939SJiyong Park dma-coherent; 141*54fd6939SJiyong Park }; 142*54fd6939SJiyong Park 143*54fd6939SJiyong Park smmu_pcie: iommu@4f400000 { 144*54fd6939SJiyong Park compatible = "arm,smmu-v3"; 145*54fd6939SJiyong Park reg = <0 0x4f400000 0 0x40000>; 146*54fd6939SJiyong Park interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>, 147*54fd6939SJiyong Park <GIC_SPI 236 IRQ_TYPE_EDGE_RISING>, 148*54fd6939SJiyong Park <GIC_SPI 237 IRQ_TYPE_EDGE_RISING>; 149*54fd6939SJiyong Park interrupt-names = "eventq", "cmdq-sync", "gerror"; 150*54fd6939SJiyong Park msi-parent = <&its2 0>; 151*54fd6939SJiyong Park #iommu-cells = <1>; 152*54fd6939SJiyong Park dma-coherent; 153*54fd6939SJiyong Park }; 154*54fd6939SJiyong Park 155*54fd6939SJiyong Park pcie_ctlr: pcie@70000000 { 156*54fd6939SJiyong Park compatible = "arm,n1sdp-pcie"; 157*54fd6939SJiyong Park device_type = "pci"; 158*54fd6939SJiyong Park reg = <0 0x70000000 0 0x1200000>; 159*54fd6939SJiyong Park bus-range = <0 17>; 160*54fd6939SJiyong Park linux,pci-domain = <0>; 161*54fd6939SJiyong Park #address-cells = <3>; 162*54fd6939SJiyong Park #size-cells = <2>; 163*54fd6939SJiyong Park dma-coherent; 164*54fd6939SJiyong Park ranges = <0x01000000 0x00 0x00000000 0x00 0x75200000 0x00 0x00010000>, 165*54fd6939SJiyong Park <0x02000000 0x00 0x71200000 0x00 0x71200000 0x00 0x04000000>, 166*54fd6939SJiyong Park <0x42000000 0x09 0x00000000 0x09 0x00000000 0x20 0x00000000>; 167*54fd6939SJiyong Park #interrupt-cells = <1>; 168*54fd6939SJiyong Park interrupt-map-mask = <0 0 0 7>; 169*54fd6939SJiyong Park interrupt-map = <0 0 0 1 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>, 170*54fd6939SJiyong Park <0 0 0 2 &gic 0 0 0 170 IRQ_TYPE_LEVEL_HIGH>, 171*54fd6939SJiyong Park <0 0 0 3 &gic 0 0 0 171 IRQ_TYPE_LEVEL_HIGH>, 172*54fd6939SJiyong Park <0 0 0 4 &gic 0 0 0 172 IRQ_TYPE_LEVEL_HIGH>; 173*54fd6939SJiyong Park msi-map = <0 &its_pcie 0 0x10000>; 174*54fd6939SJiyong Park iommu-map = <0 &smmu_pcie 0 0x10000>; 175*54fd6939SJiyong Park status = "disabled"; 176*54fd6939SJiyong Park }; 177*54fd6939SJiyong Park 178*54fd6939SJiyong Park ccix_pcie_ctlr: pcie@68000000 { 179*54fd6939SJiyong Park compatible = "arm,n1sdp-pcie"; 180*54fd6939SJiyong Park device_type = "pci"; 181*54fd6939SJiyong Park reg = <0 0x68000000 0 0x1200000>; 182*54fd6939SJiyong Park bus-range = <0 17>; 183*54fd6939SJiyong Park linux,pci-domain = <1>; 184*54fd6939SJiyong Park #address-cells = <3>; 185*54fd6939SJiyong Park #size-cells = <2>; 186*54fd6939SJiyong Park dma-coherent; 187*54fd6939SJiyong Park ranges = <0x01000000 0x00 0x00000000 0x00 0x6d200000 0x00 0x00010000>, 188*54fd6939SJiyong Park <0x02000000 0x00 0x69200000 0x00 0x69200000 0x00 0x04000000>, 189*54fd6939SJiyong Park <0x42000000 0x29 0x00000000 0x29 0x00000000 0x20 0x00000000>; 190*54fd6939SJiyong Park #interrupt-cells = <1>; 191*54fd6939SJiyong Park interrupt-map-mask = <0 0 0 7>; 192*54fd6939SJiyong Park interrupt-map = <0 0 0 1 &gic 0 0 0 201 IRQ_TYPE_LEVEL_HIGH>, 193*54fd6939SJiyong Park <0 0 0 2 &gic 0 0 0 202 IRQ_TYPE_LEVEL_HIGH>, 194*54fd6939SJiyong Park <0 0 0 3 &gic 0 0 0 203 IRQ_TYPE_LEVEL_HIGH>, 195*54fd6939SJiyong Park <0 0 0 4 &gic 0 0 0 204 IRQ_TYPE_LEVEL_HIGH>; 196*54fd6939SJiyong Park msi-map = <0 &its_ccix 0 0x10000>; 197*54fd6939SJiyong Park iommu-map = <0 &smmu_ccix 0 0x10000>; 198*54fd6939SJiyong Park status = "disabled"; 199*54fd6939SJiyong Park }; 200*54fd6939SJiyong Park 201*54fd6939SJiyong Park soc_uart0: serial@2a400000 { 202*54fd6939SJiyong Park compatible = "arm,pl011", "arm,primecell"; 203*54fd6939SJiyong Park reg = <0x0 0x2a400000 0x0 0x1000>; 204*54fd6939SJiyong Park interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 205*54fd6939SJiyong Park clocks = <&soc_uartclk>, <&soc_refclk100mhz>; 206*54fd6939SJiyong Park clock-names = "uartclk", "apb_pclk"; 207*54fd6939SJiyong Park status = "disabled"; 208*54fd6939SJiyong Park }; 209*54fd6939SJiyong Park }; 210*54fd6939SJiyong Park}; 211