xref: /freebsd-src/sys/contrib/device-tree/src/arm64/amlogic/meson-a1.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
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
684943d6fSEmmanuel Vadot#include <dt-bindings/clock/amlogic,a1-pll-clkc.h>
784943d6fSEmmanuel Vadot#include <dt-bindings/clock/amlogic,a1-peripherals-clkc.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-a1-gpio.h>
984943d6fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
1084943d6fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
1184943d6fSEmmanuel Vadot#include <dt-bindings/power/meson-a1-power.h>
1284943d6fSEmmanuel 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>;
31*0e8011faSEmmanuel Vadot			#cooling-cells = <2>;
32c66ec88fSEmmanuel Vadot		};
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot		cpu1: cpu@1 {
35c66ec88fSEmmanuel Vadot			device_type = "cpu";
36c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
37c66ec88fSEmmanuel Vadot			reg = <0x0 0x1>;
38c66ec88fSEmmanuel Vadot			enable-method = "psci";
39c66ec88fSEmmanuel Vadot			next-level-cache = <&l2>;
40*0e8011faSEmmanuel Vadot			#cooling-cells = <2>;
41c66ec88fSEmmanuel Vadot		};
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadot		l2: l2-cache0 {
44c66ec88fSEmmanuel Vadot			compatible = "cache";
458bab661aSEmmanuel Vadot			cache-level = <2>;
46f126890aSEmmanuel Vadot			cache-unified;
47c66ec88fSEmmanuel Vadot		};
48c66ec88fSEmmanuel Vadot	};
49c66ec88fSEmmanuel Vadot
5084943d6fSEmmanuel Vadot	efuse: efuse {
5184943d6fSEmmanuel Vadot		compatible = "amlogic,meson-gxbb-efuse";
5284943d6fSEmmanuel Vadot		clocks = <&clkc_periphs CLKID_OTP>;
5384943d6fSEmmanuel Vadot		#address-cells = <1>;
5484943d6fSEmmanuel Vadot		#size-cells = <1>;
5584943d6fSEmmanuel Vadot		secure-monitor = <&sm>;
5684943d6fSEmmanuel Vadot		power-domains = <&pwrc PWRC_OTP_ID>;
5784943d6fSEmmanuel Vadot	};
5884943d6fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot	psci {
60c66ec88fSEmmanuel Vadot		compatible = "arm,psci-1.0";
61c66ec88fSEmmanuel Vadot		method = "smc";
62c66ec88fSEmmanuel Vadot	};
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot	reserved-memory {
65c66ec88fSEmmanuel Vadot		#address-cells = <2>;
66c66ec88fSEmmanuel Vadot		#size-cells = <2>;
67c66ec88fSEmmanuel Vadot		ranges;
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot		linux,cma {
70c66ec88fSEmmanuel Vadot			compatible = "shared-dma-pool";
71c66ec88fSEmmanuel Vadot			reusable;
72c66ec88fSEmmanuel Vadot			size = <0x0 0x800000>;
73c66ec88fSEmmanuel Vadot			alignment = <0x0 0x400000>;
74c66ec88fSEmmanuel Vadot			linux,cma-default;
75c66ec88fSEmmanuel Vadot		};
76c66ec88fSEmmanuel Vadot	};
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot	sm: secure-monitor {
79c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxbb-sm";
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot		pwrc: power-controller {
82c66ec88fSEmmanuel Vadot			compatible = "amlogic,meson-a1-pwrc";
83c66ec88fSEmmanuel Vadot			#power-domain-cells = <1>;
84c66ec88fSEmmanuel Vadot		};
85c66ec88fSEmmanuel Vadot	};
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot	soc {
88c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
89c66ec88fSEmmanuel Vadot		#address-cells = <2>;
90c66ec88fSEmmanuel Vadot		#size-cells = <2>;
91c66ec88fSEmmanuel Vadot		ranges;
92c66ec88fSEmmanuel Vadot
9384943d6fSEmmanuel Vadot		spifc: spi@fd000400 {
9484943d6fSEmmanuel Vadot			compatible = "amlogic,a1-spifc";
9584943d6fSEmmanuel Vadot			reg = <0x0 0xfd000400 0x0 0x290>;
9684943d6fSEmmanuel Vadot			clocks = <&clkc_periphs CLKID_SPIFC>;
9784943d6fSEmmanuel Vadot			#address-cells = <1>;
9884943d6fSEmmanuel Vadot			#size-cells = <0>;
9984943d6fSEmmanuel Vadot			power-domains = <&pwrc PWRC_SPIFC_ID>;
10084943d6fSEmmanuel Vadot			status = "disabled";
10184943d6fSEmmanuel Vadot		};
10284943d6fSEmmanuel Vadot
103c66ec88fSEmmanuel Vadot		apb: bus@fe000000 {
104c66ec88fSEmmanuel Vadot			compatible = "simple-bus";
105c66ec88fSEmmanuel Vadot			reg = <0x0 0xfe000000 0x0 0x1000000>;
106c66ec88fSEmmanuel Vadot			#address-cells = <2>;
107c66ec88fSEmmanuel Vadot			#size-cells = <2>;
108c66ec88fSEmmanuel Vadot			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot			reset: reset-controller@0 {
111c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-a1-reset";
112c66ec88fSEmmanuel Vadot				reg = <0x0 0x0 0x0 0x8c>;
113c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
114c66ec88fSEmmanuel Vadot			};
115c66ec88fSEmmanuel Vadot
1162eb4d8dcSEmmanuel Vadot			periphs_pinctrl: pinctrl@400 {
117c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-a1-periphs-pinctrl";
118c66ec88fSEmmanuel Vadot				#address-cells = <2>;
119c66ec88fSEmmanuel Vadot				#size-cells = <2>;
120c66ec88fSEmmanuel Vadot				ranges;
121c66ec88fSEmmanuel Vadot
1222eb4d8dcSEmmanuel Vadot				gpio: bank@400 {
123c66ec88fSEmmanuel Vadot					reg = <0x0 0x0400 0x0 0x003c>,
124c66ec88fSEmmanuel Vadot					      <0x0 0x0480 0x0 0x0118>;
125c66ec88fSEmmanuel Vadot					reg-names = "mux", "gpio";
126c66ec88fSEmmanuel Vadot					gpio-controller;
127c66ec88fSEmmanuel Vadot					#gpio-cells = <2>;
128c66ec88fSEmmanuel Vadot					gpio-ranges = <&periphs_pinctrl 0 0 62>;
129c66ec88fSEmmanuel Vadot				};
130c66ec88fSEmmanuel Vadot
13184943d6fSEmmanuel Vadot				i2c0_f11_pins: i2c0-f11 {
13284943d6fSEmmanuel Vadot					mux {
13384943d6fSEmmanuel Vadot						groups = "i2c0_sck_f11",
13484943d6fSEmmanuel Vadot							 "i2c0_sda_f12";
13584943d6fSEmmanuel Vadot						function = "i2c0";
13684943d6fSEmmanuel Vadot						bias-pull-up;
13784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
13884943d6fSEmmanuel Vadot					};
13984943d6fSEmmanuel Vadot				};
14084943d6fSEmmanuel Vadot
14184943d6fSEmmanuel Vadot				i2c0_f9_pins: i2c0-f9 {
14284943d6fSEmmanuel Vadot					mux {
14384943d6fSEmmanuel Vadot						groups = "i2c0_sck_f9",
14484943d6fSEmmanuel Vadot							 "i2c0_sda_f10";
14584943d6fSEmmanuel Vadot						function = "i2c0";
14684943d6fSEmmanuel Vadot						bias-pull-up;
14784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
14884943d6fSEmmanuel Vadot					};
14984943d6fSEmmanuel Vadot				};
15084943d6fSEmmanuel Vadot
15184943d6fSEmmanuel Vadot				i2c1_x_pins: i2c1-x {
15284943d6fSEmmanuel Vadot					mux {
15384943d6fSEmmanuel Vadot						groups = "i2c1_sck_x",
15484943d6fSEmmanuel Vadot							 "i2c1_sda_x";
15584943d6fSEmmanuel Vadot						function = "i2c1";
15684943d6fSEmmanuel Vadot						bias-pull-up;
15784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
15884943d6fSEmmanuel Vadot					};
15984943d6fSEmmanuel Vadot				};
16084943d6fSEmmanuel Vadot
16184943d6fSEmmanuel Vadot				i2c1_a_pins: i2c1-a {
16284943d6fSEmmanuel Vadot					mux {
16384943d6fSEmmanuel Vadot						groups = "i2c1_sck_a",
16484943d6fSEmmanuel Vadot							 "i2c1_sda_a";
16584943d6fSEmmanuel Vadot						function = "i2c1";
16684943d6fSEmmanuel Vadot						bias-pull-up;
16784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
16884943d6fSEmmanuel Vadot					};
16984943d6fSEmmanuel Vadot				};
17084943d6fSEmmanuel Vadot
17184943d6fSEmmanuel Vadot				i2c2_x0_pins: i2c2-x0 {
17284943d6fSEmmanuel Vadot					mux {
17384943d6fSEmmanuel Vadot						groups = "i2c2_sck_x0",
17484943d6fSEmmanuel Vadot							 "i2c2_sda_x1";
17584943d6fSEmmanuel Vadot						function = "i2c2";
17684943d6fSEmmanuel Vadot						bias-pull-up;
17784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
17884943d6fSEmmanuel Vadot					};
17984943d6fSEmmanuel Vadot				};
18084943d6fSEmmanuel Vadot
18184943d6fSEmmanuel Vadot				i2c2_x15_pins: i2c2-x15 {
18284943d6fSEmmanuel Vadot					mux {
18384943d6fSEmmanuel Vadot						groups = "i2c2_sck_x15",
18484943d6fSEmmanuel Vadot							 "i2c2_sda_x16";
18584943d6fSEmmanuel Vadot						function = "i2c2";
18684943d6fSEmmanuel Vadot						bias-pull-up;
18784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
18884943d6fSEmmanuel Vadot					};
18984943d6fSEmmanuel Vadot				};
19084943d6fSEmmanuel Vadot
19184943d6fSEmmanuel Vadot				i2c2_a4_pins: i2c2-a4 {
19284943d6fSEmmanuel Vadot					mux {
19384943d6fSEmmanuel Vadot						groups = "i2c2_sck_a4",
19484943d6fSEmmanuel Vadot							 "i2c2_sda_a5";
19584943d6fSEmmanuel Vadot						function = "i2c2";
19684943d6fSEmmanuel Vadot						bias-pull-up;
19784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
19884943d6fSEmmanuel Vadot					};
19984943d6fSEmmanuel Vadot				};
20084943d6fSEmmanuel Vadot
20184943d6fSEmmanuel Vadot				i2c2_a8_pins: i2c2-a8 {
20284943d6fSEmmanuel Vadot					mux {
20384943d6fSEmmanuel Vadot						groups = "i2c2_sck_a8",
20484943d6fSEmmanuel Vadot							 "i2c2_sda_a9";
20584943d6fSEmmanuel Vadot						function = "i2c2";
20684943d6fSEmmanuel Vadot						bias-pull-up;
20784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
20884943d6fSEmmanuel Vadot					};
20984943d6fSEmmanuel Vadot				};
21084943d6fSEmmanuel Vadot
21184943d6fSEmmanuel Vadot				i2c3_x_pins: i2c3-x {
21284943d6fSEmmanuel Vadot					mux {
21384943d6fSEmmanuel Vadot						groups = "i2c3_sck_x",
21484943d6fSEmmanuel Vadot							 "i2c3_sda_x";
21584943d6fSEmmanuel Vadot						function = "i2c3";
21684943d6fSEmmanuel Vadot						bias-pull-up;
21784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
21884943d6fSEmmanuel Vadot					};
21984943d6fSEmmanuel Vadot				};
22084943d6fSEmmanuel Vadot
22184943d6fSEmmanuel Vadot				i2c3_f_pins: i2c3-f {
22284943d6fSEmmanuel Vadot					mux {
22384943d6fSEmmanuel Vadot						groups = "i2c3_sck_f",
22484943d6fSEmmanuel Vadot							 "i2c3_sda_f";
22584943d6fSEmmanuel Vadot						function = "i2c3";
22684943d6fSEmmanuel Vadot						bias-pull-up;
22784943d6fSEmmanuel Vadot						drive-strength-microamp = <3000>;
22884943d6fSEmmanuel Vadot					};
22984943d6fSEmmanuel Vadot				};
23084943d6fSEmmanuel Vadot
23184943d6fSEmmanuel Vadot				uart_a_pins: uart-a {
23284943d6fSEmmanuel Vadot					mux {
23384943d6fSEmmanuel Vadot						groups = "uart_a_tx",
23484943d6fSEmmanuel Vadot							 "uart_a_rx";
23584943d6fSEmmanuel Vadot						function = "uart_a";
23684943d6fSEmmanuel Vadot					};
23784943d6fSEmmanuel Vadot				};
23884943d6fSEmmanuel Vadot
23984943d6fSEmmanuel Vadot				uart_a_cts_rts_pins: uart-a-cts-rts {
24084943d6fSEmmanuel Vadot					mux {
24184943d6fSEmmanuel Vadot						groups = "uart_a_cts",
24284943d6fSEmmanuel Vadot							 "uart_a_rts";
24384943d6fSEmmanuel Vadot						function = "uart_a";
24484943d6fSEmmanuel Vadot						bias-pull-down;
24584943d6fSEmmanuel Vadot					};
24684943d6fSEmmanuel Vadot				};
24784943d6fSEmmanuel Vadot
24884943d6fSEmmanuel Vadot				sdio_pins: sdio {
24984943d6fSEmmanuel Vadot					mux0 {
25084943d6fSEmmanuel Vadot						groups = "sdcard_d0_x",
25184943d6fSEmmanuel Vadot							 "sdcard_d1_x",
25284943d6fSEmmanuel Vadot							 "sdcard_d2_x",
25384943d6fSEmmanuel Vadot							 "sdcard_d3_x",
25484943d6fSEmmanuel Vadot							 "sdcard_cmd_x";
25584943d6fSEmmanuel Vadot						function = "sdcard";
25684943d6fSEmmanuel Vadot						bias-pull-up;
25784943d6fSEmmanuel Vadot					};
25884943d6fSEmmanuel Vadot
25984943d6fSEmmanuel Vadot					mux1 {
26084943d6fSEmmanuel Vadot						groups = "sdcard_clk_x";
26184943d6fSEmmanuel Vadot						function = "sdcard";
26284943d6fSEmmanuel Vadot						bias-disable;
26384943d6fSEmmanuel Vadot					};
26484943d6fSEmmanuel Vadot				};
26584943d6fSEmmanuel Vadot
26684943d6fSEmmanuel Vadot				sdio_clk_gate_pins: sdio-clk-gate {
26784943d6fSEmmanuel Vadot					mux {
26884943d6fSEmmanuel Vadot						groups = "sdcard_clk_x";
26984943d6fSEmmanuel Vadot						function = "sdcard";
27084943d6fSEmmanuel Vadot						bias-pull-down;
27184943d6fSEmmanuel Vadot					};
27284943d6fSEmmanuel Vadot				};
27384943d6fSEmmanuel Vadot
27484943d6fSEmmanuel Vadot				spifc_pins: spifc {
27584943d6fSEmmanuel Vadot					mux {
27684943d6fSEmmanuel Vadot						groups = "spif_mo",
27784943d6fSEmmanuel Vadot							 "spif_mi",
27884943d6fSEmmanuel Vadot							 "spif_clk",
27984943d6fSEmmanuel Vadot							 "spif_cs",
28084943d6fSEmmanuel Vadot							 "spif_hold_n",
28184943d6fSEmmanuel Vadot							 "spif_wp_n";
28284943d6fSEmmanuel Vadot						function = "spif";
28384943d6fSEmmanuel Vadot					};
28484943d6fSEmmanuel Vadot				};
28584943d6fSEmmanuel Vadot			};
28684943d6fSEmmanuel Vadot
28784943d6fSEmmanuel Vadot			gpio_intc: interrupt-controller@440 {
28884943d6fSEmmanuel Vadot				compatible = "amlogic,meson-a1-gpio-intc",
28984943d6fSEmmanuel Vadot					     "amlogic,meson-gpio-intc";
29084943d6fSEmmanuel Vadot				reg = <0x0 0x0440 0x0 0x14>;
29184943d6fSEmmanuel Vadot				interrupt-controller;
29284943d6fSEmmanuel Vadot				#interrupt-cells = <2>;
29384943d6fSEmmanuel Vadot				amlogic,channel-interrupts =
29484943d6fSEmmanuel Vadot					<49 50 51 52 53 54 55 56>;
29584943d6fSEmmanuel Vadot			};
29684943d6fSEmmanuel Vadot
29784943d6fSEmmanuel Vadot			clkc_periphs: clock-controller@800 {
29884943d6fSEmmanuel Vadot				compatible = "amlogic,a1-peripherals-clkc";
29984943d6fSEmmanuel Vadot				reg = <0 0x800 0 0x104>;
30084943d6fSEmmanuel Vadot				#clock-cells = <1>;
30184943d6fSEmmanuel Vadot				clocks = <&clkc_pll CLKID_FCLK_DIV2>,
30284943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV3>,
30384943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV5>,
30484943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV7>,
30584943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_HIFI_PLL>,
30684943d6fSEmmanuel Vadot					 <&xtal>;
30784943d6fSEmmanuel Vadot				clock-names = "fclk_div2", "fclk_div3",
30884943d6fSEmmanuel Vadot					      "fclk_div5", "fclk_div7",
30984943d6fSEmmanuel Vadot					      "hifi_pll", "xtal";
31084943d6fSEmmanuel Vadot			};
31184943d6fSEmmanuel Vadot
31284943d6fSEmmanuel Vadot			i2c0: i2c@1400 {
31384943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
31484943d6fSEmmanuel Vadot				status = "disabled";
31584943d6fSEmmanuel Vadot				reg = <0x0 0x1400 0x0 0x20>;
31684943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
31784943d6fSEmmanuel Vadot				#address-cells = <1>;
31884943d6fSEmmanuel Vadot				#size-cells = <0>;
31984943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_A>;
32084943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
321c66ec88fSEmmanuel Vadot			};
322c66ec88fSEmmanuel Vadot
323c66ec88fSEmmanuel Vadot			uart_AO: serial@1c00 {
324aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,meson-a1-uart",
325c66ec88fSEmmanuel Vadot					     "amlogic,meson-ao-uart";
326c66ec88fSEmmanuel Vadot				reg = <0x0 0x1c00 0x0 0x18>;
327c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
328c66ec88fSEmmanuel Vadot				clocks = <&xtal>, <&xtal>, <&xtal>;
329c66ec88fSEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
330c66ec88fSEmmanuel Vadot				status = "disabled";
331c66ec88fSEmmanuel Vadot			};
332c66ec88fSEmmanuel Vadot
333c66ec88fSEmmanuel Vadot			uart_AO_B: serial@2000 {
334aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,meson-a1-uart",
335c66ec88fSEmmanuel Vadot					     "amlogic,meson-ao-uart";
336c66ec88fSEmmanuel Vadot				reg = <0x0 0x2000 0x0 0x18>;
337c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
338c66ec88fSEmmanuel Vadot				clocks = <&xtal>, <&xtal>, <&xtal>;
339c66ec88fSEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
340c66ec88fSEmmanuel Vadot				status = "disabled";
341c66ec88fSEmmanuel Vadot			};
342fac71e4eSEmmanuel Vadot
34384943d6fSEmmanuel Vadot			saradc: adc@2c00 {
34484943d6fSEmmanuel Vadot				compatible = "amlogic,meson-g12a-saradc",
34584943d6fSEmmanuel Vadot					"amlogic,meson-saradc";
34684943d6fSEmmanuel Vadot				reg = <0x0 0x2c00 0x0 0x48>;
34784943d6fSEmmanuel Vadot				#io-channel-cells = <1>;
34884943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
34984943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
35084943d6fSEmmanuel Vadot				clocks = <&xtal>,
35184943d6fSEmmanuel Vadot					<&clkc_periphs CLKID_SARADC_EN>,
35284943d6fSEmmanuel Vadot					<&clkc_periphs CLKID_SARADC>,
35384943d6fSEmmanuel Vadot					<&clkc_periphs CLKID_SARADC_SEL>;
35484943d6fSEmmanuel Vadot				clock-names = "clkin", "core",
35584943d6fSEmmanuel Vadot					"adc_clk", "adc_sel";
35684943d6fSEmmanuel Vadot				status = "disabled";
35784943d6fSEmmanuel Vadot			};
35884943d6fSEmmanuel Vadot
35984943d6fSEmmanuel Vadot			i2c1: i2c@5c00 {
36084943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
36184943d6fSEmmanuel Vadot				status = "disabled";
36284943d6fSEmmanuel Vadot				reg = <0x0 0x5c00 0x0 0x20>;
36384943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
36484943d6fSEmmanuel Vadot				#address-cells = <1>;
36584943d6fSEmmanuel Vadot				#size-cells = <0>;
36684943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_B>;
36784943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
36884943d6fSEmmanuel Vadot			};
36984943d6fSEmmanuel Vadot
37084943d6fSEmmanuel Vadot			i2c2: i2c@6800 {
37184943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
37284943d6fSEmmanuel Vadot				status = "disabled";
37384943d6fSEmmanuel Vadot				reg = <0x0 0x6800 0x0 0x20>;
37484943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>;
37584943d6fSEmmanuel Vadot				#address-cells = <1>;
37684943d6fSEmmanuel Vadot				#size-cells = <0>;
37784943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_C>;
37884943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
37984943d6fSEmmanuel Vadot			};
38084943d6fSEmmanuel Vadot
38184943d6fSEmmanuel Vadot			i2c3: i2c@6c00 {
38284943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-i2c";
38384943d6fSEmmanuel Vadot				status = "disabled";
38484943d6fSEmmanuel Vadot				reg = <0x0 0x6c00 0x0 0x20>;
38584943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
38684943d6fSEmmanuel Vadot				#address-cells = <1>;
38784943d6fSEmmanuel Vadot				#size-cells = <0>;
38884943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_I2C_M_D>;
38984943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_I2C_ID>;
39084943d6fSEmmanuel Vadot			};
39184943d6fSEmmanuel Vadot
39284943d6fSEmmanuel Vadot			usb2_phy1: phy@4000 {
39384943d6fSEmmanuel Vadot				compatible = "amlogic,a1-usb2-phy";
39484943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_USB_PHY_IN>;
39584943d6fSEmmanuel Vadot				clock-names = "xtal";
39684943d6fSEmmanuel Vadot				reg = <0x0 0x4000 0x0 0x60>;
39784943d6fSEmmanuel Vadot				resets = <&reset RESET_USBPHY>;
39884943d6fSEmmanuel Vadot				reset-names = "phy";
39984943d6fSEmmanuel Vadot				#phy-cells = <0>;
40084943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_USB_ID>;
40184943d6fSEmmanuel Vadot			};
40284943d6fSEmmanuel Vadot
403*0e8011faSEmmanuel Vadot			cpu_temp: temperature-sensor@4c00 {
404*0e8011faSEmmanuel Vadot				compatible = "amlogic,a1-cpu-thermal";
405*0e8011faSEmmanuel Vadot				reg = <0x0 0x4c00 0x0 0x50>;
406*0e8011faSEmmanuel Vadot				interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
407*0e8011faSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_TS>;
408*0e8011faSEmmanuel Vadot				assigned-clocks = <&clkc_periphs CLKID_TS>;
409*0e8011faSEmmanuel Vadot				assigned-clock-rates = <500000>;
410*0e8011faSEmmanuel Vadot				#thermal-sensor-cells = <0>;
411*0e8011faSEmmanuel Vadot				amlogic,ao-secure = <&sec_AO>;
412*0e8011faSEmmanuel Vadot			};
413*0e8011faSEmmanuel Vadot
41484943d6fSEmmanuel Vadot			hwrng: rng@5118 {
41584943d6fSEmmanuel Vadot				compatible = "amlogic,meson-rng";
41684943d6fSEmmanuel Vadot				reg = <0x0 0x5118 0x0 0x4>;
41784943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_OTP_ID>;
41884943d6fSEmmanuel Vadot			};
41984943d6fSEmmanuel Vadot
42084943d6fSEmmanuel Vadot			sec_AO: ao-secure@5a20 {
42184943d6fSEmmanuel Vadot				compatible = "amlogic,meson-gx-ao-secure", "syscon";
42284943d6fSEmmanuel Vadot				reg = <0x0 0x5a20 0x0 0x140>;
42384943d6fSEmmanuel Vadot				amlogic,has-chip-id;
42484943d6fSEmmanuel Vadot			};
42584943d6fSEmmanuel Vadot
42684943d6fSEmmanuel Vadot			clkc_pll: pll-clock-controller@7c80 {
42784943d6fSEmmanuel Vadot				compatible = "amlogic,a1-pll-clkc";
42884943d6fSEmmanuel Vadot				reg = <0 0x7c80 0 0x18c>;
42984943d6fSEmmanuel Vadot				#clock-cells = <1>;
43084943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_FIXPLL_IN>,
43184943d6fSEmmanuel Vadot					 <&clkc_periphs CLKID_HIFIPLL_IN>;
43284943d6fSEmmanuel Vadot				clock-names = "fixpll_in", "hifipll_in";
43384943d6fSEmmanuel Vadot			};
43484943d6fSEmmanuel Vadot
435*0e8011faSEmmanuel Vadot			sd_emmc: mmc@10000 {
43684943d6fSEmmanuel Vadot				compatible = "amlogic,meson-axg-mmc";
43784943d6fSEmmanuel Vadot				reg = <0x0 0x10000 0x0 0x800>;
43884943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
43984943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_SD_EMMC_A>,
44084943d6fSEmmanuel Vadot					 <&clkc_periphs CLKID_SD_EMMC>,
44184943d6fSEmmanuel Vadot					 <&clkc_pll CLKID_FCLK_DIV2>;
44284943d6fSEmmanuel Vadot				clock-names = "core",
44384943d6fSEmmanuel Vadot					      "clkin0",
44484943d6fSEmmanuel Vadot					      "clkin1";
44584943d6fSEmmanuel Vadot				assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_SEL2>;
44684943d6fSEmmanuel Vadot				assigned-clock-parents = <&xtal>;
44784943d6fSEmmanuel Vadot				resets = <&reset RESET_SD_EMMC_A>;
44884943d6fSEmmanuel Vadot				power-domains = <&pwrc PWRC_SD_EMMC_ID>;
44984943d6fSEmmanuel Vadot				status = "disabled";
45084943d6fSEmmanuel Vadot			};
45184943d6fSEmmanuel Vadot		};
45284943d6fSEmmanuel Vadot
45384943d6fSEmmanuel Vadot		usb: usb@fe004400 {
45484943d6fSEmmanuel Vadot			status = "disabled";
45584943d6fSEmmanuel Vadot			compatible = "amlogic,meson-a1-usb-ctrl";
45684943d6fSEmmanuel Vadot			reg = <0x0 0xfe004400 0x0 0xa0>;
45784943d6fSEmmanuel Vadot			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
45884943d6fSEmmanuel Vadot			#address-cells = <2>;
45984943d6fSEmmanuel Vadot			#size-cells = <2>;
46084943d6fSEmmanuel Vadot			ranges;
46184943d6fSEmmanuel Vadot
46284943d6fSEmmanuel Vadot			clocks = <&clkc_periphs CLKID_USB_CTRL>,
46384943d6fSEmmanuel Vadot				 <&clkc_periphs CLKID_USB_BUS>,
46484943d6fSEmmanuel Vadot				 <&clkc_periphs CLKID_USB_CTRL_IN>;
46584943d6fSEmmanuel Vadot			clock-names = "usb_ctrl", "usb_bus", "xtal_usb_ctrl";
46601950c46SEmmanuel Vadot			assigned-clocks = <&clkc_periphs CLKID_USB_BUS>;
46701950c46SEmmanuel Vadot			assigned-clock-rates = <64000000>;
46884943d6fSEmmanuel Vadot			resets = <&reset RESET_USBCTRL>;
46984943d6fSEmmanuel Vadot
47084943d6fSEmmanuel Vadot			dr_mode = "otg";
47184943d6fSEmmanuel Vadot
47284943d6fSEmmanuel Vadot			phys = <&usb2_phy1>;
47384943d6fSEmmanuel Vadot			phy-names = "usb2-phy1";
47484943d6fSEmmanuel Vadot
47584943d6fSEmmanuel Vadot			dwc3: usb@ff400000 {
47684943d6fSEmmanuel Vadot				compatible = "snps,dwc3";
47784943d6fSEmmanuel Vadot				reg = <0x0 0xff400000 0x0 0x100000>;
47884943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
47984943d6fSEmmanuel Vadot				dr_mode = "host";
48084943d6fSEmmanuel Vadot				snps,dis_u2_susphy_quirk;
48184943d6fSEmmanuel Vadot				snps,quirk-frame-length-adjustment = <0x20>;
48284943d6fSEmmanuel Vadot				snps,parkmode-disable-ss-quirk;
48384943d6fSEmmanuel Vadot			};
48484943d6fSEmmanuel Vadot
48584943d6fSEmmanuel Vadot			dwc2: usb@ff500000 {
48684943d6fSEmmanuel Vadot				compatible = "amlogic,meson-a1-usb", "snps,dwc2";
48784943d6fSEmmanuel Vadot				reg = <0x0 0xff500000 0x0 0x40000>;
48884943d6fSEmmanuel Vadot				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
48984943d6fSEmmanuel Vadot				phys = <&usb2_phy1>;
49084943d6fSEmmanuel Vadot				phy-names = "usb2-phy";
49184943d6fSEmmanuel Vadot				clocks = <&clkc_periphs CLKID_USB_PHY>;
49284943d6fSEmmanuel Vadot				clock-names = "otg";
49384943d6fSEmmanuel Vadot				dr_mode = "peripheral";
49484943d6fSEmmanuel Vadot				g-rx-fifo-size = <192>;
49584943d6fSEmmanuel Vadot				g-np-tx-fifo-size = <128>;
49684943d6fSEmmanuel Vadot				g-tx-fifo-size = <128 128 16 16 16>;
497fac71e4eSEmmanuel Vadot			};
498c66ec88fSEmmanuel Vadot		};
499c66ec88fSEmmanuel Vadot
500c66ec88fSEmmanuel Vadot		gic: interrupt-controller@ff901000 {
501c66ec88fSEmmanuel Vadot			compatible = "arm,gic-400";
502c66ec88fSEmmanuel Vadot			reg = <0x0 0xff901000 0x0 0x1000>,
503c66ec88fSEmmanuel Vadot			      <0x0 0xff902000 0x0 0x2000>,
504c66ec88fSEmmanuel Vadot			      <0x0 0xff904000 0x0 0x2000>,
505c66ec88fSEmmanuel Vadot			      <0x0 0xff906000 0x0 0x2000>;
506c66ec88fSEmmanuel Vadot			interrupt-controller;
507c66ec88fSEmmanuel Vadot			interrupts = <GIC_PPI 9
508c66ec88fSEmmanuel Vadot				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
509c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
510c66ec88fSEmmanuel Vadot			#address-cells = <0>;
511c66ec88fSEmmanuel Vadot		};
512c66ec88fSEmmanuel Vadot	};
513c66ec88fSEmmanuel Vadot
514c66ec88fSEmmanuel Vadot	timer {
515c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
516c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 13
517c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
518c66ec88fSEmmanuel Vadot			     <GIC_PPI 14
519c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
520c66ec88fSEmmanuel Vadot			     <GIC_PPI 11
521c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
522c66ec88fSEmmanuel Vadot			     <GIC_PPI 10
523c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
524c66ec88fSEmmanuel Vadot	};
525c66ec88fSEmmanuel Vadot
526c66ec88fSEmmanuel Vadot	xtal: xtal-clk {
527c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
528c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
529c66ec88fSEmmanuel Vadot		clock-output-names = "xtal";
530c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
531c66ec88fSEmmanuel Vadot	};
532c66ec88fSEmmanuel Vadot};
533