1 // SPDX-License-Identifier: GPL-2.0-only
3 * Unisoc SC9863A SoC DTS file
5 * Copyright (C) 2019, Unisoc Inc.
8 #include <dt-bindings/clock/sprd,sc9863a-clk.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include "sharkl3.dtsi"
48 compatible = "arm,cortex-a55";
50 enable-method = "psci";
51 cpu-idle-states = <&CORE_PD>;
56 compatible = "arm,cortex-a55";
58 enable-method = "psci";
59 cpu-idle-states = <&CORE_PD>;
64 compatible = "arm,cortex-a55";
66 enable-method = "psci";
67 cpu-idle-states = <&CORE_PD>;
72 compatible = "arm,cortex-a55";
74 enable-method = "psci";
75 cpu-idle-states = <&CORE_PD>;
80 compatible = "arm,cortex-a55";
82 enable-method = "psci";
83 cpu-idle-states = <&CORE_PD>;
88 compatible = "arm,cortex-a55";
90 enable-method = "psci";
91 cpu-idle-states = <&CORE_PD>;
96 compatible = "arm,cortex-a55";
98 enable-method = "psci";
99 cpu-idle-states = <&CORE_PD>;
104 compatible = "arm,cortex-a55";
106 enable-method = "psci";
107 cpu-idle-states = <&CORE_PD>;
112 entry-method = "psci";
114 compatible = "arm,idle-state";
115 entry-latency-us = <4000>;
116 exit-latency-us = <4000>;
117 min-residency-us = <10000>;
119 arm,psci-suspend-param = <0x00010000>;
124 compatible = "arm,psci-0.2";
129 compatible = "arm,armv8-timer";
130 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */
131 <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */
132 <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */
133 <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
137 compatible = "arm,armv8-pmuv3";
138 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
139 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
140 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
141 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
142 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
143 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
144 <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
145 <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
149 gic: interrupt-controller@14000000 {
150 compatible = "arm,gic-v3";
151 #interrupt-cells = <3>;
152 #address-cells = <2>;
155 redistributor-stride = <0x0 0x20000>; /* 128KB stride */
156 #redistributor-regions = <1>;
157 interrupt-controller;
158 reg = <0x0 0x14000000 0 0x20000>, /* GICD */
159 <0x0 0x14040000 0 0x100000>; /* GICR */
160 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
163 ap_clk: clock-controller@21500000 {
164 compatible = "sprd,sc9863a-ap-clk";
165 reg = <0 0x21500000 0 0x1000>;
166 clocks = <&ext_32k>, <&ext_26m>;
167 clock-names = "ext-32k", "ext-26m";
171 aon_clk: clock-controller@402d0000 {
172 compatible = "sprd,sc9863a-aon-clk";
173 reg = <0 0x402d0000 0 0x1000>;
174 clocks = <&ext_26m>, <&rco_100m>,
175 <&ext_32k>, <&ext_4m>;
176 clock-names = "ext-26m", "rco-100m",
181 mm_clk: clock-controller@60900000 {
182 compatible = "sprd,sc9863a-mm-clk";
183 reg = <0 0x60900000 0 0x1000>;
188 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
189 reg = <0 0x10001000 0 0x1000>;
191 clock-names = "apb_pclk";
195 funnel_soc_out_port: endpoint {
196 remote-endpoint = <&etb_in>;
203 funnel_soc_in_port: endpoint {
205 <&funnel_ca55_out_port>;
212 compatible = "arm,coresight-tmc", "arm,primecell";
213 reg = <0 0x10003000 0 0x1000>;
215 clock-names = "apb_pclk";
221 <&funnel_soc_out_port>;
228 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
229 reg = <0 0x12001000 0 0x1000>;
231 clock-names = "apb_pclk";
235 funnel_little_out_port: endpoint {
243 #address-cells = <1>;
248 funnel_little_in_port0: endpoint {
249 remote-endpoint = <&etm0_out>;
255 funnel_little_in_port1: endpoint {
256 remote-endpoint = <&etm1_out>;
262 funnel_little_in_port2: endpoint {
263 remote-endpoint = <&etm2_out>;
269 funnel_little_in_port3: endpoint {
270 remote-endpoint = <&etm3_out>;
277 compatible = "arm,coresight-tmc", "arm,primecell";
278 reg = <0 0x12002000 0 0x1000>;
280 clock-names = "apb_pclk";
284 etf_little_out: endpoint {
286 <&funnel_ca55_in_port0>;
293 etf_little_in: endpoint {
295 <&funnel_little_out_port>;
302 compatible = "arm,coresight-tmc", "arm,primecell";
303 reg = <0 0x12003000 0 0x1000>;
305 clock-names = "apb_pclk";
309 etf_big_out: endpoint {
311 <&funnel_ca55_in_port1>;
318 etf_big_in: endpoint {
320 <&funnel_big_out_port>;
327 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
328 reg = <0 0x12004000 0 0x1000>;
330 clock-names = "apb_pclk";
334 funnel_ca55_out_port: endpoint {
336 <&funnel_soc_in_port>;
342 #address-cells = <1>;
347 funnel_ca55_in_port0: endpoint {
355 funnel_ca55_in_port1: endpoint {
364 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
365 reg = <0 0x12005000 0 0x1000>;
367 clock-names = "apb_pclk";
371 funnel_big_out_port: endpoint {
379 #address-cells = <1>;
384 funnel_big_in_port0: endpoint {
385 remote-endpoint = <&etm4_out>;
391 funnel_big_in_port1: endpoint {
392 remote-endpoint = <&etm5_out>;
398 funnel_big_in_port2: endpoint {
399 remote-endpoint = <&etm6_out>;
405 funnel_big_in_port3: endpoint {
406 remote-endpoint = <&etm7_out>;
413 compatible = "arm,coresight-etm4x", "arm,primecell";
414 reg = <0 0x13040000 0 0x1000>;
417 clock-names = "apb_pclk";
423 <&funnel_little_in_port0>;
430 compatible = "arm,coresight-etm4x", "arm,primecell";
431 reg = <0 0x13140000 0 0x1000>;
434 clock-names = "apb_pclk";
440 <&funnel_little_in_port1>;
447 compatible = "arm,coresight-etm4x", "arm,primecell";
448 reg = <0 0x13240000 0 0x1000>;
451 clock-names = "apb_pclk";
457 <&funnel_little_in_port2>;
464 compatible = "arm,coresight-etm4x", "arm,primecell";
465 reg = <0 0x13340000 0 0x1000>;
468 clock-names = "apb_pclk";
474 <&funnel_little_in_port3>;
481 compatible = "arm,coresight-etm4x", "arm,primecell";
482 reg = <0 0x13440000 0 0x1000>;
485 clock-names = "apb_pclk";
491 <&funnel_big_in_port0>;
498 compatible = "arm,coresight-etm4x", "arm,primecell";
499 reg = <0 0x13540000 0 0x1000>;
502 clock-names = "apb_pclk";
508 <&funnel_big_in_port1>;
515 compatible = "arm,coresight-etm4x", "arm,primecell";
516 reg = <0 0x13640000 0 0x1000>;
519 clock-names = "apb_pclk";
525 <&funnel_big_in_port2>;
532 compatible = "arm,coresight-etm4x", "arm,primecell";
533 reg = <0 0x13740000 0 0x1000>;
536 clock-names = "apb_pclk";
542 <&funnel_big_in_port3>;
549 compatible = "simple-bus";
550 #address-cells = <2>;
554 sdio0: sdio@20300000 {
555 compatible = "sprd,sdhci-r11";
556 reg = <0 0x20300000 0 0x1000>;
557 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
559 clock-names = "sdio", "enable";
560 clocks = <&aon_clk CLK_SDIO0_2X>,
561 <&apahb_gate CLK_SDIO0_EB>;
562 assigned-clocks = <&aon_clk CLK_SDIO0_2X>;
563 assigned-clock-parents = <&rpll CLK_RPLL_390M>;
570 sdio3: sdio@20600000 {
571 compatible = "sprd,sdhci-r11";
572 reg = <0 0x20600000 0 0x1000>;
573 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
575 clock-names = "sdio", "enable";
576 clocks = <&aon_clk CLK_EMMC_2X>,
577 <&apahb_gate CLK_EMMC_EB>;
578 assigned-clocks = <&aon_clk CLK_EMMC_2X>;
579 assigned-clock-parents = <&rpll CLK_RPLL_390M>;