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