blob: e6e72d40043ecc4f24c500e213f2ee82976c794b [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 };
Igor Prusov689aa9e2023-05-05 15:56:35 +0300132 };
133
134 gic: interrupt-controller@ff901000 {
135 compatible = "arm,gic-400";
136 reg = <0x0 0xff901000 0x0 0x1000>,
137 <0x0 0xff902000 0x0 0x2000>,
138 <0x0 0xff904000 0x0 0x2000>,
139 <0x0 0xff906000 0x0 0x2000>;
140 interrupt-controller;
141 interrupts = <GIC_PPI 9
142 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
143 #interrupt-cells = <3>;
144 #address-cells = <0>;
145 };
146 };
147
148 timer {
149 compatible = "arm,armv8-timer";
150 interrupts = <GIC_PPI 13
151 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
152 <GIC_PPI 14
153 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
154 <GIC_PPI 11
155 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
156 <GIC_PPI 10
157 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
158 };
159
160 xtal: xtal-clk {
161 compatible = "fixed-clock";
162 clock-frequency = <24000000>;
163 clock-output-names = "xtal";
164 #clock-cells = <0>;
165 };
166};