1*f126890aSEmmanuel Vadot/* 2*f126890aSEmmanuel Vadot * Copyright 2015 Annapurna Labs Ltd. 3*f126890aSEmmanuel Vadot * 4*f126890aSEmmanuel Vadot * This program is free software; you can redistribute it and/or modify it 5*f126890aSEmmanuel Vadot * under the terms and conditions of the GNU General Public License, 6*f126890aSEmmanuel Vadot * version 2, as published by the Free Software Foundation. 7*f126890aSEmmanuel Vadot * 8*f126890aSEmmanuel Vadot * Alternatively, redistribution and use in source and binary forms, with or 9*f126890aSEmmanuel Vadot * without modification, are permitted provided that the following conditions 10*f126890aSEmmanuel Vadot * are met: 11*f126890aSEmmanuel Vadot * 12*f126890aSEmmanuel Vadot * * Redistributions of source code must retain the above copyright notice, 13*f126890aSEmmanuel Vadot * this list of conditions and the following disclaimer. 14*f126890aSEmmanuel Vadot * 15*f126890aSEmmanuel Vadot * * Redistributions in binary form must reproduce the above copyright 16*f126890aSEmmanuel Vadot * notice, this list of conditions and the following disclaimer in 17*f126890aSEmmanuel Vadot * the documentation and/or other materials provided with the 18*f126890aSEmmanuel Vadot * distribution. 19*f126890aSEmmanuel Vadot * 20*f126890aSEmmanuel Vadot * This program is distributed in the hope it will be useful, but WITHOUT 21*f126890aSEmmanuel Vadot * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 22*f126890aSEmmanuel Vadot * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 23*f126890aSEmmanuel Vadot * more details. 24*f126890aSEmmanuel Vadot * 25*f126890aSEmmanuel Vadot */ 26*f126890aSEmmanuel Vadot 27*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 28*f126890aSEmmanuel Vadot 29*f126890aSEmmanuel Vadot/ { 30*f126890aSEmmanuel Vadot #address-cells = <2>; 31*f126890aSEmmanuel Vadot #size-cells = <2>; 32*f126890aSEmmanuel Vadot /* SOC compatibility */ 33*f126890aSEmmanuel Vadot compatible = "al,alpine"; 34*f126890aSEmmanuel Vadot 35*f126890aSEmmanuel Vadot memory { 36*f126890aSEmmanuel Vadot device_type = "memory"; 37*f126890aSEmmanuel Vadot reg = <0 0 0 0>; 38*f126890aSEmmanuel Vadot }; 39*f126890aSEmmanuel Vadot 40*f126890aSEmmanuel Vadot /* CPU Configuration */ 41*f126890aSEmmanuel Vadot cpus { 42*f126890aSEmmanuel Vadot #address-cells = <1>; 43*f126890aSEmmanuel Vadot #size-cells = <0>; 44*f126890aSEmmanuel Vadot enable-method = "al,alpine-smp"; 45*f126890aSEmmanuel Vadot 46*f126890aSEmmanuel Vadot cpu@0 { 47*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15"; 48*f126890aSEmmanuel Vadot device_type = "cpu"; 49*f126890aSEmmanuel Vadot reg = <0>; 50*f126890aSEmmanuel Vadot clock-frequency = <1700000000>; 51*f126890aSEmmanuel Vadot }; 52*f126890aSEmmanuel Vadot 53*f126890aSEmmanuel Vadot cpu@1 { 54*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15"; 55*f126890aSEmmanuel Vadot device_type = "cpu"; 56*f126890aSEmmanuel Vadot reg = <1>; 57*f126890aSEmmanuel Vadot clock-frequency = <1700000000>; 58*f126890aSEmmanuel Vadot }; 59*f126890aSEmmanuel Vadot 60*f126890aSEmmanuel Vadot cpu@2 { 61*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15"; 62*f126890aSEmmanuel Vadot device_type = "cpu"; 63*f126890aSEmmanuel Vadot reg = <2>; 64*f126890aSEmmanuel Vadot clock-frequency = <1700000000>; 65*f126890aSEmmanuel Vadot }; 66*f126890aSEmmanuel Vadot 67*f126890aSEmmanuel Vadot cpu@3 { 68*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15"; 69*f126890aSEmmanuel Vadot device_type = "cpu"; 70*f126890aSEmmanuel Vadot reg = <3>; 71*f126890aSEmmanuel Vadot clock-frequency = <1700000000>; 72*f126890aSEmmanuel Vadot }; 73*f126890aSEmmanuel Vadot }; 74*f126890aSEmmanuel Vadot 75*f126890aSEmmanuel Vadot soc { 76*f126890aSEmmanuel Vadot #address-cells = <2>; 77*f126890aSEmmanuel Vadot #size-cells = <2>; 78*f126890aSEmmanuel Vadot compatible = "simple-bus"; 79*f126890aSEmmanuel Vadot interrupt-parent = <&gic>; 80*f126890aSEmmanuel Vadot ranges; 81*f126890aSEmmanuel Vadot 82*f126890aSEmmanuel Vadot arch-timer { 83*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15-timer", 84*f126890aSEmmanuel Vadot "arm,armv7-timer"; 85*f126890aSEmmanuel Vadot interrupts = 86*f126890aSEmmanuel Vadot <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 87*f126890aSEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 88*f126890aSEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 89*f126890aSEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 90*f126890aSEmmanuel Vadot clock-frequency = <50000000>; 91*f126890aSEmmanuel Vadot }; 92*f126890aSEmmanuel Vadot 93*f126890aSEmmanuel Vadot /* Interrupt Controller */ 94*f126890aSEmmanuel Vadot gic: interrupt-controller@fb001000 { 95*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15-gic"; 96*f126890aSEmmanuel Vadot #interrupt-cells = <3>; 97*f126890aSEmmanuel Vadot #size-cells = <0>; 98*f126890aSEmmanuel Vadot #address-cells = <0>; 99*f126890aSEmmanuel Vadot interrupt-controller; 100*f126890aSEmmanuel Vadot reg = <0x0 0xfb001000 0x0 0x1000>, 101*f126890aSEmmanuel Vadot <0x0 0xfb002000 0x0 0x2000>, 102*f126890aSEmmanuel Vadot <0x0 0xfb004000 0x0 0x2000>, 103*f126890aSEmmanuel Vadot <0x0 0xfb006000 0x0 0x2000>; 104*f126890aSEmmanuel Vadot interrupts = 105*f126890aSEmmanuel Vadot <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 106*f126890aSEmmanuel Vadot }; 107*f126890aSEmmanuel Vadot 108*f126890aSEmmanuel Vadot /* CPU Resume registers */ 109*f126890aSEmmanuel Vadot cpu-resume@fbff5ec0 { 110*f126890aSEmmanuel Vadot compatible = "al,alpine-cpu-resume"; 111*f126890aSEmmanuel Vadot reg = <0x0 0xfbff5ec0 0x0 0x30>; 112*f126890aSEmmanuel Vadot }; 113*f126890aSEmmanuel Vadot 114*f126890aSEmmanuel Vadot /* North Bridge Service Registers */ 115*f126890aSEmmanuel Vadot sysfabric-service@fb070000 { 116*f126890aSEmmanuel Vadot compatible = "al,alpine-sysfabric-service", "syscon"; 117*f126890aSEmmanuel Vadot reg = <0x0 0xfb070000 0x0 0x10000>; 118*f126890aSEmmanuel Vadot }; 119*f126890aSEmmanuel Vadot 120*f126890aSEmmanuel Vadot /* Performance Monitor Unit */ 121*f126890aSEmmanuel Vadot pmu { 122*f126890aSEmmanuel Vadot compatible = "arm,cortex-a15-pmu"; 123*f126890aSEmmanuel Vadot interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 124*f126890aSEmmanuel Vadot <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 125*f126890aSEmmanuel Vadot <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 126*f126890aSEmmanuel Vadot <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 127*f126890aSEmmanuel Vadot }; 128*f126890aSEmmanuel Vadot 129*f126890aSEmmanuel Vadot uart0: serial@fd883000 { 130*f126890aSEmmanuel Vadot compatible = "ns16550a"; 131*f126890aSEmmanuel Vadot reg = <0x0 0xfd883000 0x0 0x1000>; 132*f126890aSEmmanuel Vadot clock-frequency = <375000000>; 133*f126890aSEmmanuel Vadot interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 134*f126890aSEmmanuel Vadot reg-shift = <2>; 135*f126890aSEmmanuel Vadot reg-io-width = <4>; 136*f126890aSEmmanuel Vadot }; 137*f126890aSEmmanuel Vadot 138*f126890aSEmmanuel Vadot uart1: serial@fd884000 { 139*f126890aSEmmanuel Vadot compatible = "ns16550a"; 140*f126890aSEmmanuel Vadot reg = <0x0 0xfd884000 0x0 0x1000>; 141*f126890aSEmmanuel Vadot clock-frequency = <375000000>; 142*f126890aSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 143*f126890aSEmmanuel Vadot reg-shift = <2>; 144*f126890aSEmmanuel Vadot reg-io-width = <4>; 145*f126890aSEmmanuel Vadot }; 146*f126890aSEmmanuel Vadot 147*f126890aSEmmanuel Vadot /* Internal PCIe Controller */ 148*f126890aSEmmanuel Vadot pcie@fbc00000 { 149*f126890aSEmmanuel Vadot compatible = "pci-host-ecam-generic"; 150*f126890aSEmmanuel Vadot device_type = "pci"; 151*f126890aSEmmanuel Vadot #size-cells = <2>; 152*f126890aSEmmanuel Vadot #address-cells = <3>; 153*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 154*f126890aSEmmanuel Vadot reg = <0x0 0xfbc00000 0x0 0x100000>; 155*f126890aSEmmanuel Vadot interrupt-map-mask = <0xf800 0 0 7>; 156*f126890aSEmmanuel Vadot /* Add legacy interrupts for SATA devices only */ 157*f126890aSEmmanuel Vadot interrupt-map = <0x4000 0 0 1 &gic 0 43 4>, 158*f126890aSEmmanuel Vadot <0x4800 0 0 1 &gic 0 44 4>; 159*f126890aSEmmanuel Vadot 160*f126890aSEmmanuel Vadot /* 32 bit non prefetchable memory space */ 161*f126890aSEmmanuel Vadot ranges = <0x02000000 0x0 0xfe000000 0x0 0xfe000000 0x0 0x1000000>; 162*f126890aSEmmanuel Vadot 163*f126890aSEmmanuel Vadot bus-range = <0x00 0x00>; 164*f126890aSEmmanuel Vadot msi-parent = <&msix>; 165*f126890aSEmmanuel Vadot }; 166*f126890aSEmmanuel Vadot 167*f126890aSEmmanuel Vadot msix: msix@fbe00000 { 168*f126890aSEmmanuel Vadot compatible = "al,alpine-msix"; 169*f126890aSEmmanuel Vadot reg = <0x0 0xfbe00000 0x0 0x100000>; 170*f126890aSEmmanuel Vadot msi-controller; 171*f126890aSEmmanuel Vadot al,msi-base-spi = <96>; 172*f126890aSEmmanuel Vadot al,msi-num-spis = <64>; 173*f126890aSEmmanuel Vadot }; 174*f126890aSEmmanuel Vadot }; 175*f126890aSEmmanuel Vadot}; 176