1 // SPDX-License-Identifier: GPL-2.0
3 * Samsung's ExynosAuto v9 SoC device tree source
5 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
9 #include <dt-bindings/clock/samsung,exynosautov9.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 #include <dt-bindings/soc/samsung,exynos-usi.h>
14 compatible = "samsung,exynosautov9";
18 interrupt-parent = <&gic>;
21 pinctrl0 = &pinctrl_alive;
22 pinctrl1 = &pinctrl_aud;
23 pinctrl2 = &pinctrl_fsys0;
24 pinctrl3 = &pinctrl_fsys1;
25 pinctrl4 = &pinctrl_fsys2;
26 pinctrl5 = &pinctrl_peric0;
27 pinctrl6 = &pinctrl_peric1;
31 compatible = "arm,cortex-a76-pmu";
32 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
33 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
34 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
35 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
36 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
37 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
38 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
39 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
40 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
41 <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
82 compatible = "arm,cortex-a76";
84 enable-method = "psci";
89 compatible = "arm,cortex-a76";
91 enable-method = "psci";
96 compatible = "arm,cortex-a76";
98 enable-method = "psci";
103 compatible = "arm,cortex-a76";
105 enable-method = "psci";
110 compatible = "arm,cortex-a76";
112 enable-method = "psci";
117 compatible = "arm,cortex-a76";
119 enable-method = "psci";
124 compatible = "arm,cortex-a76";
126 enable-method = "psci";
131 compatible = "arm,cortex-a76";
133 enable-method = "psci";
138 compatible = "arm,psci-1.0";
140 cpu_suspend = <0xc4000001>;
141 cpu_off = <0x84000002>;
142 cpu_on = <0xc4000003>;
146 compatible = "arm,armv8-timer";
147 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
148 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
149 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
150 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
155 compatible = "fixed-clock";
157 clock-output-names = "oscclk";
162 compatible = "simple-bus";
163 #address-cells = <1>;
165 ranges = <0x0 0x0 0x0 0x20000000>;
168 compatible = "samsung,exynos850-chipid";
169 reg = <0x10000000 0x24>;
172 cmu_peris: clock-controller@10020000 {
173 compatible = "samsung,exynosautov9-cmu-peris";
174 reg = <0x10020000 0x8000>;
178 <&cmu_top DOUT_CLKCMU_PERIS_BUS>;
179 clock-names = "oscclk",
180 "dout_clkcmu_peris_bus";
183 cmu_peric0: clock-controller@10200000 {
184 compatible = "samsung,exynosautov9-cmu-peric0";
185 reg = <0x10200000 0x8000>;
189 <&cmu_top DOUT_CLKCMU_PERIC0_BUS>,
190 <&cmu_top DOUT_CLKCMU_PERIC0_IP>;
191 clock-names = "oscclk",
192 "dout_clkcmu_peric0_bus",
193 "dout_clkcmu_peric0_ip";
196 cmu_peric1: clock-controller@10800000 {
197 compatible = "samsung,exynosautov9-cmu-peric1";
198 reg = <0x10800000 0x8000>;
202 <&cmu_top DOUT_CLKCMU_PERIC1_BUS>,
203 <&cmu_top DOUT_CLKCMU_PERIC1_IP>;
204 clock-names = "oscclk",
205 "dout_clkcmu_peric1_bus",
206 "dout_clkcmu_peric1_ip";
209 cmu_fsys2: clock-controller@17c00000 {
210 compatible = "samsung,exynosautov9-cmu-fsys2";
211 reg = <0x17c00000 0x8000>;
215 <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
216 <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
217 <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
218 clock-names = "oscclk",
219 "dout_clkcmu_fsys2_bus",
220 "dout_fsys2_clkcmu_ufs_embd",
221 "dout_fsys2_clkcmu_ethernet";
224 cmu_core: clock-controller@1b030000 {
225 compatible = "samsung,exynosautov9-cmu-core";
226 reg = <0x1b030000 0x8000>;
230 <&cmu_top DOUT_CLKCMU_CORE_BUS>;
231 clock-names = "oscclk",
232 "dout_clkcmu_core_bus";
235 cmu_busmc: clock-controller@1b200000 {
236 compatible = "samsung,exynosautov9-cmu-busmc";
237 reg = <0x1b200000 0x8000>;
241 <&cmu_top DOUT_CLKCMU_BUSMC_BUS>;
242 clock-names = "oscclk",
243 "dout_clkcmu_busmc_bus";
246 cmu_top: clock-controller@1b240000 {
247 compatible = "samsung,exynosautov9-cmu-top";
248 reg = <0x1b240000 0x8000>;
252 clock-names = "oscclk";
255 gic: interrupt-controller@10101000 {
256 compatible = "arm,gic-400";
257 #interrupt-cells = <3>;
258 #address-cells = <0>;
259 interrupt-controller;
260 reg = <0x10101000 0x1000>,
264 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
265 IRQ_TYPE_LEVEL_HIGH)>;
268 pinctrl_alive: pinctrl@10450000 {
269 compatible = "samsung,exynosautov9-pinctrl";
270 reg = <0x10450000 0x1000>;
272 wakeup-interrupt-controller {
273 compatible = "samsung,exynosautov9-wakeup-eint";
277 pinctrl_aud: pinctrl@19c60000{
278 compatible = "samsung,exynosautov9-pinctrl";
279 reg = <0x19c60000 0x1000>;
282 pinctrl_fsys0: pinctrl@17740000 {
283 compatible = "samsung,exynosautov9-pinctrl";
284 reg = <0x17740000 0x1000>;
285 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
288 pinctrl_fsys1: pinctrl@17060000 {
289 compatible = "samsung,exynosautov9-pinctrl";
290 reg = <0x17060000 0x1000>;
291 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
294 pinctrl_fsys2: pinctrl@17c30000 {
295 compatible = "samsung,exynosautov9-pinctrl";
296 reg = <0x17c30000 0x1000>;
297 interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
300 pinctrl_peric0: pinctrl@10230000 {
301 compatible = "samsung,exynosautov9-pinctrl";
302 reg = <0x10230000 0x1000>;
303 interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
306 pinctrl_peric1: pinctrl@10830000 {
307 compatible = "samsung,exynosautov9-pinctrl";
308 reg = <0x10830000 0x1000>;
309 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
312 pmu_system_controller: system-controller@10460000 {
313 compatible = "samsung,exynos7-pmu", "syscon";
314 reg = <0x10460000 0x10000>;
317 syscon_fsys2: syscon@17c20000 {
318 compatible = "samsung,exynosautov9-sysreg", "syscon";
319 reg = <0x17c20000 0x1000>;
322 syscon_peric0: syscon@10220000 {
323 compatible = "samsung,exynosautov9-sysreg", "syscon";
324 reg = <0x10220000 0x2000>;
327 usi_0: usi@103000c0 {
328 compatible = "samsung,exynos850-usi";
329 reg = <0x103000c0 0x20>;
330 samsung,sysreg = <&syscon_peric0 0x1000>;
331 samsung,mode = <USI_V2_UART>;
332 samsung,clkreq-on; /* needed for UART mode */
333 #address-cells = <1>;
336 clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PCLK_0>,
337 <&cmu_peric0 CLK_GOUT_PERIC0_IPCLK_0>;
338 clock-names = "pclk", "ipclk";
342 serial_0: serial@10300000 {
343 compatible = "samsung,exynos850-uart";
344 reg = <0x10300000 0xc0>;
345 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
346 pinctrl-names = "default";
347 pinctrl-0 = <&uart0_bus_dual>;
348 clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PCLK_0>,
349 <&cmu_peric0 CLK_GOUT_PERIC0_IPCLK_0>;
350 clock-names = "uart", "clk_uart_baud0";
355 ufs_0_phy: ufs0-phy@17e04000 {
356 compatible = "samsung,exynosautov9-ufs-phy";
357 reg = <0x17e04000 0xc00>;
358 reg-names = "phy-pma";
359 samsung,pmu-syscon = <&pmu_system_controller>;
362 clock-names = "ref_clk";
366 ufs_0: ufs0@17e00000 {
367 compatible ="samsung,exynosautov9-ufs";
369 reg = <0x17e00000 0x100>, /* 0: HCI standard */
370 <0x17e01100 0x410>, /* 1: Vendor-specific */
371 <0x17e80000 0x8000>, /* 2: UNIPRO */
372 <0x17dc0000 0x2200>; /* 3: UFS protector */
373 reg-names = "hci", "vs_hci", "unipro", "ufsp";
374 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
375 clocks = <&cmu_fsys2 CLK_GOUT_FSYS2_UFS_EMBD0_ACLK>,
376 <&cmu_fsys2 CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO>;
377 clock-names = "core_clk", "sclk_unipro_main";
378 freq-table-hz = <0 0>, <0 0>;
379 pinctrl-names = "default";
380 pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
382 phy-names = "ufs-phy";
383 samsung,sysreg = <&syscon_fsys2 0x710>;
389 #include "exynosautov9-pinctrl.dtsi"