1*aa8d3e74SKefeng Wang/** 2*aa8d3e74SKefeng Wang * dts file for Hisilicon D03 Development Board 3*aa8d3e74SKefeng Wang * 4*aa8d3e74SKefeng Wang * Copyright (C) 2016 Hisilicon Ltd. 5*aa8d3e74SKefeng Wang * 6*aa8d3e74SKefeng Wang * This program is free software; you can redistribute it and/or modify 7*aa8d3e74SKefeng Wang * it under the terms of the GNU General Public License version 2 as 8*aa8d3e74SKefeng Wang * publishhed by the Free Software Foundation. 9*aa8d3e74SKefeng Wang * 10*aa8d3e74SKefeng Wang */ 11*aa8d3e74SKefeng Wang 12*aa8d3e74SKefeng Wang#include <dt-bindings/interrupt-controller/arm-gic.h> 13*aa8d3e74SKefeng Wang 14*aa8d3e74SKefeng Wang/ { 15*aa8d3e74SKefeng Wang compatible = "hisilicon,hip06-d03"; 16*aa8d3e74SKefeng Wang interrupt-parent = <&gic>; 17*aa8d3e74SKefeng Wang #address-cells = <2>; 18*aa8d3e74SKefeng Wang #size-cells = <2>; 19*aa8d3e74SKefeng Wang 20*aa8d3e74SKefeng Wang psci { 21*aa8d3e74SKefeng Wang compatible = "arm,psci-0.2"; 22*aa8d3e74SKefeng Wang method = "smc"; 23*aa8d3e74SKefeng Wang }; 24*aa8d3e74SKefeng Wang 25*aa8d3e74SKefeng Wang cpus { 26*aa8d3e74SKefeng Wang #address-cells = <1>; 27*aa8d3e74SKefeng Wang #size-cells = <0>; 28*aa8d3e74SKefeng Wang 29*aa8d3e74SKefeng Wang cpu-map { 30*aa8d3e74SKefeng Wang cluster0 { 31*aa8d3e74SKefeng Wang core0 { 32*aa8d3e74SKefeng Wang cpu = <&cpu0>; 33*aa8d3e74SKefeng Wang }; 34*aa8d3e74SKefeng Wang core1 { 35*aa8d3e74SKefeng Wang cpu = <&cpu1>; 36*aa8d3e74SKefeng Wang }; 37*aa8d3e74SKefeng Wang core2 { 38*aa8d3e74SKefeng Wang cpu = <&cpu2>; 39*aa8d3e74SKefeng Wang }; 40*aa8d3e74SKefeng Wang core3 { 41*aa8d3e74SKefeng Wang cpu = <&cpu3>; 42*aa8d3e74SKefeng Wang }; 43*aa8d3e74SKefeng Wang }; 44*aa8d3e74SKefeng Wang cluster1 { 45*aa8d3e74SKefeng Wang core0 { 46*aa8d3e74SKefeng Wang cpu = <&cpu4>; 47*aa8d3e74SKefeng Wang }; 48*aa8d3e74SKefeng Wang core1 { 49*aa8d3e74SKefeng Wang cpu = <&cpu5>; 50*aa8d3e74SKefeng Wang }; 51*aa8d3e74SKefeng Wang core2 { 52*aa8d3e74SKefeng Wang cpu = <&cpu6>; 53*aa8d3e74SKefeng Wang }; 54*aa8d3e74SKefeng Wang core3 { 55*aa8d3e74SKefeng Wang cpu = <&cpu7>; 56*aa8d3e74SKefeng Wang }; 57*aa8d3e74SKefeng Wang }; 58*aa8d3e74SKefeng Wang cluster2 { 59*aa8d3e74SKefeng Wang core0 { 60*aa8d3e74SKefeng Wang cpu = <&cpu8>; 61*aa8d3e74SKefeng Wang }; 62*aa8d3e74SKefeng Wang core1 { 63*aa8d3e74SKefeng Wang cpu = <&cpu9>; 64*aa8d3e74SKefeng Wang }; 65*aa8d3e74SKefeng Wang core2 { 66*aa8d3e74SKefeng Wang cpu = <&cpu10>; 67*aa8d3e74SKefeng Wang }; 68*aa8d3e74SKefeng Wang core3 { 69*aa8d3e74SKefeng Wang cpu = <&cpu11>; 70*aa8d3e74SKefeng Wang }; 71*aa8d3e74SKefeng Wang }; 72*aa8d3e74SKefeng Wang cluster3 { 73*aa8d3e74SKefeng Wang core0 { 74*aa8d3e74SKefeng Wang cpu = <&cpu12>; 75*aa8d3e74SKefeng Wang }; 76*aa8d3e74SKefeng Wang core1 { 77*aa8d3e74SKefeng Wang cpu = <&cpu13>; 78*aa8d3e74SKefeng Wang }; 79*aa8d3e74SKefeng Wang core2 { 80*aa8d3e74SKefeng Wang cpu = <&cpu14>; 81*aa8d3e74SKefeng Wang }; 82*aa8d3e74SKefeng Wang core3 { 83*aa8d3e74SKefeng Wang cpu = <&cpu15>; 84*aa8d3e74SKefeng Wang }; 85*aa8d3e74SKefeng Wang }; 86*aa8d3e74SKefeng Wang }; 87*aa8d3e74SKefeng Wang 88*aa8d3e74SKefeng Wang cpu0: cpu@10000 { 89*aa8d3e74SKefeng Wang device_type = "cpu"; 90*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 91*aa8d3e74SKefeng Wang reg = <0x10000>; 92*aa8d3e74SKefeng Wang enable-method = "psci"; 93*aa8d3e74SKefeng Wang next-level-cache = <&cluster0_l2>; 94*aa8d3e74SKefeng Wang }; 95*aa8d3e74SKefeng Wang 96*aa8d3e74SKefeng Wang cpu1: cpu@10001 { 97*aa8d3e74SKefeng Wang device_type = "cpu"; 98*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 99*aa8d3e74SKefeng Wang reg = <0x10001>; 100*aa8d3e74SKefeng Wang enable-method = "psci"; 101*aa8d3e74SKefeng Wang next-level-cache = <&cluster0_l2>; 102*aa8d3e74SKefeng Wang }; 103*aa8d3e74SKefeng Wang 104*aa8d3e74SKefeng Wang cpu2: cpu@10002 { 105*aa8d3e74SKefeng Wang device_type = "cpu"; 106*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 107*aa8d3e74SKefeng Wang reg = <0x10002>; 108*aa8d3e74SKefeng Wang enable-method = "psci"; 109*aa8d3e74SKefeng Wang next-level-cache = <&cluster0_l2>; 110*aa8d3e74SKefeng Wang }; 111*aa8d3e74SKefeng Wang 112*aa8d3e74SKefeng Wang cpu3: cpu@10003 { 113*aa8d3e74SKefeng Wang device_type = "cpu"; 114*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 115*aa8d3e74SKefeng Wang reg = <0x10003>; 116*aa8d3e74SKefeng Wang enable-method = "psci"; 117*aa8d3e74SKefeng Wang next-level-cache = <&cluster0_l2>; 118*aa8d3e74SKefeng Wang }; 119*aa8d3e74SKefeng Wang 120*aa8d3e74SKefeng Wang cpu4: cpu@10100 { 121*aa8d3e74SKefeng Wang device_type = "cpu"; 122*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 123*aa8d3e74SKefeng Wang reg = <0x10100>; 124*aa8d3e74SKefeng Wang enable-method = "psci"; 125*aa8d3e74SKefeng Wang next-level-cache = <&cluster1_l2>; 126*aa8d3e74SKefeng Wang }; 127*aa8d3e74SKefeng Wang 128*aa8d3e74SKefeng Wang cpu5: cpu@10101 { 129*aa8d3e74SKefeng Wang device_type = "cpu"; 130*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 131*aa8d3e74SKefeng Wang reg = <0x10101>; 132*aa8d3e74SKefeng Wang enable-method = "psci"; 133*aa8d3e74SKefeng Wang next-level-cache = <&cluster1_l2>; 134*aa8d3e74SKefeng Wang }; 135*aa8d3e74SKefeng Wang 136*aa8d3e74SKefeng Wang cpu6: cpu@10102 { 137*aa8d3e74SKefeng Wang device_type = "cpu"; 138*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 139*aa8d3e74SKefeng Wang reg = <0x10102>; 140*aa8d3e74SKefeng Wang enable-method = "psci"; 141*aa8d3e74SKefeng Wang next-level-cache = <&cluster1_l2>; 142*aa8d3e74SKefeng Wang }; 143*aa8d3e74SKefeng Wang 144*aa8d3e74SKefeng Wang cpu7: cpu@10103 { 145*aa8d3e74SKefeng Wang device_type = "cpu"; 146*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 147*aa8d3e74SKefeng Wang reg = <0x10103>; 148*aa8d3e74SKefeng Wang enable-method = "psci"; 149*aa8d3e74SKefeng Wang next-level-cache = <&cluster1_l2>; 150*aa8d3e74SKefeng Wang }; 151*aa8d3e74SKefeng Wang 152*aa8d3e74SKefeng Wang cpu8: cpu@10200 { 153*aa8d3e74SKefeng Wang device_type = "cpu"; 154*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 155*aa8d3e74SKefeng Wang reg = <0x10200>; 156*aa8d3e74SKefeng Wang enable-method = "psci"; 157*aa8d3e74SKefeng Wang next-level-cache = <&cluster2_l2>; 158*aa8d3e74SKefeng Wang }; 159*aa8d3e74SKefeng Wang 160*aa8d3e74SKefeng Wang cpu9: cpu@10201 { 161*aa8d3e74SKefeng Wang device_type = "cpu"; 162*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 163*aa8d3e74SKefeng Wang reg = <0x10201>; 164*aa8d3e74SKefeng Wang enable-method = "psci"; 165*aa8d3e74SKefeng Wang next-level-cache = <&cluster2_l2>; 166*aa8d3e74SKefeng Wang }; 167*aa8d3e74SKefeng Wang 168*aa8d3e74SKefeng Wang cpu10: cpu@10202 { 169*aa8d3e74SKefeng Wang device_type = "cpu"; 170*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 171*aa8d3e74SKefeng Wang reg = <0x10202>; 172*aa8d3e74SKefeng Wang enable-method = "psci"; 173*aa8d3e74SKefeng Wang next-level-cache = <&cluster2_l2>; 174*aa8d3e74SKefeng Wang }; 175*aa8d3e74SKefeng Wang 176*aa8d3e74SKefeng Wang cpu11: cpu@10203 { 177*aa8d3e74SKefeng Wang device_type = "cpu"; 178*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 179*aa8d3e74SKefeng Wang reg = <0x10203>; 180*aa8d3e74SKefeng Wang enable-method = "psci"; 181*aa8d3e74SKefeng Wang next-level-cache = <&cluster2_l2>; 182*aa8d3e74SKefeng Wang }; 183*aa8d3e74SKefeng Wang 184*aa8d3e74SKefeng Wang cpu12: cpu@10300 { 185*aa8d3e74SKefeng Wang device_type = "cpu"; 186*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 187*aa8d3e74SKefeng Wang reg = <0x10300>; 188*aa8d3e74SKefeng Wang enable-method = "psci"; 189*aa8d3e74SKefeng Wang next-level-cache = <&cluster3_l2>; 190*aa8d3e74SKefeng Wang }; 191*aa8d3e74SKefeng Wang 192*aa8d3e74SKefeng Wang cpu13: cpu@10301 { 193*aa8d3e74SKefeng Wang device_type = "cpu"; 194*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 195*aa8d3e74SKefeng Wang reg = <0x10301>; 196*aa8d3e74SKefeng Wang enable-method = "psci"; 197*aa8d3e74SKefeng Wang next-level-cache = <&cluster3_l2>; 198*aa8d3e74SKefeng Wang }; 199*aa8d3e74SKefeng Wang 200*aa8d3e74SKefeng Wang cpu14: cpu@10302 { 201*aa8d3e74SKefeng Wang device_type = "cpu"; 202*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 203*aa8d3e74SKefeng Wang reg = <0x10302>; 204*aa8d3e74SKefeng Wang enable-method = "psci"; 205*aa8d3e74SKefeng Wang next-level-cache = <&cluster3_l2>; 206*aa8d3e74SKefeng Wang }; 207*aa8d3e74SKefeng Wang 208*aa8d3e74SKefeng Wang cpu15: cpu@10303 { 209*aa8d3e74SKefeng Wang device_type = "cpu"; 210*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57", "arm,armv8"; 211*aa8d3e74SKefeng Wang reg = <0x10303>; 212*aa8d3e74SKefeng Wang enable-method = "psci"; 213*aa8d3e74SKefeng Wang next-level-cache = <&cluster3_l2>; 214*aa8d3e74SKefeng Wang }; 215*aa8d3e74SKefeng Wang 216*aa8d3e74SKefeng Wang cluster0_l2: l2-cache0 { 217*aa8d3e74SKefeng Wang compatible = "cache"; 218*aa8d3e74SKefeng Wang }; 219*aa8d3e74SKefeng Wang 220*aa8d3e74SKefeng Wang cluster1_l2: l2-cache1 { 221*aa8d3e74SKefeng Wang compatible = "cache"; 222*aa8d3e74SKefeng Wang }; 223*aa8d3e74SKefeng Wang 224*aa8d3e74SKefeng Wang cluster2_l2: l2-cache2 { 225*aa8d3e74SKefeng Wang compatible = "cache"; 226*aa8d3e74SKefeng Wang }; 227*aa8d3e74SKefeng Wang 228*aa8d3e74SKefeng Wang cluster3_l2: l2-cache3 { 229*aa8d3e74SKefeng Wang compatible = "cache"; 230*aa8d3e74SKefeng Wang }; 231*aa8d3e74SKefeng Wang }; 232*aa8d3e74SKefeng Wang 233*aa8d3e74SKefeng Wang gic: interrupt-controller@4d000000 { 234*aa8d3e74SKefeng Wang compatible = "arm,gic-v3"; 235*aa8d3e74SKefeng Wang #interrupt-cells = <3>; 236*aa8d3e74SKefeng Wang #address-cells = <2>; 237*aa8d3e74SKefeng Wang #size-cells = <2>; 238*aa8d3e74SKefeng Wang ranges; 239*aa8d3e74SKefeng Wang interrupt-controller; 240*aa8d3e74SKefeng Wang #redistributor-regions = <1>; 241*aa8d3e74SKefeng Wang redistributor-stride = <0x0 0x30000>; 242*aa8d3e74SKefeng Wang reg = <0x0 0x4d000000 0 0x10000>, /* GICD */ 243*aa8d3e74SKefeng Wang <0x0 0x4d100000 0 0x300000>, /* GICR */ 244*aa8d3e74SKefeng Wang <0x0 0xfe000000 0 0x10000>, /* GICC */ 245*aa8d3e74SKefeng Wang <0x0 0xfe010000 0 0x10000>, /* GICH */ 246*aa8d3e74SKefeng Wang <0x0 0xfe020000 0 0x10000>; /* GICV */ 247*aa8d3e74SKefeng Wang interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 248*aa8d3e74SKefeng Wang 249*aa8d3e74SKefeng Wang its_dsa: interrupt-controller@c6000000 { 250*aa8d3e74SKefeng Wang compatible = "arm,gic-v3-its"; 251*aa8d3e74SKefeng Wang msi-controller; 252*aa8d3e74SKefeng Wang #msi-cells = <1>; 253*aa8d3e74SKefeng Wang reg = <0x0 0xc6000000 0x0 0x40000>; 254*aa8d3e74SKefeng Wang }; 255*aa8d3e74SKefeng Wang }; 256*aa8d3e74SKefeng Wang 257*aa8d3e74SKefeng Wang timer { 258*aa8d3e74SKefeng Wang compatible = "arm,armv8-timer"; 259*aa8d3e74SKefeng Wang interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 260*aa8d3e74SKefeng Wang <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 261*aa8d3e74SKefeng Wang <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 262*aa8d3e74SKefeng Wang <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 263*aa8d3e74SKefeng Wang }; 264*aa8d3e74SKefeng Wang 265*aa8d3e74SKefeng Wang pmu { 266*aa8d3e74SKefeng Wang compatible = "arm,cortex-a57-pmu"; 267*aa8d3e74SKefeng Wang interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 268*aa8d3e74SKefeng Wang }; 269*aa8d3e74SKefeng Wang 270*aa8d3e74SKefeng Wang mbigen_pcie@a0080000 { 271*aa8d3e74SKefeng Wang compatible = "hisilicon,mbigen-v2"; 272*aa8d3e74SKefeng Wang reg = <0x0 0xa0080000 0x0 0x10000>; 273*aa8d3e74SKefeng Wang 274*aa8d3e74SKefeng Wang mbigen_usb: intc_usb { 275*aa8d3e74SKefeng Wang msi-parent = <&its_dsa 0x40080>; 276*aa8d3e74SKefeng Wang interrupt-controller; 277*aa8d3e74SKefeng Wang #interrupt-cells = <2>; 278*aa8d3e74SKefeng Wang num-pins = <2>; 279*aa8d3e74SKefeng Wang }; 280*aa8d3e74SKefeng Wang }; 281*aa8d3e74SKefeng Wang 282*aa8d3e74SKefeng Wang soc { 283*aa8d3e74SKefeng Wang compatible = "simple-bus"; 284*aa8d3e74SKefeng Wang #address-cells = <2>; 285*aa8d3e74SKefeng Wang #size-cells = <2>; 286*aa8d3e74SKefeng Wang ranges; 287*aa8d3e74SKefeng Wang 288*aa8d3e74SKefeng Wang usb_ohci: ohci@a7030000 { 289*aa8d3e74SKefeng Wang compatible = "generic-ohci"; 290*aa8d3e74SKefeng Wang reg = <0x0 0xa7030000 0x0 0x10000>; 291*aa8d3e74SKefeng Wang interrupt-parent = <&mbigen_usb>; 292*aa8d3e74SKefeng Wang interrupts = <64 4>; 293*aa8d3e74SKefeng Wang dma-coherent; 294*aa8d3e74SKefeng Wang status = "disabled"; 295*aa8d3e74SKefeng Wang }; 296*aa8d3e74SKefeng Wang 297*aa8d3e74SKefeng Wang usb_ehci: ehci@a7020000 { 298*aa8d3e74SKefeng Wang compatible = "generic-ehci"; 299*aa8d3e74SKefeng Wang reg = <0x0 0xa7020000 0x0 0x10000>; 300*aa8d3e74SKefeng Wang interrupt-parent = <&mbigen_usb>; 301*aa8d3e74SKefeng Wang interrupts = <65 4>; 302*aa8d3e74SKefeng Wang dma-coherent; 303*aa8d3e74SKefeng Wang status = "disabled"; 304*aa8d3e74SKefeng Wang }; 305*aa8d3e74SKefeng Wang }; 306*aa8d3e74SKefeng Wang 307*aa8d3e74SKefeng Wang}; 308