blob: e3a42c5b248def5afcd8bfcad5fee319bfcf914d [file] [log] [blame]
Igor Prusov689aa9e2023-05-05 15:56:35 +03001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4 */
5
6#include <dt-bindings/interrupt-controller/irq.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/gpio/meson-a1-gpio.h>
9
10/ {
11 compatible = "amlogic,a1";
12
13 interrupt-parent = <&gic>;
14 #address-cells = <2>;
15 #size-cells = <2>;
16
17 cpus {
18 #address-cells = <2>;
19 #size-cells = <0>;
20
21 cpu0: cpu@0 {
22 device_type = "cpu";
23 compatible = "arm,cortex-a35";
24 reg = <0x0 0x0>;
25 enable-method = "psci";
26 next-level-cache = <&l2>;
27 };
28
29 cpu1: cpu@1 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a35";
32 reg = <0x0 0x1>;
33 enable-method = "psci";
34 next-level-cache = <&l2>;
35 };
36
37 l2: l2-cache0 {
38 compatible = "cache";
39 cache-level = <2>;
40 };
41 };
42
43 psci {
44 compatible = "arm,psci-1.0";
45 method = "smc";
46 };
47
48 reserved-memory {
49 #address-cells = <2>;
50 #size-cells = <2>;
51 ranges;
52
53 linux,cma {
54 compatible = "shared-dma-pool";
55 reusable;
56 size = <0x0 0x800000>;
57 alignment = <0x0 0x400000>;
58 linux,cma-default;
59 };
60 };
61
62 sm: secure-monitor {
63 compatible = "amlogic,meson-gxbb-sm";
64
65 pwrc: power-controller {
66 compatible = "amlogic,meson-a1-pwrc";
67 #power-domain-cells = <1>;
68 status = "okay";
69 };
70 };
71
72 soc {
73 compatible = "simple-bus";
74 #address-cells = <2>;
75 #size-cells = <2>;
76 ranges;
77
78 apb: bus@fe000000 {
79 compatible = "simple-bus";
80 reg = <0x0 0xfe000000 0x0 0x1000000>;
81 #address-cells = <2>;
82 #size-cells = <2>;
83 ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
84
85 reset: reset-controller@0 {
86 compatible = "amlogic,meson-a1-reset";
87 reg = <0x0 0x0 0x0 0x8c>;
88 #reset-cells = <1>;
89 };
90
91 periphs_pinctrl: pinctrl@400 {
92 compatible = "amlogic,meson-a1-periphs-pinctrl";
93 #address-cells = <2>;
94 #size-cells = <2>;
95 ranges;
96
97 gpio: bank@400 {
98 reg = <0x0 0x0400 0x0 0x003c>,
99 <0x0 0x0480 0x0 0x0118>;
100 reg-names = "mux", "gpio";
101 gpio-controller;
102 #gpio-cells = <2>;
103 gpio-ranges = <&periphs_pinctrl 0 0 62>;
104 };
105
106 };
107
108 uart_AO: serial@1c00 {
109 compatible = "amlogic,meson-gx-uart",
110 "amlogic,meson-ao-uart";
111 reg = <0x0 0x1c00 0x0 0x18>;
112 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
113 clocks = <&xtal>, <&xtal>, <&xtal>;
114 clock-names = "xtal", "pclk", "baud";
115 status = "disabled";
116 };
117
118 uart_AO_B: serial@2000 {
119 compatible = "amlogic,meson-gx-uart",
120 "amlogic,meson-ao-uart";
121 reg = <0x0 0x2000 0x0 0x18>;
122 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
123 clocks = <&xtal>, <&xtal>, <&xtal>;
124 clock-names = "xtal", "pclk", "baud";
125 status = "disabled";
126 };
Alexey Romanov0bb65b72023-10-10 13:06:16 +0300127
128 hwrng: rng@5118 {
129 compatible = "amlogic,meson-rng";
130 reg = <0x0 0x5118 0x0 0x4>;
131 };
Alexey Romanovc6c43932023-10-10 13:06:17 +0300132
133 sec_AO: ao-secure@5a20 {
134 compatible = "amlogic,meson-gx-ao-secure", "syscon";
135 reg = <0x0 0x5a20 0x0 0x140>;
136 amlogic,has-chip-id;
137 };
Igor Prusov689aa9e2023-05-05 15:56:35 +0300138 };
139
140 gic: interrupt-controller@ff901000 {
141 compatible = "arm,gic-400";
142 reg = <0x0 0xff901000 0x0 0x1000>,
143 <0x0 0xff902000 0x0 0x2000>,
144 <0x0 0xff904000 0x0 0x2000>,
145 <0x0 0xff906000 0x0 0x2000>;
146 interrupt-controller;
147 interrupts = <GIC_PPI 9
148 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
149 #interrupt-cells = <3>;
150 #address-cells = <0>;
151 };
152 };
153
154 timer {
155 compatible = "arm,armv8-timer";
156 interrupts = <GIC_PPI 13
157 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
158 <GIC_PPI 14
159 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
160 <GIC_PPI 11
161 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
162 <GIC_PPI 10
163 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
164 };
165
166 xtal: xtal-clk {
167 compatible = "fixed-clock";
168 clock-frequency = <24000000>;
169 clock-output-names = "xtal";
170 #clock-cells = <0>;
171 };
172};