blob: 3a1c8b2efd697f4a09d548b189954a10f125bd05 [file] [log] [blame]
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +08001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2016 ARM Ltd.
Jagan Teki053d9a12017-05-25 18:15:36 +00003
Andre Przywara273e6412018-07-04 14:16:36 +01004#include <sunxi-h3-h5.dtsi>
Jagan Teki053d9a12017-05-25 18:15:36 +00005
6/ {
7 cpus {
Andre Przywara273e6412018-07-04 14:16:36 +01008 #address-cells = <1>;
9 #size-cells = <0>;
10
11 cpu0: cpu@0 {
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +080012 compatible = "arm,cortex-a53";
Andre Przywara273e6412018-07-04 14:16:36 +010013 device_type = "cpu";
14 reg = <0>;
Jagan Teki053d9a12017-05-25 18:15:36 +000015 enable-method = "psci";
16 };
Andre Przywara273e6412018-07-04 14:16:36 +010017
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +080018 cpu1: cpu@1 {
19 compatible = "arm,cortex-a53";
Andre Przywara273e6412018-07-04 14:16:36 +010020 device_type = "cpu";
21 reg = <1>;
Jagan Teki053d9a12017-05-25 18:15:36 +000022 enable-method = "psci";
23 };
Andre Przywara273e6412018-07-04 14:16:36 +010024
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +080025 cpu2: cpu@2 {
26 compatible = "arm,cortex-a53";
Andre Przywara273e6412018-07-04 14:16:36 +010027 device_type = "cpu";
28 reg = <2>;
Jagan Teki053d9a12017-05-25 18:15:36 +000029 enable-method = "psci";
30 };
Andre Przywara273e6412018-07-04 14:16:36 +010031
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +080032 cpu3: cpu@3 {
33 compatible = "arm,cortex-a53";
Andre Przywara273e6412018-07-04 14:16:36 +010034 device_type = "cpu";
35 reg = <3>;
Jagan Teki053d9a12017-05-25 18:15:36 +000036 enable-method = "psci";
37 };
38 };
39
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +080040 pmu {
41 compatible = "arm,cortex-a53-pmu",
42 "arm,armv8-pmuv3";
43 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
44 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
45 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
46 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
47 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
48 };
49
Jagan Teki053d9a12017-05-25 18:15:36 +000050 psci {
51 compatible = "arm,psci-0.2";
52 method = "smc";
53 };
54
55 timer {
56 compatible = "arm,armv8-timer";
Andre Przywara273e6412018-07-04 14:16:36 +010057 interrupts = <GIC_PPI 13
58 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
59 <GIC_PPI 14
60 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
61 <GIC_PPI 11
62 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
63 <GIC_PPI 10
64 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
Jagan Teki053d9a12017-05-25 18:15:36 +000065 };
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +080066
67 soc {
68 syscon: system-control@1c00000 {
69 compatible = "allwinner,sun50i-h5-system-control";
70 reg = <0x01c00000 0x1000>;
71 #address-cells = <1>;
72 #size-cells = <1>;
73 ranges;
74
75 sram_c1: sram@18000 {
76 compatible = "mmio-sram";
77 reg = <0x00018000 0x1c000>;
78 #address-cells = <1>;
79 #size-cells = <1>;
80 ranges = <0 0x00018000 0x1c000>;
81
82 ve_sram: sram-section@0 {
83 compatible = "allwinner,sun50i-h5-sram-c1",
84 "allwinner,sun4i-a10-sram-c1";
85 reg = <0x000000 0x1c000>;
86 };
87 };
88 };
89
90 video-codec@1c0e000 {
91 compatible = "allwinner,sun50i-h5-video-engine";
92 reg = <0x01c0e000 0x1000>;
93 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
94 <&ccu CLK_DRAM_VE>;
95 clock-names = "ahb", "mod", "ram";
96 resets = <&ccu RST_BUS_VE>;
97 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
98 allwinner,sram = <&ve_sram 1>;
99 };
100
101 crypto: crypto@1c15000 {
102 compatible = "allwinner,sun50i-h5-crypto";
103 reg = <0x01c15000 0x1000>;
104 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
105 clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
106 clock-names = "bus", "mod";
107 resets = <&ccu RST_BUS_CE>;
108 };
109
110 mali: gpu@1e80000 {
111 compatible = "allwinner,sun50i-h5-mali", "arm,mali-450";
112 reg = <0x01e80000 0x30000>;
113 /*
114 * While the datasheet lists an interrupt for the
115 * PMU, the actual silicon does not have the PMU
116 * block. Reads all return zero, and writes are
117 * ignored.
118 */
119 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
120 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
121 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
122 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
123 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
124 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
125 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
126 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
127 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
128 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
129 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
130 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
131 interrupt-names = "gp",
132 "gpmmu",
133 "pp",
134 "pp0",
135 "ppmmu0",
136 "pp1",
137 "ppmmu1",
138 "pp2",
139 "ppmmu2",
140 "pp3",
141 "ppmmu3",
142 "pmu";
143 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
144 clock-names = "bus", "core";
145 resets = <&ccu RST_BUS_GPU>;
146
147 assigned-clocks = <&ccu CLK_GPU>;
148 assigned-clock-rates = <384000000>;
149 };
150
151 ths: thermal-sensor@1c25000 {
152 compatible = "allwinner,sun50i-h5-ths";
153 reg = <0x01c25000 0x400>;
154 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
155 resets = <&ccu RST_BUS_THS>;
156 clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
157 clock-names = "bus", "mod";
158 nvmem-cells = <&ths_calibration>;
159 nvmem-cell-names = "calibration";
160 #thermal-sensor-cells = <1>;
161 };
162 };
163
164 thermal-zones {
165 cpu_thermal: cpu-thermal {
166 polling-delay-passive = <0>;
167 polling-delay = <0>;
168 thermal-sensors = <&ths 0>;
169 };
170
171 gpu_thermal {
172 polling-delay-passive = <0>;
173 polling-delay = <0>;
174 thermal-sensors = <&ths 1>;
175 };
176 };
Jagan Teki053d9a12017-05-25 18:15:36 +0000177};
178
Antony Antonyc5f62e82017-11-21 10:11:52 +0100179&ccu {
180 compatible = "allwinner,sun50i-h5-ccu";
181};
182
Andre Przywara273e6412018-07-04 14:16:36 +0100183&display_clocks {
184 compatible = "allwinner,sun50i-h5-de2-clk";
Jagan Teki053d9a12017-05-25 18:15:36 +0000185};
Antony Antonyc5f62e82017-11-21 10:11:52 +0100186
187&mmc0 {
188 compatible = "allwinner,sun50i-h5-mmc",
189 "allwinner,sun50i-a64-mmc";
190 clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
191 clock-names = "ahb", "mmc";
192};
193
194&mmc1 {
195 compatible = "allwinner,sun50i-h5-mmc",
196 "allwinner,sun50i-a64-mmc";
197 clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
198 clock-names = "ahb", "mmc";
199};
200
201&mmc2 {
202 compatible = "allwinner,sun50i-h5-emmc",
203 "allwinner,sun50i-a64-emmc";
204 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
205 clock-names = "ahb", "mmc";
206};
207
208&pio {
209 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
210 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
Andre Przywara273e6412018-07-04 14:16:36 +0100211 <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
Antony Antonyc5f62e82017-11-21 10:11:52 +0100212 compatible = "allwinner,sun50i-h5-pinctrl";
213};
Chen-Yu Tsai8d7da692020-01-12 23:36:13 +0800214
215&rtc {
216 compatible = "allwinner,sun50i-h5-rtc";
217};
218
219&sid {
220 compatible = "allwinner,sun50i-h5-sid";
221};