1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * ARM Ltd. Versatile Express 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * LogicTile Express 20MG 6*4882a593Smuzhiyun * V2F-1XV7 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Cortex-A53 (2 cores) Soft Macrocell Model 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * HBI-0247C 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/dts-v1/; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 16*4882a593Smuzhiyun#include "vexpress-v2m-rs1.dtsi" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun/ { 19*4882a593Smuzhiyun model = "V2F-1XV7 Cortex-A53x2 SMM"; 20*4882a593Smuzhiyun arm,hbi = <0x247>; 21*4882a593Smuzhiyun arm,vexpress,site = <0xf>; 22*4882a593Smuzhiyun compatible = "arm,vexpress,v2f-1xv7,ca53x2", "arm,vexpress,v2f-1xv7", "arm,vexpress"; 23*4882a593Smuzhiyun interrupt-parent = <&gic>; 24*4882a593Smuzhiyun #address-cells = <2>; 25*4882a593Smuzhiyun #size-cells = <2>; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun chosen { 28*4882a593Smuzhiyun stdout-path = "serial0:38400n8"; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun aliases { 32*4882a593Smuzhiyun serial0 = &v2m_serial0; 33*4882a593Smuzhiyun serial1 = &v2m_serial1; 34*4882a593Smuzhiyun serial2 = &v2m_serial2; 35*4882a593Smuzhiyun serial3 = &v2m_serial3; 36*4882a593Smuzhiyun i2c0 = &v2m_i2c_dvi; 37*4882a593Smuzhiyun i2c1 = &v2m_i2c_pcie; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun cpus { 41*4882a593Smuzhiyun #address-cells = <2>; 42*4882a593Smuzhiyun #size-cells = <0>; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun cpu@0 { 45*4882a593Smuzhiyun device_type = "cpu"; 46*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 47*4882a593Smuzhiyun reg = <0 0>; 48*4882a593Smuzhiyun next-level-cache = <&L2_0>; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun cpu@1 { 52*4882a593Smuzhiyun device_type = "cpu"; 53*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 54*4882a593Smuzhiyun reg = <0 1>; 55*4882a593Smuzhiyun next-level-cache = <&L2_0>; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun L2_0: l2-cache0 { 59*4882a593Smuzhiyun compatible = "cache"; 60*4882a593Smuzhiyun }; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun memory@80000000 { 64*4882a593Smuzhiyun device_type = "memory"; 65*4882a593Smuzhiyun reg = <0 0x80000000 0 0x80000000>; /* 2GB @ 2GB */ 66*4882a593Smuzhiyun }; 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun reserved-memory { 69*4882a593Smuzhiyun #address-cells = <2>; 70*4882a593Smuzhiyun #size-cells = <2>; 71*4882a593Smuzhiyun ranges; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun /* Chipselect 2 is physically at 0x18000000 */ 74*4882a593Smuzhiyun vram: vram@18000000 { 75*4882a593Smuzhiyun /* 8 MB of designated video RAM */ 76*4882a593Smuzhiyun compatible = "shared-dma-pool"; 77*4882a593Smuzhiyun reg = <0 0x18000000 0 0x00800000>; 78*4882a593Smuzhiyun no-map; 79*4882a593Smuzhiyun }; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun gic: interrupt-controller@2c001000 { 83*4882a593Smuzhiyun compatible = "arm,gic-400"; 84*4882a593Smuzhiyun #interrupt-cells = <3>; 85*4882a593Smuzhiyun #address-cells = <0>; 86*4882a593Smuzhiyun interrupt-controller; 87*4882a593Smuzhiyun reg = <0 0x2c001000 0 0x1000>, 88*4882a593Smuzhiyun <0 0x2c002000 0 0x2000>, 89*4882a593Smuzhiyun <0 0x2c004000 0 0x2000>, 90*4882a593Smuzhiyun <0 0x2c006000 0 0x2000>; 91*4882a593Smuzhiyun interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun timer { 95*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 96*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 97*4882a593Smuzhiyun <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 98*4882a593Smuzhiyun <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 99*4882a593Smuzhiyun <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun pmu { 103*4882a593Smuzhiyun compatible = "arm,armv8-pmuv3"; 104*4882a593Smuzhiyun interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 105*4882a593Smuzhiyun <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun dcc { 109*4882a593Smuzhiyun compatible = "arm,vexpress,config-bus"; 110*4882a593Smuzhiyun arm,vexpress,config-bridge = <&v2m_sysreg>; 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun smbclk: smclk { 113*4882a593Smuzhiyun /* SMC clock */ 114*4882a593Smuzhiyun compatible = "arm,vexpress-osc"; 115*4882a593Smuzhiyun arm,vexpress-sysreg,func = <1 4>; 116*4882a593Smuzhiyun freq-range = <40000000 40000000>; 117*4882a593Smuzhiyun #clock-cells = <0>; 118*4882a593Smuzhiyun clock-output-names = "smclk"; 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun volt-vio { 122*4882a593Smuzhiyun /* VIO to expansion board above */ 123*4882a593Smuzhiyun compatible = "arm,vexpress-volt"; 124*4882a593Smuzhiyun arm,vexpress-sysreg,func = <2 0>; 125*4882a593Smuzhiyun regulator-name = "VIO_UP"; 126*4882a593Smuzhiyun regulator-min-microvolt = <800000>; 127*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 128*4882a593Smuzhiyun regulator-always-on; 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun volt-12v { 132*4882a593Smuzhiyun /* 12V from power connector J6 */ 133*4882a593Smuzhiyun compatible = "arm,vexpress-volt"; 134*4882a593Smuzhiyun arm,vexpress-sysreg,func = <2 1>; 135*4882a593Smuzhiyun regulator-name = "12"; 136*4882a593Smuzhiyun regulator-always-on; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun temp-fpga { 140*4882a593Smuzhiyun /* FPGA temperature */ 141*4882a593Smuzhiyun compatible = "arm,vexpress-temp"; 142*4882a593Smuzhiyun arm,vexpress-sysreg,func = <4 0>; 143*4882a593Smuzhiyun label = "FPGA"; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun smb: bus@8000000 { 148*4882a593Smuzhiyun compatible = "simple-bus"; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun #address-cells = <2>; 151*4882a593Smuzhiyun #size-cells = <1>; 152*4882a593Smuzhiyun ranges = <0 0 0 0x08000000 0x04000000>, 153*4882a593Smuzhiyun <1 0 0 0x14000000 0x04000000>, 154*4882a593Smuzhiyun <2 0 0 0x18000000 0x04000000>, 155*4882a593Smuzhiyun <3 0 0 0x1c000000 0x04000000>, 156*4882a593Smuzhiyun <4 0 0 0x0c000000 0x04000000>, 157*4882a593Smuzhiyun <5 0 0 0x10000000 0x04000000>; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun #interrupt-cells = <1>; 160*4882a593Smuzhiyun interrupt-map-mask = <0 0 63>; 161*4882a593Smuzhiyun interrupt-map = <0 0 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 162*4882a593Smuzhiyun <0 0 1 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 163*4882a593Smuzhiyun <0 0 2 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 164*4882a593Smuzhiyun <0 0 3 &gic GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 165*4882a593Smuzhiyun <0 0 4 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 166*4882a593Smuzhiyun <0 0 5 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 167*4882a593Smuzhiyun <0 0 6 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 168*4882a593Smuzhiyun <0 0 7 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 169*4882a593Smuzhiyun <0 0 8 &gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 170*4882a593Smuzhiyun <0 0 9 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 171*4882a593Smuzhiyun <0 0 10 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 172*4882a593Smuzhiyun <0 0 11 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 173*4882a593Smuzhiyun <0 0 12 &gic GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 174*4882a593Smuzhiyun <0 0 13 &gic GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 175*4882a593Smuzhiyun <0 0 14 &gic GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 176*4882a593Smuzhiyun <0 0 15 &gic GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 177*4882a593Smuzhiyun <0 0 16 &gic GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 178*4882a593Smuzhiyun <0 0 17 &gic GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 179*4882a593Smuzhiyun <0 0 18 &gic GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 180*4882a593Smuzhiyun <0 0 19 &gic GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 181*4882a593Smuzhiyun <0 0 20 &gic GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 182*4882a593Smuzhiyun <0 0 21 &gic GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 183*4882a593Smuzhiyun <0 0 22 &gic GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 184*4882a593Smuzhiyun <0 0 23 &gic GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 185*4882a593Smuzhiyun <0 0 24 &gic GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 186*4882a593Smuzhiyun <0 0 25 &gic GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, 187*4882a593Smuzhiyun <0 0 26 &gic GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 188*4882a593Smuzhiyun <0 0 27 &gic GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 189*4882a593Smuzhiyun <0 0 28 &gic GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, 190*4882a593Smuzhiyun <0 0 29 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 191*4882a593Smuzhiyun <0 0 30 &gic GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 192*4882a593Smuzhiyun <0 0 31 &gic GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 193*4882a593Smuzhiyun <0 0 32 &gic GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 194*4882a593Smuzhiyun <0 0 33 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 195*4882a593Smuzhiyun <0 0 34 &gic GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 196*4882a593Smuzhiyun <0 0 35 &gic GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 197*4882a593Smuzhiyun <0 0 36 &gic GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 198*4882a593Smuzhiyun <0 0 37 &gic GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 199*4882a593Smuzhiyun <0 0 38 &gic GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 200*4882a593Smuzhiyun <0 0 39 &gic GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 201*4882a593Smuzhiyun <0 0 40 &gic GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 202*4882a593Smuzhiyun <0 0 41 &gic GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 203*4882a593Smuzhiyun <0 0 42 &gic GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun}; 206