1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * dts file for Hisilicon Hi6220 SoC 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2015, Hisilicon Ltd. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 8*4882a593Smuzhiyun#include <dt-bindings/clock/hi6220-clock.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun compatible = "hisilicon,hi6220"; 12*4882a593Smuzhiyun interrupt-parent = <&gic>; 13*4882a593Smuzhiyun #address-cells = <2>; 14*4882a593Smuzhiyun #size-cells = <2>; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun psci { 17*4882a593Smuzhiyun compatible = "arm,psci-0.2"; 18*4882a593Smuzhiyun method = "smc"; 19*4882a593Smuzhiyun }; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun cpus { 22*4882a593Smuzhiyun #address-cells = <2>; 23*4882a593Smuzhiyun #size-cells = <0>; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun cpu-map { 26*4882a593Smuzhiyun cluster0 { 27*4882a593Smuzhiyun core0 { 28*4882a593Smuzhiyun cpu = <&cpu0>; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun core1 { 31*4882a593Smuzhiyun cpu = <&cpu1>; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun core2 { 34*4882a593Smuzhiyun cpu = <&cpu2>; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun core3 { 37*4882a593Smuzhiyun cpu = <&cpu3>; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun cluster1 { 41*4882a593Smuzhiyun core0 { 42*4882a593Smuzhiyun cpu = <&cpu4>; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun core1 { 45*4882a593Smuzhiyun cpu = <&cpu5>; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun core2 { 48*4882a593Smuzhiyun cpu = <&cpu6>; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun core3 { 51*4882a593Smuzhiyun cpu = <&cpu7>; 52*4882a593Smuzhiyun }; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun }; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun cpu0: cpu@0 { 57*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 58*4882a593Smuzhiyun device_type = "cpu"; 59*4882a593Smuzhiyun reg = <0x0 0x0>; 60*4882a593Smuzhiyun enable-method = "psci"; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun cpu1: cpu@1 { 64*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 65*4882a593Smuzhiyun device_type = "cpu"; 66*4882a593Smuzhiyun reg = <0x0 0x1>; 67*4882a593Smuzhiyun enable-method = "psci"; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun cpu2: cpu@2 { 71*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 72*4882a593Smuzhiyun device_type = "cpu"; 73*4882a593Smuzhiyun reg = <0x0 0x2>; 74*4882a593Smuzhiyun enable-method = "psci"; 75*4882a593Smuzhiyun }; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun cpu3: cpu@3 { 78*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 79*4882a593Smuzhiyun device_type = "cpu"; 80*4882a593Smuzhiyun reg = <0x0 0x3>; 81*4882a593Smuzhiyun enable-method = "psci"; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun cpu4: cpu@100 { 85*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 86*4882a593Smuzhiyun device_type = "cpu"; 87*4882a593Smuzhiyun reg = <0x0 0x100>; 88*4882a593Smuzhiyun enable-method = "psci"; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun cpu5: cpu@101 { 92*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 93*4882a593Smuzhiyun device_type = "cpu"; 94*4882a593Smuzhiyun reg = <0x0 0x101>; 95*4882a593Smuzhiyun enable-method = "psci"; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun cpu6: cpu@102 { 99*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 100*4882a593Smuzhiyun device_type = "cpu"; 101*4882a593Smuzhiyun reg = <0x0 0x102>; 102*4882a593Smuzhiyun enable-method = "psci"; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun cpu7: cpu@103 { 106*4882a593Smuzhiyun compatible = "arm,cortex-a53", "arm,armv8"; 107*4882a593Smuzhiyun device_type = "cpu"; 108*4882a593Smuzhiyun reg = <0x0 0x103>; 109*4882a593Smuzhiyun enable-method = "psci"; 110*4882a593Smuzhiyun }; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun gic: interrupt-controller@f6801000 { 114*4882a593Smuzhiyun compatible = "arm,gic-400"; 115*4882a593Smuzhiyun reg = <0x0 0xf6801000 0 0x1000>, /* GICD */ 116*4882a593Smuzhiyun <0x0 0xf6802000 0 0x2000>, /* GICC */ 117*4882a593Smuzhiyun <0x0 0xf6804000 0 0x2000>, /* GICH */ 118*4882a593Smuzhiyun <0x0 0xf6806000 0 0x2000>; /* GICV */ 119*4882a593Smuzhiyun #address-cells = <0>; 120*4882a593Smuzhiyun #interrupt-cells = <3>; 121*4882a593Smuzhiyun interrupt-controller; 122*4882a593Smuzhiyun interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun timer { 126*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 127*4882a593Smuzhiyun interrupt-parent = <&gic>; 128*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 129*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 130*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 131*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun soc { 135*4882a593Smuzhiyun compatible = "simple-bus"; 136*4882a593Smuzhiyun #address-cells = <2>; 137*4882a593Smuzhiyun #size-cells = <2>; 138*4882a593Smuzhiyun ranges; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun ao_ctrl: ao_ctrl@f7800000 { 141*4882a593Smuzhiyun compatible = "hisilicon,hi6220-aoctrl", "syscon"; 142*4882a593Smuzhiyun reg = <0x0 0xf7800000 0x0 0x2000>; 143*4882a593Smuzhiyun #clock-cells = <1>; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun sys_ctrl: sys_ctrl@f7030000 { 147*4882a593Smuzhiyun compatible = "hisilicon,hi6220-sysctrl", "syscon"; 148*4882a593Smuzhiyun reg = <0x0 0xf7030000 0x0 0x2000>; 149*4882a593Smuzhiyun #clock-cells = <1>; 150*4882a593Smuzhiyun #reset-cells = <1>; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun media_ctrl: media_ctrl@f4410000 { 154*4882a593Smuzhiyun compatible = "hisilicon,hi6220-mediactrl", "syscon"; 155*4882a593Smuzhiyun reg = <0x0 0xf4410000 0x0 0x1000>; 156*4882a593Smuzhiyun #clock-cells = <1>; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun pm_ctrl: pm_ctrl@f7032000 { 160*4882a593Smuzhiyun compatible = "hisilicon,hi6220-pmctrl", "syscon"; 161*4882a593Smuzhiyun reg = <0x0 0xf7032000 0x0 0x1000>; 162*4882a593Smuzhiyun #clock-cells = <1>; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun uart0: uart@f8015000 { /* console */ 166*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 167*4882a593Smuzhiyun reg = <0x0 0xf8015000 0x0 0x1000>; 168*4882a593Smuzhiyun interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 169*4882a593Smuzhiyun clock = <19200000>; 170*4882a593Smuzhiyun clocks = <&ao_ctrl HI6220_UART0_PCLK>, 171*4882a593Smuzhiyun <&ao_ctrl HI6220_UART0_PCLK>; 172*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun uart1: uart@f7111000 { 176*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 177*4882a593Smuzhiyun reg = <0x0 0xf7111000 0x0 0x1000>; 178*4882a593Smuzhiyun interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 179*4882a593Smuzhiyun clock = <19200000>; 180*4882a593Smuzhiyun clocks = <&sys_ctrl HI6220_UART1_PCLK>, 181*4882a593Smuzhiyun <&sys_ctrl HI6220_UART1_PCLK>; 182*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 183*4882a593Smuzhiyun status = "disabled"; 184*4882a593Smuzhiyun }; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun uart2: uart@f7112000 { 187*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 188*4882a593Smuzhiyun reg = <0x0 0xf7112000 0x0 0x1000>; 189*4882a593Smuzhiyun interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 190*4882a593Smuzhiyun clock = <19200000>; 191*4882a593Smuzhiyun clocks = <&sys_ctrl HI6220_UART2_PCLK>, 192*4882a593Smuzhiyun <&sys_ctrl HI6220_UART2_PCLK>; 193*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 194*4882a593Smuzhiyun status = "disabled"; 195*4882a593Smuzhiyun }; 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun uart3: uart@f7113000 { 198*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 199*4882a593Smuzhiyun reg = <0x0 0xf7113000 0x0 0x1000>; 200*4882a593Smuzhiyun interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 201*4882a593Smuzhiyun clock = <19200000>; 202*4882a593Smuzhiyun clocks = <&sys_ctrl HI6220_UART3_PCLK>, 203*4882a593Smuzhiyun <&sys_ctrl HI6220_UART3_PCLK>; 204*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun uart4: uart@f7114000 { 208*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 209*4882a593Smuzhiyun reg = <0x0 0xf7114000 0x0 0x1000>; 210*4882a593Smuzhiyun interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 211*4882a593Smuzhiyun clock = <19200000>; 212*4882a593Smuzhiyun clocks = <&sys_ctrl HI6220_UART4_PCLK>, 213*4882a593Smuzhiyun <&sys_ctrl HI6220_UART4_PCLK>; 214*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 215*4882a593Smuzhiyun status = "disabled"; 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun }; 218*4882a593Smuzhiyun}; 219