xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/meson-s4.dtsi (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1c9ccf3a3SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c9ccf3a3SEmmanuel Vadot/*
3c9ccf3a3SEmmanuel Vadot * Copyright (c) 2021 Amlogic, Inc. All rights reserved.
4c9ccf3a3SEmmanuel Vadot */
5c9ccf3a3SEmmanuel Vadot
6c9ccf3a3SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
7c9ccf3a3SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
8d5b0e70fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
9*8d13bc63SEmmanuel Vadot#include <dt-bindings/gpio/meson-s4-gpio.h>
10*8d13bc63SEmmanuel Vadot#include <dt-bindings/clock/amlogic,s4-pll-clkc.h>
11*8d13bc63SEmmanuel Vadot#include <dt-bindings/clock/amlogic,s4-peripherals-clkc.h>
12*8d13bc63SEmmanuel Vadot#include <dt-bindings/power/meson-s4-power.h>
13c9ccf3a3SEmmanuel Vadot
14c9ccf3a3SEmmanuel Vadot/ {
15c9ccf3a3SEmmanuel Vadot	cpus {
16c9ccf3a3SEmmanuel Vadot		#address-cells = <2>;
17c9ccf3a3SEmmanuel Vadot		#size-cells = <0>;
18c9ccf3a3SEmmanuel Vadot
19c9ccf3a3SEmmanuel Vadot		cpu0: cpu@0 {
20c9ccf3a3SEmmanuel Vadot			device_type = "cpu";
21c9ccf3a3SEmmanuel Vadot			compatible = "arm,cortex-a35";
22c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x0>;
23c9ccf3a3SEmmanuel Vadot			enable-method = "psci";
24c9ccf3a3SEmmanuel Vadot		};
25c9ccf3a3SEmmanuel Vadot
26c9ccf3a3SEmmanuel Vadot		cpu1: cpu@1 {
27c9ccf3a3SEmmanuel Vadot			device_type = "cpu";
28c9ccf3a3SEmmanuel Vadot			compatible = "arm,cortex-a35";
29c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x1>;
30c9ccf3a3SEmmanuel Vadot			enable-method = "psci";
31c9ccf3a3SEmmanuel Vadot		};
32c9ccf3a3SEmmanuel Vadot
33c9ccf3a3SEmmanuel Vadot		cpu2: cpu@2 {
34c9ccf3a3SEmmanuel Vadot			device_type = "cpu";
35c9ccf3a3SEmmanuel Vadot			compatible = "arm,cortex-a35";
36c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x2>;
37c9ccf3a3SEmmanuel Vadot			enable-method = "psci";
38c9ccf3a3SEmmanuel Vadot		};
39c9ccf3a3SEmmanuel Vadot
40c9ccf3a3SEmmanuel Vadot		cpu3: cpu@3 {
41c9ccf3a3SEmmanuel Vadot			device_type = "cpu";
42c9ccf3a3SEmmanuel Vadot			compatible = "arm,cortex-a35";
43c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x3>;
44c9ccf3a3SEmmanuel Vadot			enable-method = "psci";
45c9ccf3a3SEmmanuel Vadot		};
46c9ccf3a3SEmmanuel Vadot	};
47c9ccf3a3SEmmanuel Vadot
48c9ccf3a3SEmmanuel Vadot	timer {
49c9ccf3a3SEmmanuel Vadot		compatible = "arm,armv8-timer";
50c9ccf3a3SEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
51c9ccf3a3SEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
52c9ccf3a3SEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
53c9ccf3a3SEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
54c9ccf3a3SEmmanuel Vadot	};
55c9ccf3a3SEmmanuel Vadot
56c9ccf3a3SEmmanuel Vadot	psci {
57c9ccf3a3SEmmanuel Vadot		compatible = "arm,psci-1.0";
58c9ccf3a3SEmmanuel Vadot		method = "smc";
59c9ccf3a3SEmmanuel Vadot	};
60c9ccf3a3SEmmanuel Vadot
61c9ccf3a3SEmmanuel Vadot	xtal: xtal-clk {
62c9ccf3a3SEmmanuel Vadot		compatible = "fixed-clock";
63c9ccf3a3SEmmanuel Vadot		clock-frequency = <24000000>;
64c9ccf3a3SEmmanuel Vadot		clock-output-names = "xtal";
65c9ccf3a3SEmmanuel Vadot		#clock-cells = <0>;
66c9ccf3a3SEmmanuel Vadot	};
67c9ccf3a3SEmmanuel Vadot
68d5b0e70fSEmmanuel Vadot	pwrc: power-controller {
69d5b0e70fSEmmanuel Vadot		compatible = "amlogic,meson-s4-pwrc";
70d5b0e70fSEmmanuel Vadot		#power-domain-cells = <1>;
71d5b0e70fSEmmanuel Vadot		status = "okay";
72d5b0e70fSEmmanuel Vadot	};
73d5b0e70fSEmmanuel Vadot
74c9ccf3a3SEmmanuel Vadot	soc {
75c9ccf3a3SEmmanuel Vadot		compatible = "simple-bus";
76c9ccf3a3SEmmanuel Vadot		#address-cells = <2>;
77c9ccf3a3SEmmanuel Vadot		#size-cells = <2>;
78c9ccf3a3SEmmanuel Vadot		ranges;
79c9ccf3a3SEmmanuel Vadot
80c9ccf3a3SEmmanuel Vadot		gic: interrupt-controller@fff01000 {
81c9ccf3a3SEmmanuel Vadot			compatible = "arm,gic-400";
82c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <3>;
83c9ccf3a3SEmmanuel Vadot			#address-cells = <0>;
84c9ccf3a3SEmmanuel Vadot			interrupt-controller;
85c9ccf3a3SEmmanuel Vadot			reg = <0x0 0xfff01000 0 0x1000>,
86c9ccf3a3SEmmanuel Vadot			      <0x0 0xfff02000 0 0x2000>,
87c9ccf3a3SEmmanuel Vadot			      <0x0 0xfff04000 0 0x2000>,
88c9ccf3a3SEmmanuel Vadot			      <0x0 0xfff06000 0 0x2000>;
89c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
90c9ccf3a3SEmmanuel Vadot		};
91c9ccf3a3SEmmanuel Vadot
92fac71e4eSEmmanuel Vadot		apb4: bus@fe000000 {
93c9ccf3a3SEmmanuel Vadot			compatible = "simple-bus";
94c9ccf3a3SEmmanuel Vadot			reg = <0x0 0xfe000000 0x0 0x480000>;
95c9ccf3a3SEmmanuel Vadot			#address-cells = <2>;
96c9ccf3a3SEmmanuel Vadot			#size-cells = <2>;
97c9ccf3a3SEmmanuel Vadot			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
98c9ccf3a3SEmmanuel Vadot
99*8d13bc63SEmmanuel Vadot			clkc_periphs: clock-controller@0 {
100*8d13bc63SEmmanuel Vadot				compatible = "amlogic,s4-peripherals-clkc";
101*8d13bc63SEmmanuel Vadot				reg = <0x0 0x0 0x0 0x49c>;
102*8d13bc63SEmmanuel Vadot				clocks = <&clkc_pll CLKID_FCLK_DIV2>,
103*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_FCLK_DIV2P5>,
104*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_FCLK_DIV3>,
105*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_FCLK_DIV4>,
106*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_FCLK_DIV5>,
107*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_FCLK_DIV7>,
108*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_HIFI_PLL>,
109*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_GP0_PLL>,
110*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_MPLL0>,
111*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_MPLL1>,
112*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_MPLL2>,
113*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_MPLL3>,
114*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_HDMI_PLL>,
115*8d13bc63SEmmanuel Vadot					<&xtal>;
116*8d13bc63SEmmanuel Vadot				clock-names = "fclk_div2", "fclk_div2p5", "fclk_div3",
117*8d13bc63SEmmanuel Vadot						"fclk_div4", "fclk_div5", "fclk_div7",
118*8d13bc63SEmmanuel Vadot						"hifi_pll", "gp0_pll", "mpll0", "mpll1",
119*8d13bc63SEmmanuel Vadot						"mpll2", "mpll3", "hdmi_pll", "xtal";
120*8d13bc63SEmmanuel Vadot				#clock-cells = <1>;
121*8d13bc63SEmmanuel Vadot			};
122*8d13bc63SEmmanuel Vadot
123*8d13bc63SEmmanuel Vadot			clkc_pll: clock-controller@8000 {
124*8d13bc63SEmmanuel Vadot				compatible = "amlogic,s4-pll-clkc";
125*8d13bc63SEmmanuel Vadot				reg = <0x0 0x8000 0x0 0x1e8>;
126*8d13bc63SEmmanuel Vadot				clocks = <&xtal>;
127*8d13bc63SEmmanuel Vadot				clock-names = "xtal";
128*8d13bc63SEmmanuel Vadot				#clock-cells = <1>;
129*8d13bc63SEmmanuel Vadot			};
130*8d13bc63SEmmanuel Vadot
131*8d13bc63SEmmanuel Vadot			watchdog@2100 {
132*8d13bc63SEmmanuel Vadot				compatible = "amlogic,s4-wdt", "amlogic,t7-wdt";
133*8d13bc63SEmmanuel Vadot				reg = <0x0 0x2100 0x0 0x10>;
134*8d13bc63SEmmanuel Vadot				clocks = <&xtal>;
135*8d13bc63SEmmanuel Vadot			};
136*8d13bc63SEmmanuel Vadot
137d5b0e70fSEmmanuel Vadot			periphs_pinctrl: pinctrl@4000 {
138d5b0e70fSEmmanuel Vadot				compatible = "amlogic,meson-s4-periphs-pinctrl";
139d5b0e70fSEmmanuel Vadot				#address-cells = <2>;
140d5b0e70fSEmmanuel Vadot				#size-cells = <2>;
141d5b0e70fSEmmanuel Vadot				ranges;
142d5b0e70fSEmmanuel Vadot
143d5b0e70fSEmmanuel Vadot				gpio: bank@4000 {
144d5b0e70fSEmmanuel Vadot					reg = <0x0 0x4000 0x0 0x004c>,
145d5b0e70fSEmmanuel Vadot					      <0x0 0x40c0 0x0 0x0220>;
146d5b0e70fSEmmanuel Vadot					reg-names = "mux", "gpio";
147d5b0e70fSEmmanuel Vadot					gpio-controller;
148d5b0e70fSEmmanuel Vadot					#gpio-cells = <2>;
149d5b0e70fSEmmanuel Vadot					gpio-ranges = <&periphs_pinctrl 0 0 82>;
150d5b0e70fSEmmanuel Vadot				};
15184943d6fSEmmanuel Vadot
15284943d6fSEmmanuel Vadot				remote_pins: remote-pin {
15384943d6fSEmmanuel Vadot					mux {
15484943d6fSEmmanuel Vadot						groups = "remote_in";
15584943d6fSEmmanuel Vadot						function = "remote_in";
15684943d6fSEmmanuel Vadot						bias-disable;
15784943d6fSEmmanuel Vadot					};
15884943d6fSEmmanuel Vadot				};
159*8d13bc63SEmmanuel Vadot
160*8d13bc63SEmmanuel Vadot				i2c0_pins1: i2c0-pins1 {
161*8d13bc63SEmmanuel Vadot					mux {
162*8d13bc63SEmmanuel Vadot						groups = "i2c0_sda",
163*8d13bc63SEmmanuel Vadot						       "i2c0_scl";
164*8d13bc63SEmmanuel Vadot						function = "i2c0";
165*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
166*8d13bc63SEmmanuel Vadot						bias-disable;
167*8d13bc63SEmmanuel Vadot					};
168*8d13bc63SEmmanuel Vadot				};
169*8d13bc63SEmmanuel Vadot
170*8d13bc63SEmmanuel Vadot				i2c1_pins1: i2c1-pins1 {
171*8d13bc63SEmmanuel Vadot					mux {
172*8d13bc63SEmmanuel Vadot						groups = "i2c1_sda_c",
173*8d13bc63SEmmanuel Vadot						       "i2c1_scl_c";
174*8d13bc63SEmmanuel Vadot						function = "i2c1";
175*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
176*8d13bc63SEmmanuel Vadot						bias-disable;
177*8d13bc63SEmmanuel Vadot					};
178*8d13bc63SEmmanuel Vadot				};
179*8d13bc63SEmmanuel Vadot
180*8d13bc63SEmmanuel Vadot				i2c1_pins2: i2c1-pins2 {
181*8d13bc63SEmmanuel Vadot					mux {
182*8d13bc63SEmmanuel Vadot						groups = "i2c1_sda_d",
183*8d13bc63SEmmanuel Vadot						       "i2c1_scl_d";
184*8d13bc63SEmmanuel Vadot						function = "i2c1";
185*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
186*8d13bc63SEmmanuel Vadot						bias-disable;
187*8d13bc63SEmmanuel Vadot					};
188*8d13bc63SEmmanuel Vadot				};
189*8d13bc63SEmmanuel Vadot
190*8d13bc63SEmmanuel Vadot				i2c1_pins3: i2c1-pins3 {
191*8d13bc63SEmmanuel Vadot					mux {
192*8d13bc63SEmmanuel Vadot						groups = "i2c1_sda_h",
193*8d13bc63SEmmanuel Vadot						       "i2c1_scl_h";
194*8d13bc63SEmmanuel Vadot						function = "i2c1";
195*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
196*8d13bc63SEmmanuel Vadot						bias-disable;
197*8d13bc63SEmmanuel Vadot					};
198*8d13bc63SEmmanuel Vadot				};
199*8d13bc63SEmmanuel Vadot
200*8d13bc63SEmmanuel Vadot				i2c1_pins4: i2c1-pins4 {
201*8d13bc63SEmmanuel Vadot					mux {
202*8d13bc63SEmmanuel Vadot						groups = "i2c1_sda_x",
203*8d13bc63SEmmanuel Vadot						       "i2c1_scl_x";
204*8d13bc63SEmmanuel Vadot						function = "i2c1";
205*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
206*8d13bc63SEmmanuel Vadot						bias-disable;
207*8d13bc63SEmmanuel Vadot					};
208*8d13bc63SEmmanuel Vadot				};
209*8d13bc63SEmmanuel Vadot
210*8d13bc63SEmmanuel Vadot				i2c2_pins1: i2c2-pins1 {
211*8d13bc63SEmmanuel Vadot					mux {
212*8d13bc63SEmmanuel Vadot						groups = "i2c2_sda_d",
213*8d13bc63SEmmanuel Vadot						       "i2c2_scl_d";
214*8d13bc63SEmmanuel Vadot						function = "i2c2";
215*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
216*8d13bc63SEmmanuel Vadot						bias-disable;
217*8d13bc63SEmmanuel Vadot					};
218*8d13bc63SEmmanuel Vadot				};
219*8d13bc63SEmmanuel Vadot
220*8d13bc63SEmmanuel Vadot				i2c2_pins2: i2c2-pins2 {
221*8d13bc63SEmmanuel Vadot					mux {
222*8d13bc63SEmmanuel Vadot						groups = "i2c2_sda_h8",
223*8d13bc63SEmmanuel Vadot						       "i2c2_scl_h9";
224*8d13bc63SEmmanuel Vadot						function = "i2c2";
225*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
226*8d13bc63SEmmanuel Vadot						bias-disable;
227*8d13bc63SEmmanuel Vadot					};
228*8d13bc63SEmmanuel Vadot				};
229*8d13bc63SEmmanuel Vadot
230*8d13bc63SEmmanuel Vadot				i2c2_pins3: i2c2-pins3 {
231*8d13bc63SEmmanuel Vadot					mux {
232*8d13bc63SEmmanuel Vadot						groups = "i2c2_sda_h0",
233*8d13bc63SEmmanuel Vadot						       "i2c2_scl_h1";
234*8d13bc63SEmmanuel Vadot						function = "i2c2";
235*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
236*8d13bc63SEmmanuel Vadot						bias-disable;
237*8d13bc63SEmmanuel Vadot					};
238*8d13bc63SEmmanuel Vadot				};
239*8d13bc63SEmmanuel Vadot
240*8d13bc63SEmmanuel Vadot				i2c3_pins1: i2c3-pins1 {
241*8d13bc63SEmmanuel Vadot					mux {
242*8d13bc63SEmmanuel Vadot						groups = "i2c3_sda_x",
243*8d13bc63SEmmanuel Vadot						       "i2c3_scl_x";
244*8d13bc63SEmmanuel Vadot						function = "i2c3";
245*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
246*8d13bc63SEmmanuel Vadot						bias-disable;
247*8d13bc63SEmmanuel Vadot					};
248*8d13bc63SEmmanuel Vadot				};
249*8d13bc63SEmmanuel Vadot
250*8d13bc63SEmmanuel Vadot				i2c3_pins2: i2c3-pins2 {
251*8d13bc63SEmmanuel Vadot					mux {
252*8d13bc63SEmmanuel Vadot						groups = "i2c3_sda_z",
253*8d13bc63SEmmanuel Vadot						       "i2c3_scl_z";
254*8d13bc63SEmmanuel Vadot						function = "i2c3";
255*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
256*8d13bc63SEmmanuel Vadot						bias-disable;
257*8d13bc63SEmmanuel Vadot					};
258*8d13bc63SEmmanuel Vadot				};
259*8d13bc63SEmmanuel Vadot
260*8d13bc63SEmmanuel Vadot				i2c4_pins1: i2c4-pins1 {
261*8d13bc63SEmmanuel Vadot					mux {
262*8d13bc63SEmmanuel Vadot						groups = "i2c4_sda_c",
263*8d13bc63SEmmanuel Vadot						       "i2c4_scl_c";
264*8d13bc63SEmmanuel Vadot						function = "i2c4";
265*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
266*8d13bc63SEmmanuel Vadot						bias-disable;
267*8d13bc63SEmmanuel Vadot					};
268*8d13bc63SEmmanuel Vadot				};
269*8d13bc63SEmmanuel Vadot
270*8d13bc63SEmmanuel Vadot				i2c4_pins2: i2c4-pins2 {
271*8d13bc63SEmmanuel Vadot					mux {
272*8d13bc63SEmmanuel Vadot						groups = "i2c4_sda_d",
273*8d13bc63SEmmanuel Vadot						       "i2c4_scl_d";
274*8d13bc63SEmmanuel Vadot						function = "i2c4";
275*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
276*8d13bc63SEmmanuel Vadot						bias-disable;
277*8d13bc63SEmmanuel Vadot					};
278*8d13bc63SEmmanuel Vadot				};
279*8d13bc63SEmmanuel Vadot
280*8d13bc63SEmmanuel Vadot				i2c4_pins3: i2c4-pins3 {
281*8d13bc63SEmmanuel Vadot					mux {
282*8d13bc63SEmmanuel Vadot						groups = "i2c4_sda_z",
283*8d13bc63SEmmanuel Vadot						       "i2c4_scl_z";
284*8d13bc63SEmmanuel Vadot						function = "i2c4";
285*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
286*8d13bc63SEmmanuel Vadot						bias-disable;
287*8d13bc63SEmmanuel Vadot					};
288*8d13bc63SEmmanuel Vadot				};
289*8d13bc63SEmmanuel Vadot
290*8d13bc63SEmmanuel Vadot				nand_pins: nand-pins {
291*8d13bc63SEmmanuel Vadot					mux {
292*8d13bc63SEmmanuel Vadot						groups = "emmc_nand_d0",
293*8d13bc63SEmmanuel Vadot						       "emmc_nand_d1",
294*8d13bc63SEmmanuel Vadot						       "emmc_nand_d2",
295*8d13bc63SEmmanuel Vadot						       "emmc_nand_d3",
296*8d13bc63SEmmanuel Vadot						       "emmc_nand_d4",
297*8d13bc63SEmmanuel Vadot						       "emmc_nand_d5",
298*8d13bc63SEmmanuel Vadot						       "emmc_nand_d6",
299*8d13bc63SEmmanuel Vadot						       "emmc_nand_d7",
300*8d13bc63SEmmanuel Vadot						       "nand_ce0",
301*8d13bc63SEmmanuel Vadot						       "nand_ale",
302*8d13bc63SEmmanuel Vadot						       "nand_cle",
303*8d13bc63SEmmanuel Vadot						       "nand_wen_clk",
304*8d13bc63SEmmanuel Vadot						       "nand_ren_wr";
305*8d13bc63SEmmanuel Vadot						function = "nand";
306*8d13bc63SEmmanuel Vadot						input-enable;
307*8d13bc63SEmmanuel Vadot					};
308*8d13bc63SEmmanuel Vadot				};
309*8d13bc63SEmmanuel Vadot
310*8d13bc63SEmmanuel Vadot				spicc0_pins_x: spicc0-pins_x {
311*8d13bc63SEmmanuel Vadot					mux {
312*8d13bc63SEmmanuel Vadot						groups = "spi_a_mosi_x",
313*8d13bc63SEmmanuel Vadot						       "spi_a_miso_x",
314*8d13bc63SEmmanuel Vadot						       "spi_a_clk_x";
315*8d13bc63SEmmanuel Vadot						function = "spi_a";
316*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
317*8d13bc63SEmmanuel Vadot					};
318*8d13bc63SEmmanuel Vadot				};
319*8d13bc63SEmmanuel Vadot
320*8d13bc63SEmmanuel Vadot				spicc0_pins_h: spicc0-pins-h {
321*8d13bc63SEmmanuel Vadot					mux {
322*8d13bc63SEmmanuel Vadot						groups = "spi_a_mosi_h",
323*8d13bc63SEmmanuel Vadot						       "spi_a_miso_h",
324*8d13bc63SEmmanuel Vadot						       "spi_a_clk_h";
325*8d13bc63SEmmanuel Vadot						function = "spi_a";
326*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
327*8d13bc63SEmmanuel Vadot					};
328*8d13bc63SEmmanuel Vadot				};
329*8d13bc63SEmmanuel Vadot
330*8d13bc63SEmmanuel Vadot				spicc0_pins_z: spicc0-pins-z {
331*8d13bc63SEmmanuel Vadot					mux {
332*8d13bc63SEmmanuel Vadot						groups = "spi_a_mosi_z",
333*8d13bc63SEmmanuel Vadot						       "spi_a_miso_z",
334*8d13bc63SEmmanuel Vadot						       "spi_a_clk_z";
335*8d13bc63SEmmanuel Vadot						function = "spi_a";
336*8d13bc63SEmmanuel Vadot						drive-strength-microamp = <3000>;
337*8d13bc63SEmmanuel Vadot					};
338*8d13bc63SEmmanuel Vadot				};
339*8d13bc63SEmmanuel Vadot
340d5b0e70fSEmmanuel Vadot			};
341d5b0e70fSEmmanuel Vadot
342d5b0e70fSEmmanuel Vadot			gpio_intc: interrupt-controller@4080 {
343d5b0e70fSEmmanuel Vadot				compatible = "amlogic,meson-s4-gpio-intc",
344d5b0e70fSEmmanuel Vadot					     "amlogic,meson-gpio-intc";
345d5b0e70fSEmmanuel Vadot				reg = <0x0 0x4080 0x0 0x20>;
346d5b0e70fSEmmanuel Vadot				interrupt-controller;
347d5b0e70fSEmmanuel Vadot				#interrupt-cells = <2>;
348d5b0e70fSEmmanuel Vadot				amlogic,channel-interrupts =
349d5b0e70fSEmmanuel Vadot					<10 11 12 13 14 15 16 17 18 19 20 21>;
350d5b0e70fSEmmanuel Vadot			};
351d5b0e70fSEmmanuel Vadot
352*8d13bc63SEmmanuel Vadot			eth_phy: mdio-multiplexer@28000 {
353*8d13bc63SEmmanuel Vadot				compatible = "amlogic,g12a-mdio-mux";
354*8d13bc63SEmmanuel Vadot				reg = <0x0 0x28000 0x0 0xa4>;
355*8d13bc63SEmmanuel Vadot
356*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
357*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
358*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_ETHPHY>,
359*8d13bc63SEmmanuel Vadot					 <&xtal>,
360*8d13bc63SEmmanuel Vadot					 <&clkc_pll CLKID_MPLL_50M>;
361*8d13bc63SEmmanuel Vadot				clock-names = "pclk", "clkin0", "clkin1";
362*8d13bc63SEmmanuel Vadot				mdio-parent-bus = <&mdio0>;
363*8d13bc63SEmmanuel Vadot
364*8d13bc63SEmmanuel Vadot				ext_mdio: mdio@0 {
365*8d13bc63SEmmanuel Vadot					reg = <0>;
366*8d13bc63SEmmanuel Vadot					#address-cells = <1>;
367*8d13bc63SEmmanuel Vadot					#size-cells = <0>;
368*8d13bc63SEmmanuel Vadot				};
369*8d13bc63SEmmanuel Vadot
370*8d13bc63SEmmanuel Vadot				int_mdio: mdio@1 {
371*8d13bc63SEmmanuel Vadot					reg = <1>;
372*8d13bc63SEmmanuel Vadot					#address-cells = <1>;
373*8d13bc63SEmmanuel Vadot					#size-cells = <0>;
374*8d13bc63SEmmanuel Vadot
375*8d13bc63SEmmanuel Vadot					internal_ephy: ethernet-phy@8 {
376*8d13bc63SEmmanuel Vadot						compatible = "ethernet-phy-id0180.3301",
377*8d13bc63SEmmanuel Vadot							     "ethernet-phy-ieee802.3-c22";
378*8d13bc63SEmmanuel Vadot						interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
379*8d13bc63SEmmanuel Vadot						reg = <8>;
380*8d13bc63SEmmanuel Vadot						max-speed = <100>;
381*8d13bc63SEmmanuel Vadot					};
382*8d13bc63SEmmanuel Vadot				};
383*8d13bc63SEmmanuel Vadot			};
384*8d13bc63SEmmanuel Vadot
385*8d13bc63SEmmanuel Vadot			spicc0: spi@50000 {
386*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-g12a-spicc";
387*8d13bc63SEmmanuel Vadot				reg = <0x0 0x50000 0x0 0x44>;
388*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
389*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_SPICC0>,
390*8d13bc63SEmmanuel Vadot					 <&clkc_periphs CLKID_SPICC0_EN>;
391*8d13bc63SEmmanuel Vadot				clock-names = "core", "pclk";
392*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
393*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
394*8d13bc63SEmmanuel Vadot				status = "disabled";
395*8d13bc63SEmmanuel Vadot			};
396*8d13bc63SEmmanuel Vadot
397*8d13bc63SEmmanuel Vadot			i2c0: i2c@66000 {
398*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
399*8d13bc63SEmmanuel Vadot				reg = <0x0 0x66000 0x0 0x20>;
400*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>;
401*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_A>;
402*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
403*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
404*8d13bc63SEmmanuel Vadot				status = "disabled";
405*8d13bc63SEmmanuel Vadot			};
406*8d13bc63SEmmanuel Vadot
407*8d13bc63SEmmanuel Vadot			i2c1: i2c@68000 {
408*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
409*8d13bc63SEmmanuel Vadot				reg = <0x0 0x68000 0x0 0x20>;
410*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 161 IRQ_TYPE_EDGE_RISING>;
411*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_B>;
412*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
413*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
414*8d13bc63SEmmanuel Vadot				status = "disabled";
415*8d13bc63SEmmanuel Vadot			};
416*8d13bc63SEmmanuel Vadot
417*8d13bc63SEmmanuel Vadot			i2c2: i2c@6a000 {
418*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
419*8d13bc63SEmmanuel Vadot				reg = <0x0 0x6a000 0x0 0x20>;
420*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>;
421*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_C>;
422*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
423*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
424*8d13bc63SEmmanuel Vadot				status = "disabled";
425*8d13bc63SEmmanuel Vadot			};
426*8d13bc63SEmmanuel Vadot
427*8d13bc63SEmmanuel Vadot			i2c3: i2c@6c000 {
428*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
429*8d13bc63SEmmanuel Vadot				reg = <0x0 0x6c000 0x0 0x20>;
430*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>;
431*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_D>;
432*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
433*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
434*8d13bc63SEmmanuel Vadot				status = "disabled";
435*8d13bc63SEmmanuel Vadot			};
436*8d13bc63SEmmanuel Vadot
437*8d13bc63SEmmanuel Vadot			i2c4: i2c@6e000 {
438*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
439*8d13bc63SEmmanuel Vadot				reg = <0x0 0x6e000 0x0 0x20>;
440*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>;
441*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_E>;
442*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
443*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
444*8d13bc63SEmmanuel Vadot				status = "disabled";
445*8d13bc63SEmmanuel Vadot			};
446*8d13bc63SEmmanuel Vadot
447*8d13bc63SEmmanuel Vadot			nand: nand-controller@8c800 {
448*8d13bc63SEmmanuel Vadot				compatible = "amlogic,meson-axg-nfc";
449*8d13bc63SEmmanuel Vadot				reg = <0x0 0x8c800 0x0 0x100>, <0x0 0x8c000 0x0 0x4>;
450*8d13bc63SEmmanuel Vadot				reg-names = "nfc", "emmc";
451*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 175 IRQ_TYPE_EDGE_RISING>;
452*8d13bc63SEmmanuel Vadot				clocks = <&clkc_periphs CLKID_SD_EMMC_C>,
453*8d13bc63SEmmanuel Vadot					<&clkc_pll CLKID_FCLK_DIV2>;
454*8d13bc63SEmmanuel Vadot				clock-names = "core", "device";
455*8d13bc63SEmmanuel Vadot				status = "disabled";
456*8d13bc63SEmmanuel Vadot			};
457*8d13bc63SEmmanuel Vadot
458*8d13bc63SEmmanuel Vadot			uart_b: serial@7a000 {
459c9ccf3a3SEmmanuel Vadot				compatible = "amlogic,meson-s4-uart",
460c9ccf3a3SEmmanuel Vadot					     "amlogic,meson-ao-uart";
461c9ccf3a3SEmmanuel Vadot				reg = <0x0 0x7a000 0x0 0x18>;
462c9ccf3a3SEmmanuel Vadot				interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
463*8d13bc63SEmmanuel Vadot				clocks = <&xtal>, <&clkc_periphs CLKID_UART_B>, <&xtal>;
464c9ccf3a3SEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
465*8d13bc63SEmmanuel Vadot				status = "disabled";
466c9ccf3a3SEmmanuel Vadot			};
467b97ee269SEmmanuel Vadot
468b97ee269SEmmanuel Vadot			reset: reset-controller@2000 {
469b97ee269SEmmanuel Vadot				compatible = "amlogic,meson-s4-reset";
470b97ee269SEmmanuel Vadot				reg = <0x0 0x2000 0x0 0x98>;
471b97ee269SEmmanuel Vadot				#reset-cells = <1>;
472b97ee269SEmmanuel Vadot			};
47384943d6fSEmmanuel Vadot
47484943d6fSEmmanuel Vadot			ir: ir@84040 {
47584943d6fSEmmanuel Vadot				compatible = "amlogic,meson-s4-ir";
47684943d6fSEmmanuel Vadot				reg = <0x0 0x84040 0x0 0x30>;
47784943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
47884943d6fSEmmanuel Vadot				status = "disabled";
47984943d6fSEmmanuel Vadot			};
48084943d6fSEmmanuel Vadot
48184943d6fSEmmanuel Vadot			hwrng: rng@440788 {
48284943d6fSEmmanuel Vadot				compatible = "amlogic,meson-s4-rng";
48384943d6fSEmmanuel Vadot				reg = <0x0 0x440788 0x0 0x0c>;
48484943d6fSEmmanuel Vadot			};
485c9ccf3a3SEmmanuel Vadot		};
486*8d13bc63SEmmanuel Vadot
487*8d13bc63SEmmanuel Vadot		ethmac: ethernet@fdc00000 {
488*8d13bc63SEmmanuel Vadot			compatible = "amlogic,meson-axg-dwmac",
489*8d13bc63SEmmanuel Vadot				     "snps,dwmac-3.70a",
490*8d13bc63SEmmanuel Vadot				     "snps,dwmac";
491*8d13bc63SEmmanuel Vadot			reg = <0x0 0xfdc00000 0x0 0x10000>,
492*8d13bc63SEmmanuel Vadot			      <0x0 0xfe024000 0x0 0x8>;
493*8d13bc63SEmmanuel Vadot
494*8d13bc63SEmmanuel Vadot			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
495*8d13bc63SEmmanuel Vadot			interrupt-names = "macirq";
496*8d13bc63SEmmanuel Vadot			power-domains = <&pwrc PWRC_S4_ETH_ID>;
497*8d13bc63SEmmanuel Vadot			clocks = <&clkc_periphs CLKID_ETH>,
498*8d13bc63SEmmanuel Vadot				 <&clkc_pll CLKID_FCLK_DIV2>,
499*8d13bc63SEmmanuel Vadot				 <&clkc_pll CLKID_MPLL2>;
500*8d13bc63SEmmanuel Vadot			clock-names = "stmmaceth", "clkin0", "clkin1";
501*8d13bc63SEmmanuel Vadot			rx-fifo-depth = <4096>;
502*8d13bc63SEmmanuel Vadot			tx-fifo-depth = <2048>;
503*8d13bc63SEmmanuel Vadot			status = "disabled";
504*8d13bc63SEmmanuel Vadot
505*8d13bc63SEmmanuel Vadot			mdio0: mdio {
506*8d13bc63SEmmanuel Vadot				#address-cells = <1>;
507*8d13bc63SEmmanuel Vadot				#size-cells = <0>;
508*8d13bc63SEmmanuel Vadot				compatible = "snps,dwmac-mdio";
509*8d13bc63SEmmanuel Vadot			};
510*8d13bc63SEmmanuel Vadot		};
511c9ccf3a3SEmmanuel Vadot	};
512c9ccf3a3SEmmanuel Vadot};
513