xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/meson-a1.dtsi (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6*84943d6fSEmmanuel Vadot#include <dt-bindings/clock/amlogic,a1-pll-clkc.h>
7*84943d6fSEmmanuel Vadot#include <dt-bindings/clock/amlogic,a1-peripherals-clkc.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-a1-gpio.h>
9*84943d6fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
10*84943d6fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
11*84943d6fSEmmanuel Vadot#include <dt-bindings/power/meson-a1-power.h>
12*84943d6fSEmmanuel Vadot#include <dt-bindings/reset/amlogic,meson-a1-reset.h>
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot/ {
15c66ec88fSEmmanuel Vadot	compatible = "amlogic,a1";
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadot	interrupt-parent = <&gic>;
18c66ec88fSEmmanuel Vadot	#address-cells = <2>;
19c66ec88fSEmmanuel Vadot	#size-cells = <2>;
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot	cpus {
22c66ec88fSEmmanuel Vadot		#address-cells = <2>;
23c66ec88fSEmmanuel Vadot		#size-cells = <0>;
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot		cpu0: cpu@0 {
26c66ec88fSEmmanuel Vadot			device_type = "cpu";
27c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
28c66ec88fSEmmanuel Vadot			reg = <0x0 0x0>;
29c66ec88fSEmmanuel Vadot			enable-method = "psci";
30c66ec88fSEmmanuel Vadot			next-level-cache = <&l2>;
31c66ec88fSEmmanuel Vadot		};
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot		cpu1: cpu@1 {
34c66ec88fSEmmanuel Vadot			device_type = "cpu";
35c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
36c66ec88fSEmmanuel Vadot			reg = <0x0 0x1>;
37c66ec88fSEmmanuel Vadot			enable-method = "psci";
38c66ec88fSEmmanuel Vadot			next-level-cache = <&l2>;
39c66ec88fSEmmanuel Vadot		};
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot		l2: l2-cache0 {
42c66ec88fSEmmanuel Vadot			compatible = "cache";
438bab661aSEmmanuel Vadot			cache-level = <2>;
44f126890aSEmmanuel Vadot			cache-unified;
45c66ec88fSEmmanuel Vadot		};
46c66ec88fSEmmanuel Vadot	};
47c66ec88fSEmmanuel Vadot
48*84943d6fSEmmanuel Vadot	efuse: efuse {
49*84943d6fSEmmanuel Vadot		compatible = "amlogic,meson-gxbb-efuse";
50*84943d6fSEmmanuel Vadot		clocks = <&clkc_periphs CLKID_OTP>;
51*84943d6fSEmmanuel Vadot		#address-cells = <1>;
52*84943d6fSEmmanuel Vadot		#size-cells = <1>;
53*84943d6fSEmmanuel Vadot		secure-monitor = <&sm>;
54*84943d6fSEmmanuel Vadot		power-domains = <&pwrc PWRC_OTP_ID>;
55*84943d6fSEmmanuel Vadot	};
56*84943d6fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot	psci {
58c66ec88fSEmmanuel Vadot		compatible = "arm,psci-1.0";
59c66ec88fSEmmanuel Vadot		method = "smc";
60c66ec88fSEmmanuel Vadot	};
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot	reserved-memory {
63c66ec88fSEmmanuel Vadot		#address-cells = <2>;
64c66ec88fSEmmanuel Vadot		#size-cells = <2>;
65c66ec88fSEmmanuel Vadot		ranges;
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot		linux,cma {
68c66ec88fSEmmanuel Vadot			compatible = "shared-dma-pool";
69c66ec88fSEmmanuel Vadot			reusable;
70c66ec88fSEmmanuel Vadot			size = <0x0 0x800000>;
71c66ec88fSEmmanuel Vadot			alignment = <0x0 0x400000>;
72c66ec88fSEmmanuel Vadot			linux,cma-default;
73c66ec88fSEmmanuel Vadot		};
74c66ec88fSEmmanuel Vadot	};
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot	sm: secure-monitor {
77c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxbb-sm";
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot		pwrc: power-controller {
80c66ec88fSEmmanuel Vadot			compatible = "amlogic,meson-a1-pwrc";
81c66ec88fSEmmanuel Vadot			#power-domain-cells = <1>;
82c66ec88fSEmmanuel Vadot		};
83c66ec88fSEmmanuel Vadot	};
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot	soc {
86c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
87c66ec88fSEmmanuel Vadot		#address-cells = <2>;
88c66ec88fSEmmanuel Vadot		#size-cells = <2>;
89c66ec88fSEmmanuel Vadot		ranges;
90c66ec88fSEmmanuel Vadot
91*84943d6fSEmmanuel Vadot		spifc: spi@fd000400 {
92*84943d6fSEmmanuel Vadot			compatible = "amlogic,a1-spifc";
93*84943d6fSEmmanuel Vadot			reg = <0x0 0xfd000400 0x0 0x290>;
94*84943d6fSEmmanuel Vadot			clocks = <&clkc_periphs CLKID_SPIFC>;
95*84943d6fSEmmanuel Vadot			#address-cells = <1>;
96*84943d6fSEmmanuel Vadot			#size-cells = <0>;
97*84943d6fSEmmanuel Vadot			power-domains = <&pwrc PWRC_SPIFC_ID>;
98*84943d6fSEmmanuel Vadot			status = "disabled";
99*84943d6fSEmmanuel Vadot		};
100*84943d6fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot		apb: bus@fe000000 {
102c66ec88fSEmmanuel Vadot			compatible = "simple-bus";
103c66ec88fSEmmanuel Vadot			reg = <0x0 0xfe000000 0x0 0x1000000>;
104c66ec88fSEmmanuel Vadot			#address-cells = <2>;
105c66ec88fSEmmanuel Vadot			#size-cells = <2>;
106c66ec88fSEmmanuel Vadot			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot			reset: reset-controller@0 {
109c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-a1-reset";
110c66ec88fSEmmanuel Vadot				reg = <0x0 0x0 0x0 0x8c>;
111c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
112c66ec88fSEmmanuel Vadot			};
113c66ec88fSEmmanuel Vadot
1142eb4d8dcSEmmanuel Vadot			periphs_pinctrl: pinctrl@400 {
115c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-a1-periphs-pinctrl";
116c66ec88fSEmmanuel Vadot				#address-cells = <2>;
117c66ec88fSEmmanuel Vadot				#size-cells = <2>;
118c66ec88fSEmmanuel Vadot				ranges;
119c66ec88fSEmmanuel Vadot
1202eb4d8dcSEmmanuel Vadot				gpio: bank@400 {
121c66ec88fSEmmanuel Vadot					reg = <0x0 0x0400 0x0 0x003c>,
122c66ec88fSEmmanuel Vadot					      <0x0 0x0480 0x0 0x0118>;
123c66ec88fSEmmanuel Vadot					reg-names = "mux", "gpio";
124c66ec88fSEmmanuel Vadot					gpio-controller;
125c66ec88fSEmmanuel Vadot					#gpio-cells = <2>;
126c66ec88fSEmmanuel Vadot					gpio-ranges = <&periphs_pinctrl 0 0 62>;
127c66ec88fSEmmanuel Vadot				};
128c66ec88fSEmmanuel Vadot
129*84943d6fSEmmanuel Vadot				i2c0_f11_pins: i2c0-f11 {
130*84943d6fSEmmanuel Vadot					mux {
131*84943d6fSEmmanuel Vadot						groups = "i2c0_sck_f11",
132*84943d6fSEmmanuel Vadot							 "i2c0_sda_f12";
133*84943d6fSEmmanuel Vadot						function = "i2c0";
134*84943d6fSEmmanuel Vadot						bias-pull-up;
135*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
136*84943d6fSEmmanuel Vadot					};
137*84943d6fSEmmanuel Vadot				};
138*84943d6fSEmmanuel Vadot
139*84943d6fSEmmanuel Vadot				i2c0_f9_pins: i2c0-f9 {
140*84943d6fSEmmanuel Vadot					mux {
141*84943d6fSEmmanuel Vadot						groups = "i2c0_sck_f9",
142*84943d6fSEmmanuel Vadot							 "i2c0_sda_f10";
143*84943d6fSEmmanuel Vadot						function = "i2c0";
144*84943d6fSEmmanuel Vadot						bias-pull-up;
145*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
146*84943d6fSEmmanuel Vadot					};
147*84943d6fSEmmanuel Vadot				};
148*84943d6fSEmmanuel Vadot
149*84943d6fSEmmanuel Vadot				i2c1_x_pins: i2c1-x {
150*84943d6fSEmmanuel Vadot					mux {
151*84943d6fSEmmanuel Vadot						groups = "i2c1_sck_x",
152*84943d6fSEmmanuel Vadot							 "i2c1_sda_x";
153*84943d6fSEmmanuel Vadot						function = "i2c1";
154*84943d6fSEmmanuel Vadot						bias-pull-up;
155*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
156*84943d6fSEmmanuel Vadot					};
157*84943d6fSEmmanuel Vadot				};
158*84943d6fSEmmanuel Vadot
159*84943d6fSEmmanuel Vadot				i2c1_a_pins: i2c1-a {
160*84943d6fSEmmanuel Vadot					mux {
161*84943d6fSEmmanuel Vadot						groups = "i2c1_sck_a",
162*84943d6fSEmmanuel Vadot							 "i2c1_sda_a";
163*84943d6fSEmmanuel Vadot						function = "i2c1";
164*84943d6fSEmmanuel Vadot						bias-pull-up;
165*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
166*84943d6fSEmmanuel Vadot					};
167*84943d6fSEmmanuel Vadot				};
168*84943d6fSEmmanuel Vadot
169*84943d6fSEmmanuel Vadot				i2c2_x0_pins: i2c2-x0 {
170*84943d6fSEmmanuel Vadot					mux {
171*84943d6fSEmmanuel Vadot						groups = "i2c2_sck_x0",
172*84943d6fSEmmanuel Vadot							 "i2c2_sda_x1";
173*84943d6fSEmmanuel Vadot						function = "i2c2";
174*84943d6fSEmmanuel Vadot						bias-pull-up;
175*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
176*84943d6fSEmmanuel Vadot					};
177*84943d6fSEmmanuel Vadot				};
178*84943d6fSEmmanuel Vadot
179*84943d6fSEmmanuel Vadot				i2c2_x15_pins: i2c2-x15 {
180*84943d6fSEmmanuel Vadot					mux {
181*84943d6fSEmmanuel Vadot						groups = "i2c2_sck_x15",
182*84943d6fSEmmanuel Vadot							 "i2c2_sda_x16";
183*84943d6fSEmmanuel Vadot						function = "i2c2";
184*84943d6fSEmmanuel Vadot						bias-pull-up;
185*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
186*84943d6fSEmmanuel Vadot					};
187*84943d6fSEmmanuel Vadot				};
188*84943d6fSEmmanuel Vadot
189*84943d6fSEmmanuel Vadot				i2c2_a4_pins: i2c2-a4 {
190*84943d6fSEmmanuel Vadot					mux {
191*84943d6fSEmmanuel Vadot						groups = "i2c2_sck_a4",
192*84943d6fSEmmanuel Vadot							 "i2c2_sda_a5";
193*84943d6fSEmmanuel Vadot						function = "i2c2";
194*84943d6fSEmmanuel Vadot						bias-pull-up;
195*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
196*84943d6fSEmmanuel Vadot					};
197*84943d6fSEmmanuel Vadot				};
198*84943d6fSEmmanuel Vadot
199*84943d6fSEmmanuel Vadot				i2c2_a8_pins: i2c2-a8 {
200*84943d6fSEmmanuel Vadot					mux {
201*84943d6fSEmmanuel Vadot						groups = "i2c2_sck_a8",
202*84943d6fSEmmanuel Vadot							 "i2c2_sda_a9";
203*84943d6fSEmmanuel Vadot						function = "i2c2";
204*84943d6fSEmmanuel Vadot						bias-pull-up;
205*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
206*84943d6fSEmmanuel Vadot					};
207*84943d6fSEmmanuel Vadot				};
208*84943d6fSEmmanuel Vadot
209*84943d6fSEmmanuel Vadot				i2c3_x_pins: i2c3-x {
210*84943d6fSEmmanuel Vadot					mux {
211*84943d6fSEmmanuel Vadot						groups = "i2c3_sck_x",
212*84943d6fSEmmanuel Vadot							 "i2c3_sda_x";
213*84943d6fSEmmanuel Vadot						function = "i2c3";
214*84943d6fSEmmanuel Vadot						bias-pull-up;
215*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
216*84943d6fSEmmanuel Vadot					};
217*84943d6fSEmmanuel Vadot				};
218*84943d6fSEmmanuel Vadot
219*84943d6fSEmmanuel Vadot				i2c3_f_pins: i2c3-f {
220*84943d6fSEmmanuel Vadot					mux {
221*84943d6fSEmmanuel Vadot						groups = "i2c3_sck_f",
222*84943d6fSEmmanuel Vadot							 "i2c3_sda_f";
223*84943d6fSEmmanuel Vadot						function = "i2c3";
224*84943d6fSEmmanuel Vadot						bias-pull-up;
225*84943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
226*84943d6fSEmmanuel Vadot					};
227*84943d6fSEmmanuel Vadot				};
228*84943d6fSEmmanuel Vadot
229*84943d6fSEmmanuel Vadot				uart_a_pins: uart-a {
230*84943d6fSEmmanuel Vadot					mux {
231*84943d6fSEmmanuel Vadot						groups = "uart_a_tx",
232*84943d6fSEmmanuel Vadot							 "uart_a_rx";
233*84943d6fSEmmanuel Vadot						function = "uart_a";
234*84943d6fSEmmanuel Vadot					};
235*84943d6fSEmmanuel Vadot				};
236*84943d6fSEmmanuel Vadot
237*84943d6fSEmmanuel Vadot				uart_a_cts_rts_pins: uart-a-cts-rts {
238*84943d6fSEmmanuel Vadot					mux {
239*84943d6fSEmmanuel Vadot						groups = "uart_a_cts",
240*84943d6fSEmmanuel Vadot							 "uart_a_rts";
241*84943d6fSEmmanuel Vadot						function = "uart_a";
242*84943d6fSEmmanuel Vadot						bias-pull-down;
243*84943d6fSEmmanuel Vadot					};
244*84943d6fSEmmanuel Vadot				};
245*84943d6fSEmmanuel Vadot
246*84943d6fSEmmanuel Vadot				sdio_pins: sdio {
247*84943d6fSEmmanuel Vadot					mux0 {
248*84943d6fSEmmanuel Vadot						groups = "sdcard_d0_x",
249*84943d6fSEmmanuel Vadot							 "sdcard_d1_x",
250*84943d6fSEmmanuel Vadot							 "sdcard_d2_x",
251*84943d6fSEmmanuel Vadot							 "sdcard_d3_x",
252*84943d6fSEmmanuel Vadot							 "sdcard_cmd_x";
253*84943d6fSEmmanuel Vadot						function = "sdcard";
254*84943d6fSEmmanuel Vadot						bias-pull-up;
255*84943d6fSEmmanuel Vadot					};
256*84943d6fSEmmanuel Vadot
257*84943d6fSEmmanuel Vadot					mux1 {
258*84943d6fSEmmanuel Vadot						groups = "sdcard_clk_x";
259*84943d6fSEmmanuel Vadot						function = "sdcard";
260*84943d6fSEmmanuel Vadot						bias-disable;
261*84943d6fSEmmanuel Vadot					};
262*84943d6fSEmmanuel Vadot				};
263*84943d6fSEmmanuel Vadot
264*84943d6fSEmmanuel Vadot				sdio_clk_gate_pins: sdio-clk-gate {
265*84943d6fSEmmanuel Vadot					mux {
266*84943d6fSEmmanuel Vadot						groups = "sdcard_clk_x";
267*84943d6fSEmmanuel Vadot						function = "sdcard";
268*84943d6fSEmmanuel Vadot						bias-pull-down;
269*84943d6fSEmmanuel Vadot					};
270*84943d6fSEmmanuel Vadot				};
271*84943d6fSEmmanuel Vadot
272*84943d6fSEmmanuel Vadot				spifc_pins: spifc {
273*84943d6fSEmmanuel Vadot					mux {
274*84943d6fSEmmanuel Vadot						groups = "spif_mo",
275*84943d6fSEmmanuel Vadot							 "spif_mi",
276*84943d6fSEmmanuel Vadot							 "spif_clk",
277*84943d6fSEmmanuel Vadot							 "spif_cs",
278*84943d6fSEmmanuel Vadot							 "spif_hold_n",
279*84943d6fSEmmanuel Vadot							 "spif_wp_n";
280*84943d6fSEmmanuel Vadot						function = "spif";
281*84943d6fSEmmanuel Vadot					};
282*84943d6fSEmmanuel Vadot				};
283*84943d6fSEmmanuel Vadot			};
284*84943d6fSEmmanuel Vadot
285*84943d6fSEmmanuel Vadot			gpio_intc: interrupt-controller@440 {
286*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-a1-gpio-intc",
287*84943d6fSEmmanuel Vadot					     "amlogic,meson-gpio-intc";
288*84943d6fSEmmanuel Vadot				reg = <0x0 0x0440 0x0 0x14>;
289*84943d6fSEmmanuel Vadot				interrupt-controller;
290*84943d6fSEmmanuel Vadot				#interrupt-cells = <2>;
291*84943d6fSEmmanuel Vadot				amlogic,channel-interrupts =
292*84943d6fSEmmanuel Vadot					<49 50 51 52 53 54 55 56>;
293*84943d6fSEmmanuel Vadot			};
294*84943d6fSEmmanuel Vadot
295*84943d6fSEmmanuel Vadot			clkc_periphs: clock-controller@800 {
296*84943d6fSEmmanuel Vadot				compatible = "amlogic,a1-peripherals-clkc";
297*84943d6fSEmmanuel Vadot				reg = <0 0x800 0 0x104>;
298*84943d6fSEmmanuel Vadot				#clock-cells = <1>;
299*84943d6fSEmmanuel Vadot				clocks = <&clkc_pll CLKID_FCLK_DIV2>,
300*84943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV3>,
301*84943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV5>,
302*84943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV7>,
303*84943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_HIFI_PLL>,
304*84943d6fSEmmanuel Vadot					 <&xtal>;
305*84943d6fSEmmanuel Vadot				clock-names = "fclk_div2", "fclk_div3",
306*84943d6fSEmmanuel Vadot					      "fclk_div5", "fclk_div7",
307*84943d6fSEmmanuel Vadot					      "hifi_pll", "xtal";
308*84943d6fSEmmanuel Vadot			};
309*84943d6fSEmmanuel Vadot
310*84943d6fSEmmanuel Vadot			i2c0: i2c@1400 {
311*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
312*84943d6fSEmmanuel Vadot				status = "disabled";
313*84943d6fSEmmanuel Vadot				reg = <0x0 0x1400 0x0 0x20>;
314*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
315*84943d6fSEmmanuel Vadot				#address-cells = <1>;
316*84943d6fSEmmanuel Vadot				#size-cells = <0>;
317*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_A>;
318*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
319c66ec88fSEmmanuel Vadot			};
320c66ec88fSEmmanuel Vadot
321c66ec88fSEmmanuel Vadot			uart_AO: serial@1c00 {
322aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,meson-a1-uart",
323c66ec88fSEmmanuel Vadot					     "amlogic,meson-ao-uart";
324c66ec88fSEmmanuel Vadot				reg = <0x0 0x1c00 0x0 0x18>;
325c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
326c66ec88fSEmmanuel Vadot				clocks = <&xtal>, <&xtal>, <&xtal>;
327c66ec88fSEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
328c66ec88fSEmmanuel Vadot				status = "disabled";
329c66ec88fSEmmanuel Vadot			};
330c66ec88fSEmmanuel Vadot
331c66ec88fSEmmanuel Vadot			uart_AO_B: serial@2000 {
332aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,meson-a1-uart",
333c66ec88fSEmmanuel Vadot					     "amlogic,meson-ao-uart";
334c66ec88fSEmmanuel Vadot				reg = <0x0 0x2000 0x0 0x18>;
335c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
336c66ec88fSEmmanuel Vadot				clocks = <&xtal>, <&xtal>, <&xtal>;
337c66ec88fSEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
338c66ec88fSEmmanuel Vadot				status = "disabled";
339c66ec88fSEmmanuel Vadot			};
340fac71e4eSEmmanuel Vadot
341*84943d6fSEmmanuel Vadot			saradc: adc@2c00 {
342*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-g12a-saradc",
343*84943d6fSEmmanuel Vadot					"amlogic,meson-saradc";
344*84943d6fSEmmanuel Vadot				reg = <0x0 0x2c00 0x0 0x48>;
345*84943d6fSEmmanuel Vadot				#io-channel-cells = <1>;
346*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
347*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
348*84943d6fSEmmanuel Vadot				clocks = <&xtal>,
349*84943d6fSEmmanuel Vadot					<&clkc_periphs CLKID_SARADC_EN>,
350*84943d6fSEmmanuel Vadot					<&clkc_periphs CLKID_SARADC>,
351*84943d6fSEmmanuel Vadot					<&clkc_periphs CLKID_SARADC_SEL>;
352*84943d6fSEmmanuel Vadot				clock-names = "clkin", "core",
353*84943d6fSEmmanuel Vadot					"adc_clk", "adc_sel";
354*84943d6fSEmmanuel Vadot				status = "disabled";
355*84943d6fSEmmanuel Vadot			};
356*84943d6fSEmmanuel Vadot
357*84943d6fSEmmanuel Vadot			i2c1: i2c@5c00 {
358*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
359*84943d6fSEmmanuel Vadot				status = "disabled";
360*84943d6fSEmmanuel Vadot				reg = <0x0 0x5c00 0x0 0x20>;
361*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
362*84943d6fSEmmanuel Vadot				#address-cells = <1>;
363*84943d6fSEmmanuel Vadot				#size-cells = <0>;
364*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_B>;
365*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
366*84943d6fSEmmanuel Vadot			};
367*84943d6fSEmmanuel Vadot
368*84943d6fSEmmanuel Vadot			i2c2: i2c@6800 {
369*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
370*84943d6fSEmmanuel Vadot				status = "disabled";
371*84943d6fSEmmanuel Vadot				reg = <0x0 0x6800 0x0 0x20>;
372*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>;
373*84943d6fSEmmanuel Vadot				#address-cells = <1>;
374*84943d6fSEmmanuel Vadot				#size-cells = <0>;
375*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_C>;
376*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
377*84943d6fSEmmanuel Vadot			};
378*84943d6fSEmmanuel Vadot
379*84943d6fSEmmanuel Vadot			i2c3: i2c@6c00 {
380*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
381*84943d6fSEmmanuel Vadot				status = "disabled";
382*84943d6fSEmmanuel Vadot				reg = <0x0 0x6c00 0x0 0x20>;
383*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
384*84943d6fSEmmanuel Vadot				#address-cells = <1>;
385*84943d6fSEmmanuel Vadot				#size-cells = <0>;
386*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_D>;
387*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
388*84943d6fSEmmanuel Vadot			};
389*84943d6fSEmmanuel Vadot
390*84943d6fSEmmanuel Vadot			usb2_phy1: phy@4000 {
391*84943d6fSEmmanuel Vadot				compatible = "amlogic,a1-usb2-phy";
392*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_USB_PHY_IN>;
393*84943d6fSEmmanuel Vadot				clock-names = "xtal";
394*84943d6fSEmmanuel Vadot				reg = <0x0 0x4000 0x0 0x60>;
395*84943d6fSEmmanuel Vadot				resets = <&reset RESET_USBPHY>;
396*84943d6fSEmmanuel Vadot				reset-names = "phy";
397*84943d6fSEmmanuel Vadot				#phy-cells = <0>;
398*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_USB_ID>;
399*84943d6fSEmmanuel Vadot			};
400*84943d6fSEmmanuel Vadot
401*84943d6fSEmmanuel Vadot			hwrng: rng@5118 {
402*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-rng";
403*84943d6fSEmmanuel Vadot				reg = <0x0 0x5118 0x0 0x4>;
404*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_OTP_ID>;
405*84943d6fSEmmanuel Vadot			};
406*84943d6fSEmmanuel Vadot
407*84943d6fSEmmanuel Vadot			sec_AO: ao-secure@5a20 {
408*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-gx-ao-secure", "syscon";
409*84943d6fSEmmanuel Vadot				reg = <0x0 0x5a20 0x0 0x140>;
410*84943d6fSEmmanuel Vadot				amlogic,has-chip-id;
411*84943d6fSEmmanuel Vadot			};
412*84943d6fSEmmanuel Vadot
413*84943d6fSEmmanuel Vadot			clkc_pll: pll-clock-controller@7c80 {
414*84943d6fSEmmanuel Vadot				compatible = "amlogic,a1-pll-clkc";
415*84943d6fSEmmanuel Vadot				reg = <0 0x7c80 0 0x18c>;
416*84943d6fSEmmanuel Vadot				#clock-cells = <1>;
417*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_FIXPLL_IN>,
418*84943d6fSEmmanuel Vadot					 <&clkc_periphs CLKID_HIFIPLL_IN>;
419*84943d6fSEmmanuel Vadot				clock-names = "fixpll_in", "hifipll_in";
420*84943d6fSEmmanuel Vadot			};
421*84943d6fSEmmanuel Vadot
422*84943d6fSEmmanuel Vadot			sd_emmc: sd@10000 {
423*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-mmc";
424*84943d6fSEmmanuel Vadot				reg = <0x0 0x10000 0x0 0x800>;
425*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
426*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_SD_EMMC_A>,
427*84943d6fSEmmanuel Vadot					 <&clkc_periphs CLKID_SD_EMMC>,
428*84943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV2>;
429*84943d6fSEmmanuel Vadot				clock-names = "core",
430*84943d6fSEmmanuel Vadot					      "clkin0",
431*84943d6fSEmmanuel Vadot					      "clkin1";
432*84943d6fSEmmanuel Vadot				assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_SEL2>;
433*84943d6fSEmmanuel Vadot				assigned-clock-parents = <&xtal>;
434*84943d6fSEmmanuel Vadot				resets = <&reset RESET_SD_EMMC_A>;
435*84943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_SD_EMMC_ID>;
436*84943d6fSEmmanuel Vadot				status = "disabled";
437*84943d6fSEmmanuel Vadot			};
438*84943d6fSEmmanuel Vadot		};
439*84943d6fSEmmanuel Vadot
440*84943d6fSEmmanuel Vadot		usb: usb@fe004400 {
441*84943d6fSEmmanuel Vadot			status = "disabled";
442*84943d6fSEmmanuel Vadot			compatible = "amlogic,meson-a1-usb-ctrl";
443*84943d6fSEmmanuel Vadot			reg = <0x0 0xfe004400 0x0 0xa0>;
444*84943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
445*84943d6fSEmmanuel Vadot			#address-cells = <2>;
446*84943d6fSEmmanuel Vadot			#size-cells = <2>;
447*84943d6fSEmmanuel Vadot			ranges;
448*84943d6fSEmmanuel Vadot
449*84943d6fSEmmanuel Vadot			clocks = <&clkc_periphs CLKID_USB_CTRL>,
450*84943d6fSEmmanuel Vadot				 <&clkc_periphs CLKID_USB_BUS>,
451*84943d6fSEmmanuel Vadot				 <&clkc_periphs CLKID_USB_CTRL_IN>;
452*84943d6fSEmmanuel Vadot			clock-names = "usb_ctrl", "usb_bus", "xtal_usb_ctrl";
453*84943d6fSEmmanuel Vadot			resets = <&reset RESET_USBCTRL>;
454*84943d6fSEmmanuel Vadot			reset-name = "usb_ctrl";
455*84943d6fSEmmanuel Vadot
456*84943d6fSEmmanuel Vadot			dr_mode = "otg";
457*84943d6fSEmmanuel Vadot
458*84943d6fSEmmanuel Vadot			phys = <&usb2_phy1>;
459*84943d6fSEmmanuel Vadot			phy-names = "usb2-phy1";
460*84943d6fSEmmanuel Vadot
461*84943d6fSEmmanuel Vadot			dwc3: usb@ff400000 {
462*84943d6fSEmmanuel Vadot				compatible = "snps,dwc3";
463*84943d6fSEmmanuel Vadot				reg = <0x0 0xff400000 0x0 0x100000>;
464*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
465*84943d6fSEmmanuel Vadot				dr_mode = "host";
466*84943d6fSEmmanuel Vadot				snps,dis_u2_susphy_quirk;
467*84943d6fSEmmanuel Vadot				snps,quirk-frame-length-adjustment = <0x20>;
468*84943d6fSEmmanuel Vadot				snps,parkmode-disable-ss-quirk;
469*84943d6fSEmmanuel Vadot			};
470*84943d6fSEmmanuel Vadot
471*84943d6fSEmmanuel Vadot			dwc2: usb@ff500000 {
472*84943d6fSEmmanuel Vadot				compatible = "amlogic,meson-a1-usb", "snps,dwc2";
473*84943d6fSEmmanuel Vadot				reg = <0x0 0xff500000 0x0 0x40000>;
474*84943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
475*84943d6fSEmmanuel Vadot				phys = <&usb2_phy1>;
476*84943d6fSEmmanuel Vadot				phy-names = "usb2-phy";
477*84943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_USB_PHY>;
478*84943d6fSEmmanuel Vadot				clock-names = "otg";
479*84943d6fSEmmanuel Vadot				dr_mode = "peripheral";
480*84943d6fSEmmanuel Vadot				g-rx-fifo-size = <192>;
481*84943d6fSEmmanuel Vadot				g-np-tx-fifo-size = <128>;
482*84943d6fSEmmanuel Vadot				g-tx-fifo-size = <128 128 16 16 16>;
483fac71e4eSEmmanuel Vadot			};
484c66ec88fSEmmanuel Vadot		};
485c66ec88fSEmmanuel Vadot
486c66ec88fSEmmanuel Vadot		gic: interrupt-controller@ff901000 {
487c66ec88fSEmmanuel Vadot			compatible = "arm,gic-400";
488c66ec88fSEmmanuel Vadot			reg = <0x0 0xff901000 0x0 0x1000>,
489c66ec88fSEmmanuel Vadot			      <0x0 0xff902000 0x0 0x2000>,
490c66ec88fSEmmanuel Vadot			      <0x0 0xff904000 0x0 0x2000>,
491c66ec88fSEmmanuel Vadot			      <0x0 0xff906000 0x0 0x2000>;
492c66ec88fSEmmanuel Vadot			interrupt-controller;
493c66ec88fSEmmanuel Vadot			interrupts = <GIC_PPI 9
494c66ec88fSEmmanuel Vadot				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
495c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
496c66ec88fSEmmanuel Vadot			#address-cells = <0>;
497c66ec88fSEmmanuel Vadot		};
498c66ec88fSEmmanuel Vadot	};
499c66ec88fSEmmanuel Vadot
500c66ec88fSEmmanuel Vadot	timer {
501c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
502c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 13
503c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
504c66ec88fSEmmanuel Vadot			     <GIC_PPI 14
505c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
506c66ec88fSEmmanuel Vadot			     <GIC_PPI 11
507c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
508c66ec88fSEmmanuel Vadot			     <GIC_PPI 10
509c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
510c66ec88fSEmmanuel Vadot	};
511c66ec88fSEmmanuel Vadot
512c66ec88fSEmmanuel Vadot	xtal: xtal-clk {
513c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
514c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
515c66ec88fSEmmanuel Vadot		clock-output-names = "xtal";
516c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
517c66ec88fSEmmanuel Vadot	};
518c66ec88fSEmmanuel Vadot};
519