1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Actions Semi S500 SoC 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2016-2017 Andreas Färber 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 9*4882a593Smuzhiyun#include <dt-bindings/power/owl-s500-powergate.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun/ { 12*4882a593Smuzhiyun compatible = "actions,s500"; 13*4882a593Smuzhiyun interrupt-parent = <&gic>; 14*4882a593Smuzhiyun #address-cells = <1>; 15*4882a593Smuzhiyun #size-cells = <1>; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun aliases { 18*4882a593Smuzhiyun }; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun chosen { 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun cpus { 24*4882a593Smuzhiyun #address-cells = <1>; 25*4882a593Smuzhiyun #size-cells = <0>; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun cpu0: cpu@0 { 28*4882a593Smuzhiyun device_type = "cpu"; 29*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 30*4882a593Smuzhiyun reg = <0x0>; 31*4882a593Smuzhiyun enable-method = "actions,s500-smp"; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun cpu1: cpu@1 { 35*4882a593Smuzhiyun device_type = "cpu"; 36*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 37*4882a593Smuzhiyun reg = <0x1>; 38*4882a593Smuzhiyun enable-method = "actions,s500-smp"; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun cpu2: cpu@2 { 42*4882a593Smuzhiyun device_type = "cpu"; 43*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 44*4882a593Smuzhiyun reg = <0x2>; 45*4882a593Smuzhiyun enable-method = "actions,s500-smp"; 46*4882a593Smuzhiyun power-domains = <&sps S500_PD_CPU2>; 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun cpu3: cpu@3 { 50*4882a593Smuzhiyun device_type = "cpu"; 51*4882a593Smuzhiyun compatible = "arm,cortex-a9"; 52*4882a593Smuzhiyun reg = <0x3>; 53*4882a593Smuzhiyun enable-method = "actions,s500-smp"; 54*4882a593Smuzhiyun power-domains = <&sps S500_PD_CPU3>; 55*4882a593Smuzhiyun }; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun arm-pmu { 59*4882a593Smuzhiyun compatible = "arm,cortex-a9-pmu"; 60*4882a593Smuzhiyun interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 61*4882a593Smuzhiyun <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 62*4882a593Smuzhiyun <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 63*4882a593Smuzhiyun <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 64*4882a593Smuzhiyun interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun hosc: hosc { 68*4882a593Smuzhiyun compatible = "fixed-clock"; 69*4882a593Smuzhiyun clock-frequency = <24000000>; 70*4882a593Smuzhiyun #clock-cells = <0>; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun soc { 74*4882a593Smuzhiyun compatible = "simple-bus"; 75*4882a593Smuzhiyun #address-cells = <1>; 76*4882a593Smuzhiyun #size-cells = <1>; 77*4882a593Smuzhiyun ranges; 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun scu: scu@b0020000 { 80*4882a593Smuzhiyun compatible = "arm,cortex-a9-scu"; 81*4882a593Smuzhiyun reg = <0xb0020000 0x100>; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun global_timer: timer@b0020200 { 85*4882a593Smuzhiyun compatible = "arm,cortex-a9-global-timer"; 86*4882a593Smuzhiyun reg = <0xb0020200 0x100>; 87*4882a593Smuzhiyun interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 88*4882a593Smuzhiyun status = "disabled"; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun twd_timer: timer@b0020600 { 92*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-timer"; 93*4882a593Smuzhiyun reg = <0xb0020600 0x20>; 94*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 95*4882a593Smuzhiyun status = "disabled"; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun twd_wdt: wdt@b0020620 { 99*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-wdt"; 100*4882a593Smuzhiyun reg = <0xb0020620 0xe0>; 101*4882a593Smuzhiyun interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 102*4882a593Smuzhiyun status = "disabled"; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun gic: interrupt-controller@b0021000 { 106*4882a593Smuzhiyun compatible = "arm,cortex-a9-gic"; 107*4882a593Smuzhiyun reg = <0xb0021000 0x1000>, 108*4882a593Smuzhiyun <0xb0020100 0x0100>; 109*4882a593Smuzhiyun interrupt-controller; 110*4882a593Smuzhiyun #interrupt-cells = <3>; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun l2: cache-controller@b0022000 { 114*4882a593Smuzhiyun compatible = "arm,pl310-cache"; 115*4882a593Smuzhiyun reg = <0xb0022000 0x1000>; 116*4882a593Smuzhiyun cache-unified; 117*4882a593Smuzhiyun cache-level = <2>; 118*4882a593Smuzhiyun interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 119*4882a593Smuzhiyun arm,tag-latency = <3 3 2>; 120*4882a593Smuzhiyun arm,data-latency = <5 3 3>; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun uart0: serial@b0120000 { 124*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 125*4882a593Smuzhiyun reg = <0xb0120000 0x2000>; 126*4882a593Smuzhiyun interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 127*4882a593Smuzhiyun status = "disabled"; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun uart1: serial@b0122000 { 131*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 132*4882a593Smuzhiyun reg = <0xb0122000 0x2000>; 133*4882a593Smuzhiyun interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 134*4882a593Smuzhiyun status = "disabled"; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun uart2: serial@b0124000 { 138*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 139*4882a593Smuzhiyun reg = <0xb0124000 0x2000>; 140*4882a593Smuzhiyun interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 141*4882a593Smuzhiyun status = "disabled"; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun uart3: serial@b0126000 { 145*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 146*4882a593Smuzhiyun reg = <0xb0126000 0x2000>; 147*4882a593Smuzhiyun interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 148*4882a593Smuzhiyun status = "disabled"; 149*4882a593Smuzhiyun }; 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun uart4: serial@b0128000 { 152*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 153*4882a593Smuzhiyun reg = <0xb0128000 0x2000>; 154*4882a593Smuzhiyun interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 155*4882a593Smuzhiyun status = "disabled"; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun uart5: serial@b012a000 { 159*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 160*4882a593Smuzhiyun reg = <0xb012a000 0x2000>; 161*4882a593Smuzhiyun interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 162*4882a593Smuzhiyun status = "disabled"; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun uart6: serial@b012c000 { 166*4882a593Smuzhiyun compatible = "actions,s500-uart", "actions,owl-uart"; 167*4882a593Smuzhiyun reg = <0xb012c000 0x2000>; 168*4882a593Smuzhiyun interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 169*4882a593Smuzhiyun status = "disabled"; 170*4882a593Smuzhiyun }; 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun timer: timer@b0168000 { 173*4882a593Smuzhiyun compatible = "actions,s500-timer"; 174*4882a593Smuzhiyun reg = <0xb0168000 0x8000>; 175*4882a593Smuzhiyun interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 176*4882a593Smuzhiyun <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 177*4882a593Smuzhiyun <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 178*4882a593Smuzhiyun <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 179*4882a593Smuzhiyun interrupt-names = "2hz0", "2hz1", "timer0", "timer1"; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun sps: power-controller@b01b0100 { 183*4882a593Smuzhiyun compatible = "actions,s500-sps"; 184*4882a593Smuzhiyun reg = <0xb01b0100 0x100>; 185*4882a593Smuzhiyun #power-domain-cells = <1>; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun}; 189