19c8c52f7SJianxin Pan// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
29c8c52f7SJianxin Pan/*
39c8c52f7SJianxin Pan * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
49c8c52f7SJianxin Pan */
59c8c52f7SJianxin Pan
69baf7d6bSNeil Armstrong#include <dt-bindings/phy/phy.h>
79c8c52f7SJianxin Pan#include <dt-bindings/gpio/gpio.h>
85dc0f28fSJerome Brunet#include <dt-bindings/clock/axg-audio-clkc.h>
9965c827aSJerome Brunet#include <dt-bindings/clock/g12a-clkc.h>
10820873cfSNeil Armstrong#include <dt-bindings/clock/g12a-aoclkc.h>
119c8c52f7SJianxin Pan#include <dt-bindings/interrupt-controller/irq.h>
129c8c52f7SJianxin Pan#include <dt-bindings/interrupt-controller/arm-gic.h>
139baf7d6bSNeil Armstrong#include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
149c8c52f7SJianxin Pan
159c8c52f7SJianxin Pan/ {
169c8c52f7SJianxin Pan	compatible = "amlogic,g12a";
179c8c52f7SJianxin Pan
189c8c52f7SJianxin Pan	interrupt-parent = <&gic>;
199c8c52f7SJianxin Pan	#address-cells = <2>;
209c8c52f7SJianxin Pan	#size-cells = <2>;
219c8c52f7SJianxin Pan
229c8c52f7SJianxin Pan	cpus {
239c8c52f7SJianxin Pan		#address-cells = <0x2>;
249c8c52f7SJianxin Pan		#size-cells = <0x0>;
259c8c52f7SJianxin Pan
269c8c52f7SJianxin Pan		cpu0: cpu@0 {
279c8c52f7SJianxin Pan			device_type = "cpu";
2831af04cdSRob Herring			compatible = "arm,cortex-a53";
299c8c52f7SJianxin Pan			reg = <0x0 0x0>;
309c8c52f7SJianxin Pan			enable-method = "psci";
319c8c52f7SJianxin Pan			next-level-cache = <&l2>;
329c8c52f7SJianxin Pan		};
339c8c52f7SJianxin Pan
349c8c52f7SJianxin Pan		cpu1: cpu@1 {
359c8c52f7SJianxin Pan			device_type = "cpu";
3631af04cdSRob Herring			compatible = "arm,cortex-a53";
379c8c52f7SJianxin Pan			reg = <0x0 0x1>;
389c8c52f7SJianxin Pan			enable-method = "psci";
399c8c52f7SJianxin Pan			next-level-cache = <&l2>;
409c8c52f7SJianxin Pan		};
419c8c52f7SJianxin Pan
429c8c52f7SJianxin Pan		cpu2: cpu@2 {
439c8c52f7SJianxin Pan			device_type = "cpu";
4431af04cdSRob Herring			compatible = "arm,cortex-a53";
459c8c52f7SJianxin Pan			reg = <0x0 0x2>;
469c8c52f7SJianxin Pan			enable-method = "psci";
479c8c52f7SJianxin Pan			next-level-cache = <&l2>;
489c8c52f7SJianxin Pan		};
499c8c52f7SJianxin Pan
509c8c52f7SJianxin Pan		cpu3: cpu@3 {
519c8c52f7SJianxin Pan			device_type = "cpu";
5231af04cdSRob Herring			compatible = "arm,cortex-a53";
539c8c52f7SJianxin Pan			reg = <0x0 0x3>;
549c8c52f7SJianxin Pan			enable-method = "psci";
559c8c52f7SJianxin Pan			next-level-cache = <&l2>;
569c8c52f7SJianxin Pan		};
579c8c52f7SJianxin Pan
589c8c52f7SJianxin Pan		l2: l2-cache0 {
599c8c52f7SJianxin Pan			compatible = "cache";
609c8c52f7SJianxin Pan		};
619c8c52f7SJianxin Pan	};
629c8c52f7SJianxin Pan
63965c827aSJerome Brunet	efuse: efuse {
64965c827aSJerome Brunet		compatible = "amlogic,meson-gxbb-efuse";
65965c827aSJerome Brunet		clocks = <&clkc CLKID_EFUSE>;
66965c827aSJerome Brunet		#address-cells = <1>;
67965c827aSJerome Brunet		#size-cells = <1>;
68965c827aSJerome Brunet		read-only;
69965c827aSJerome Brunet	};
70965c827aSJerome Brunet
719c8c52f7SJianxin Pan	psci {
729c8c52f7SJianxin Pan		compatible = "arm,psci-1.0";
739c8c52f7SJianxin Pan		method = "smc";
749c8c52f7SJianxin Pan	};
759c8c52f7SJianxin Pan
769c8c52f7SJianxin Pan	reserved-memory {
779c8c52f7SJianxin Pan		#address-cells = <2>;
789c8c52f7SJianxin Pan		#size-cells = <2>;
799c8c52f7SJianxin Pan		ranges;
809c8c52f7SJianxin Pan
819c8c52f7SJianxin Pan		/* 3 MiB reserved for ARM Trusted Firmware (BL31) */
829c8c52f7SJianxin Pan		secmon_reserved: secmon@5000000 {
839c8c52f7SJianxin Pan			reg = <0x0 0x05000000 0x0 0x300000>;
849c8c52f7SJianxin Pan			no-map;
859c8c52f7SJianxin Pan		};
86e2cffeb3SNeil Armstrong
87e2cffeb3SNeil Armstrong		linux,cma {
88e2cffeb3SNeil Armstrong			compatible = "shared-dma-pool";
89e2cffeb3SNeil Armstrong			reusable;
90e2cffeb3SNeil Armstrong			size = <0x0 0x10000000>;
91e2cffeb3SNeil Armstrong			alignment = <0x0 0x400000>;
92e2cffeb3SNeil Armstrong			linux,cma-default;
93e2cffeb3SNeil Armstrong		};
949c8c52f7SJianxin Pan	};
959c8c52f7SJianxin Pan
96bd395152SJerome Brunet	sm: secure-monitor {
97bd395152SJerome Brunet		compatible = "amlogic,meson-gxbb-sm";
98bd395152SJerome Brunet	};
99bd395152SJerome Brunet
1009c8c52f7SJianxin Pan	soc {
1019c8c52f7SJianxin Pan		compatible = "simple-bus";
1029c8c52f7SJianxin Pan		#address-cells = <2>;
1039c8c52f7SJianxin Pan		#size-cells = <2>;
1049c8c52f7SJianxin Pan		ranges;
1059c8c52f7SJianxin Pan
106503f5fedSJerome Brunet		apb: bus@ff600000 {
1079c8c52f7SJianxin Pan			compatible = "simple-bus";
108503f5fedSJerome Brunet			reg = <0x0 0xff600000 0x0 0x200000>;
1099c8c52f7SJianxin Pan			#address-cells = <2>;
1109c8c52f7SJianxin Pan			#size-cells = <2>;
111503f5fedSJerome Brunet			ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>;
112503f5fedSJerome Brunet
113083feecdSNeil Armstrong			hdmi_tx: hdmi-tx@0 {
114083feecdSNeil Armstrong				compatible = "amlogic,meson-g12a-dw-hdmi";
115083feecdSNeil Armstrong				reg = <0x0 0x0 0x0 0x10000>;
116083feecdSNeil Armstrong				interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
117083feecdSNeil Armstrong				resets = <&reset RESET_HDMITX_CAPB3>,
118083feecdSNeil Armstrong					 <&reset RESET_HDMITX_PHY>,
119083feecdSNeil Armstrong					 <&reset RESET_HDMITX>;
120083feecdSNeil Armstrong				reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
121083feecdSNeil Armstrong				clocks = <&clkc CLKID_HDMI>,
122083feecdSNeil Armstrong					 <&clkc CLKID_HTX_PCLK>,
123083feecdSNeil Armstrong					 <&clkc CLKID_VPU_INTR>;
124083feecdSNeil Armstrong				clock-names = "isfr", "iahb", "venci";
125083feecdSNeil Armstrong				#address-cells = <1>;
126083feecdSNeil Armstrong				#size-cells = <0>;
127083feecdSNeil Armstrong				status = "disabled";
128083feecdSNeil Armstrong
129083feecdSNeil Armstrong				/* VPU VENC Input */
130083feecdSNeil Armstrong				hdmi_tx_venc_port: port@0 {
131083feecdSNeil Armstrong					reg = <0>;
132083feecdSNeil Armstrong
133083feecdSNeil Armstrong					hdmi_tx_in: endpoint {
134083feecdSNeil Armstrong						remote-endpoint = <&hdmi_tx_out>;
135083feecdSNeil Armstrong					};
136083feecdSNeil Armstrong				};
137083feecdSNeil Armstrong
138083feecdSNeil Armstrong				/* TMDS Output */
139083feecdSNeil Armstrong				hdmi_tx_tmds_port: port@1 {
140083feecdSNeil Armstrong					reg = <1>;
141083feecdSNeil Armstrong				};
142083feecdSNeil Armstrong			};
143083feecdSNeil Armstrong
144503f5fedSJerome Brunet			periphs: bus@34400 {
145503f5fedSJerome Brunet				compatible = "simple-bus";
146503f5fedSJerome Brunet				reg = <0x0 0x34400 0x0 0x400>;
147503f5fedSJerome Brunet				#address-cells = <2>;
148503f5fedSJerome Brunet				#size-cells = <2>;
149503f5fedSJerome Brunet				ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>;
15011a7bea1SJerome Brunet
15111a7bea1SJerome Brunet				periphs_pinctrl: pinctrl@40 {
15211a7bea1SJerome Brunet					compatible = "amlogic,meson-g12a-periphs-pinctrl";
15311a7bea1SJerome Brunet					#address-cells = <2>;
15411a7bea1SJerome Brunet					#size-cells = <2>;
15511a7bea1SJerome Brunet					ranges;
15611a7bea1SJerome Brunet
15711a7bea1SJerome Brunet					gpio: bank@40 {
15811a7bea1SJerome Brunet						reg = <0x0 0x40  0x0 0x4c>,
15911a7bea1SJerome Brunet						      <0x0 0xe8  0x0 0x18>,
16011a7bea1SJerome Brunet						      <0x0 0x120 0x0 0x18>,
16111a7bea1SJerome Brunet						      <0x0 0x2c0 0x0 0x40>,
16211a7bea1SJerome Brunet						      <0x0 0x340 0x0 0x1c>;
16311a7bea1SJerome Brunet						reg-names = "gpio",
16411a7bea1SJerome Brunet							    "pull",
16511a7bea1SJerome Brunet							    "pull-enable",
16611a7bea1SJerome Brunet							    "mux",
16711a7bea1SJerome Brunet							    "ds";
16811a7bea1SJerome Brunet						gpio-controller;
16911a7bea1SJerome Brunet						#gpio-cells = <2>;
17011a7bea1SJerome Brunet						gpio-ranges = <&periphs_pinctrl 0 0 86>;
17111a7bea1SJerome Brunet					};
172ff4f8b6cSNeil Armstrong
17391516e54SNeil Armstrong					cec_ao_a_h_pins: cec_ao_a_h {
17491516e54SNeil Armstrong						mux {
17591516e54SNeil Armstrong							groups = "cec_ao_a_h";
17691516e54SNeil Armstrong							function = "cec_ao_a_h";
17791516e54SNeil Armstrong							bias-disable;
17891516e54SNeil Armstrong						};
17991516e54SNeil Armstrong					};
18091516e54SNeil Armstrong
18191516e54SNeil Armstrong					cec_ao_b_h_pins: cec_ao_b_h {
18291516e54SNeil Armstrong						mux {
18391516e54SNeil Armstrong							groups = "cec_ao_b_h";
18491516e54SNeil Armstrong							function = "cec_ao_b_h";
18591516e54SNeil Armstrong							bias-disable;
18691516e54SNeil Armstrong						};
18791516e54SNeil Armstrong					};
18891516e54SNeil Armstrong
1894759fd87SJerome Brunet					emmc_pins: emmc {
1904759fd87SJerome Brunet						mux-0 {
1914759fd87SJerome Brunet							groups = "emmc_nand_d0",
1924759fd87SJerome Brunet								 "emmc_nand_d1",
1934759fd87SJerome Brunet								 "emmc_nand_d2",
1944759fd87SJerome Brunet								 "emmc_nand_d3",
1954759fd87SJerome Brunet								 "emmc_nand_d4",
1964759fd87SJerome Brunet								 "emmc_nand_d5",
1974759fd87SJerome Brunet								 "emmc_nand_d6",
1984759fd87SJerome Brunet								 "emmc_nand_d7",
1994759fd87SJerome Brunet								 "emmc_cmd";
2004759fd87SJerome Brunet							function = "emmc";
2014759fd87SJerome Brunet							bias-pull-up;
2024759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2034759fd87SJerome Brunet						};
2044759fd87SJerome Brunet
2054759fd87SJerome Brunet						mux-1 {
2064759fd87SJerome Brunet							groups = "emmc_clk";
2074759fd87SJerome Brunet							function = "emmc";
2084759fd87SJerome Brunet							bias-disable;
2094759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2104759fd87SJerome Brunet						};
2114759fd87SJerome Brunet					};
2124759fd87SJerome Brunet
2134759fd87SJerome Brunet					emmc_ds_pins: emmc-ds {
2144759fd87SJerome Brunet						mux {
2154759fd87SJerome Brunet							groups = "emmc_nand_ds";
2164759fd87SJerome Brunet							function = "emmc";
2174759fd87SJerome Brunet							bias-pull-down;
2184759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2194759fd87SJerome Brunet						};
2204759fd87SJerome Brunet					};
2214759fd87SJerome Brunet
2224759fd87SJerome Brunet					emmc_clk_gate_pins: emmc_clk_gate {
2234759fd87SJerome Brunet						mux {
2244759fd87SJerome Brunet							groups = "BOOT_8";
2254759fd87SJerome Brunet							function = "gpio_periphs";
2264759fd87SJerome Brunet							bias-pull-down;
2274759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2284759fd87SJerome Brunet						};
2294759fd87SJerome Brunet					};
2304759fd87SJerome Brunet
231083feecdSNeil Armstrong					hdmitx_ddc_pins: hdmitx_ddc {
232083feecdSNeil Armstrong						mux {
233083feecdSNeil Armstrong							groups = "hdmitx_sda",
234083feecdSNeil Armstrong								 "hdmitx_sck";
235083feecdSNeil Armstrong							function = "hdmitx";
236083feecdSNeil Armstrong							bias-disable;
237083feecdSNeil Armstrong						};
238083feecdSNeil Armstrong					};
239083feecdSNeil Armstrong
240083feecdSNeil Armstrong					hdmitx_hpd_pins: hdmitx_hpd {
241083feecdSNeil Armstrong						mux {
242083feecdSNeil Armstrong							groups = "hdmitx_hpd_in";
243083feecdSNeil Armstrong							function = "hdmitx";
244083feecdSNeil Armstrong							bias-disable;
245083feecdSNeil Armstrong						};
246083feecdSNeil Armstrong					};
247083feecdSNeil Armstrong
2489951aca6SGuillaume La Roque
2499951aca6SGuillaume La Roque					i2c0_sda_c_pins: i2c0-sda-c {
2509951aca6SGuillaume La Roque						mux {
2519951aca6SGuillaume La Roque							groups = "i2c0_sda_c";
2529951aca6SGuillaume La Roque							function = "i2c0";
2539951aca6SGuillaume La Roque							bias-disable;
2549951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2559951aca6SGuillaume La Roque
2569951aca6SGuillaume La Roque						};
2579951aca6SGuillaume La Roque					};
2589951aca6SGuillaume La Roque
2599951aca6SGuillaume La Roque					i2c0_sck_c_pins: i2c0-sck-c {
2609951aca6SGuillaume La Roque						mux {
2619951aca6SGuillaume La Roque							groups = "i2c0_sck_c";
2629951aca6SGuillaume La Roque							function = "i2c0";
2639951aca6SGuillaume La Roque							bias-disable;
2649951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2659951aca6SGuillaume La Roque						};
2669951aca6SGuillaume La Roque					};
2679951aca6SGuillaume La Roque
2689951aca6SGuillaume La Roque					i2c0_sda_z0_pins: i2c0-sda-z0 {
2699951aca6SGuillaume La Roque						mux {
2709951aca6SGuillaume La Roque							groups = "i2c0_sda_z0";
2719951aca6SGuillaume La Roque							function = "i2c0";
2729951aca6SGuillaume La Roque							bias-disable;
2739951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2749951aca6SGuillaume La Roque						};
2759951aca6SGuillaume La Roque					};
2769951aca6SGuillaume La Roque
2779951aca6SGuillaume La Roque					i2c0_sck_z1_pins: i2c0-sck-z1 {
2789951aca6SGuillaume La Roque						mux {
2799951aca6SGuillaume La Roque							groups = "i2c0_sck_z1";
2809951aca6SGuillaume La Roque							function = "i2c0";
2819951aca6SGuillaume La Roque							bias-disable;
2829951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2839951aca6SGuillaume La Roque						};
2849951aca6SGuillaume La Roque					};
2859951aca6SGuillaume La Roque
2869951aca6SGuillaume La Roque					i2c0_sda_z7_pins: i2c0-sda-z7 {
2879951aca6SGuillaume La Roque						mux {
2889951aca6SGuillaume La Roque							groups = "i2c0_sda_z7";
2899951aca6SGuillaume La Roque							function = "i2c0";
2909951aca6SGuillaume La Roque							bias-disable;
2919951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2929951aca6SGuillaume La Roque						};
2939951aca6SGuillaume La Roque					};
2949951aca6SGuillaume La Roque
2959951aca6SGuillaume La Roque					i2c0_sda_z8_pins: i2c0-sda-z8 {
2969951aca6SGuillaume La Roque						mux {
2979951aca6SGuillaume La Roque							groups = "i2c0_sda_z8";
2989951aca6SGuillaume La Roque							function = "i2c0";
2999951aca6SGuillaume La Roque							bias-disable;
3009951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3019951aca6SGuillaume La Roque						};
3029951aca6SGuillaume La Roque					};
3039951aca6SGuillaume La Roque
3049951aca6SGuillaume La Roque					i2c1_sda_x_pins: i2c1-sda-x {
3059951aca6SGuillaume La Roque						mux {
3069951aca6SGuillaume La Roque							groups = "i2c1_sda_x";
3079951aca6SGuillaume La Roque							function = "i2c1";
3089951aca6SGuillaume La Roque							bias-disable;
3099951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3109951aca6SGuillaume La Roque						};
3119951aca6SGuillaume La Roque					};
3129951aca6SGuillaume La Roque
3139951aca6SGuillaume La Roque					i2c1_sck_x_pins: i2c1-sck-x {
3149951aca6SGuillaume La Roque						mux {
3159951aca6SGuillaume La Roque							groups = "i2c1_sck_x";
3169951aca6SGuillaume La Roque							function = "i2c1";
3179951aca6SGuillaume La Roque							bias-disable;
3189951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3199951aca6SGuillaume La Roque						};
3209951aca6SGuillaume La Roque					};
3219951aca6SGuillaume La Roque
3229951aca6SGuillaume La Roque					i2c1_sda_h2_pins: i2c1-sda-h2 {
3239951aca6SGuillaume La Roque						mux {
3249951aca6SGuillaume La Roque							groups = "i2c1_sda_h2";
3259951aca6SGuillaume La Roque							function = "i2c1";
3269951aca6SGuillaume La Roque							bias-disable;
3279951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3289951aca6SGuillaume La Roque						};
3299951aca6SGuillaume La Roque					};
3309951aca6SGuillaume La Roque
3319951aca6SGuillaume La Roque					i2c1_sck_h3_pins: i2c1-sck-h3 {
3329951aca6SGuillaume La Roque						mux {
3339951aca6SGuillaume La Roque							groups = "i2c1_sck_h3";
3349951aca6SGuillaume La Roque							function = "i2c1";
3359951aca6SGuillaume La Roque							bias-disable;
3369951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3379951aca6SGuillaume La Roque						};
3389951aca6SGuillaume La Roque					};
3399951aca6SGuillaume La Roque
3409951aca6SGuillaume La Roque					i2c1_sda_h6_pins: i2c1-sda-h6 {
3419951aca6SGuillaume La Roque						mux {
3429951aca6SGuillaume La Roque							groups = "i2c1_sda_h6";
3439951aca6SGuillaume La Roque							function = "i2c1";
3449951aca6SGuillaume La Roque							bias-disable;
3459951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3469951aca6SGuillaume La Roque						};
3479951aca6SGuillaume La Roque					};
3489951aca6SGuillaume La Roque
3499951aca6SGuillaume La Roque					i2c1_sck_h7_pins: i2c1-sck-h7 {
3509951aca6SGuillaume La Roque						mux {
3519951aca6SGuillaume La Roque							groups = "i2c1_sck_h7";
3529951aca6SGuillaume La Roque							function = "i2c1";
3539951aca6SGuillaume La Roque							bias-disable;
3549951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3559951aca6SGuillaume La Roque						};
3569951aca6SGuillaume La Roque					};
3579951aca6SGuillaume La Roque
3589951aca6SGuillaume La Roque					i2c2_sda_x_pins: i2c2-sda-x {
3599951aca6SGuillaume La Roque						mux {
3609951aca6SGuillaume La Roque							groups = "i2c2_sda_x";
3619951aca6SGuillaume La Roque							function = "i2c2";
3629951aca6SGuillaume La Roque							bias-disable;
3639951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3649951aca6SGuillaume La Roque						};
3659951aca6SGuillaume La Roque					};
3669951aca6SGuillaume La Roque
3679951aca6SGuillaume La Roque					i2c2_sck_x_pins: i2c2-sck-x {
3689951aca6SGuillaume La Roque						mux {
3699951aca6SGuillaume La Roque							groups = "i2c2_sck_x";
3709951aca6SGuillaume La Roque							function = "i2c2";
3719951aca6SGuillaume La Roque							bias-disable;
3729951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3739951aca6SGuillaume La Roque						};
3749951aca6SGuillaume La Roque					};
3759951aca6SGuillaume La Roque
3769951aca6SGuillaume La Roque					i2c2_sda_z_pins: i2c2-sda-z {
3779951aca6SGuillaume La Roque						mux {
3789951aca6SGuillaume La Roque							groups = "i2c2_sda_z";
3799951aca6SGuillaume La Roque							function = "i2c2";
3809951aca6SGuillaume La Roque							bias-disable;
3819951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3829951aca6SGuillaume La Roque						};
3839951aca6SGuillaume La Roque					};
3849951aca6SGuillaume La Roque
3859951aca6SGuillaume La Roque					i2c2_sck_z_pins: i2c2-sck-z {
3869951aca6SGuillaume La Roque						mux {
3879951aca6SGuillaume La Roque							groups = "i2c2_sck_z";
3889951aca6SGuillaume La Roque							function = "i2c2";
3899951aca6SGuillaume La Roque							bias-disable;
3909951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3919951aca6SGuillaume La Roque						};
3929951aca6SGuillaume La Roque					};
3939951aca6SGuillaume La Roque
3949951aca6SGuillaume La Roque					i2c3_sda_h_pins: i2c3-sda-h {
3959951aca6SGuillaume La Roque						mux {
3969951aca6SGuillaume La Roque							groups = "i2c3_sda_h";
3979951aca6SGuillaume La Roque							function = "i2c3";
3989951aca6SGuillaume La Roque							bias-disable;
3999951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4009951aca6SGuillaume La Roque						};
4019951aca6SGuillaume La Roque					};
4029951aca6SGuillaume La Roque
4039951aca6SGuillaume La Roque					i2c3_sck_h_pins: i2c3-sck-h {
4049951aca6SGuillaume La Roque						mux {
4059951aca6SGuillaume La Roque							groups = "i2c3_sck_h";
4069951aca6SGuillaume La Roque							function = "i2c3";
4079951aca6SGuillaume La Roque							bias-disable;
4089951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4099951aca6SGuillaume La Roque						};
4109951aca6SGuillaume La Roque					};
4119951aca6SGuillaume La Roque
4129951aca6SGuillaume La Roque					i2c3_sda_a_pins: i2c3-sda-a {
4139951aca6SGuillaume La Roque						mux {
4149951aca6SGuillaume La Roque							groups = "i2c3_sda_a";
4159951aca6SGuillaume La Roque							function = "i2c3";
4169951aca6SGuillaume La Roque							bias-disable;
4179951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4189951aca6SGuillaume La Roque						};
4199951aca6SGuillaume La Roque					};
4209951aca6SGuillaume La Roque
4219951aca6SGuillaume La Roque					i2c3_sck_a_pins: i2c3-sck-a {
4229951aca6SGuillaume La Roque						mux {
4239951aca6SGuillaume La Roque							groups = "i2c3_sck_a";
4249951aca6SGuillaume La Roque							function = "i2c3";
4259951aca6SGuillaume La Roque							bias-disable;
4269951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4279951aca6SGuillaume La Roque						};
4289951aca6SGuillaume La Roque					};
4299951aca6SGuillaume La Roque
430bb23b125SNeil Armstrong					pwm_a_pins: pwm-a {
431bb23b125SNeil Armstrong						mux {
432bb23b125SNeil Armstrong							groups = "pwm_a";
433bb23b125SNeil Armstrong							function = "pwm_a";
434bb23b125SNeil Armstrong							bias-disable;
435bb23b125SNeil Armstrong						};
436bb23b125SNeil Armstrong					};
437bb23b125SNeil Armstrong
438bb23b125SNeil Armstrong					pwm_b_x7_pins: pwm-b-x7 {
439bb23b125SNeil Armstrong						mux {
440bb23b125SNeil Armstrong							groups = "pwm_b_x7";
441bb23b125SNeil Armstrong							function = "pwm_b";
442bb23b125SNeil Armstrong							bias-disable;
443bb23b125SNeil Armstrong						};
444bb23b125SNeil Armstrong					};
445bb23b125SNeil Armstrong
446bb23b125SNeil Armstrong					pwm_b_x19_pins: pwm-b-x19 {
447bb23b125SNeil Armstrong						mux {
448bb23b125SNeil Armstrong							groups = "pwm_b_x19";
449bb23b125SNeil Armstrong							function = "pwm_b";
450bb23b125SNeil Armstrong							bias-disable;
451bb23b125SNeil Armstrong						};
452bb23b125SNeil Armstrong					};
453bb23b125SNeil Armstrong
454bb23b125SNeil Armstrong					pwm_c_c_pins: pwm-c-c {
455bb23b125SNeil Armstrong						mux {
456bb23b125SNeil Armstrong							groups = "pwm_c_c";
457bb23b125SNeil Armstrong							function = "pwm_c";
458bb23b125SNeil Armstrong							bias-disable;
459bb23b125SNeil Armstrong						};
460bb23b125SNeil Armstrong					};
461bb23b125SNeil Armstrong
462bb23b125SNeil Armstrong					pwm_c_x5_pins: pwm-c-x5 {
463bb23b125SNeil Armstrong						mux {
464bb23b125SNeil Armstrong							groups = "pwm_c_x5";
465bb23b125SNeil Armstrong							function = "pwm_c";
466bb23b125SNeil Armstrong							bias-disable;
467bb23b125SNeil Armstrong						};
468bb23b125SNeil Armstrong					};
469bb23b125SNeil Armstrong
470bb23b125SNeil Armstrong					pwm_c_x8_pins: pwm-c-x8 {
471bb23b125SNeil Armstrong						mux {
472bb23b125SNeil Armstrong							groups = "pwm_c_x8";
473bb23b125SNeil Armstrong							function = "pwm_c";
474bb23b125SNeil Armstrong							bias-disable;
475bb23b125SNeil Armstrong						};
476bb23b125SNeil Armstrong					};
477bb23b125SNeil Armstrong
478bb23b125SNeil Armstrong					pwm_d_x3_pins: pwm-d-x3 {
479bb23b125SNeil Armstrong						mux {
480bb23b125SNeil Armstrong							groups = "pwm_d_x3";
481bb23b125SNeil Armstrong							function = "pwm_d";
482bb23b125SNeil Armstrong							bias-disable;
483bb23b125SNeil Armstrong						};
484bb23b125SNeil Armstrong					};
485bb23b125SNeil Armstrong
486bb23b125SNeil Armstrong					pwm_d_x6_pins: pwm-d-x6 {
487bb23b125SNeil Armstrong						mux {
488bb23b125SNeil Armstrong							groups = "pwm_d_x6";
489bb23b125SNeil Armstrong							function = "pwm_d";
490bb23b125SNeil Armstrong							bias-disable;
491bb23b125SNeil Armstrong						};
492bb23b125SNeil Armstrong					};
493bb23b125SNeil Armstrong
494bb23b125SNeil Armstrong					pwm_e_pins: pwm-e {
495bb23b125SNeil Armstrong						mux {
496bb23b125SNeil Armstrong							groups = "pwm_e";
497bb23b125SNeil Armstrong							function = "pwm_e";
498bb23b125SNeil Armstrong							bias-disable;
499bb23b125SNeil Armstrong						};
500bb23b125SNeil Armstrong					};
501bb23b125SNeil Armstrong
502bb23b125SNeil Armstrong					pwm_f_x_pins: pwm-f-x {
503bb23b125SNeil Armstrong						mux {
504bb23b125SNeil Armstrong							groups = "pwm_f_x";
505bb23b125SNeil Armstrong							function = "pwm_f";
506bb23b125SNeil Armstrong							bias-disable;
507bb23b125SNeil Armstrong						};
508bb23b125SNeil Armstrong					};
509bb23b125SNeil Armstrong
510bb23b125SNeil Armstrong					pwm_f_h_pins: pwm-f-h {
511bb23b125SNeil Armstrong						mux {
512bb23b125SNeil Armstrong							groups = "pwm_f_h";
513bb23b125SNeil Armstrong							function = "pwm_f";
514bb23b125SNeil Armstrong							bias-disable;
515bb23b125SNeil Armstrong						};
516bb23b125SNeil Armstrong					};
517bb23b125SNeil Armstrong
5184759fd87SJerome Brunet					sdcard_c_pins: sdcard_c {
5194759fd87SJerome Brunet						mux-0 {
5204759fd87SJerome Brunet							groups = "sdcard_d0_c",
5214759fd87SJerome Brunet								 "sdcard_d1_c",
5224759fd87SJerome Brunet								 "sdcard_d2_c",
5234759fd87SJerome Brunet								 "sdcard_d3_c",
5244759fd87SJerome Brunet								 "sdcard_cmd_c";
5254759fd87SJerome Brunet							function = "sdcard";
5264759fd87SJerome Brunet							bias-pull-up;
5274759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5284759fd87SJerome Brunet						};
5294759fd87SJerome Brunet
5304759fd87SJerome Brunet						mux-1 {
5314759fd87SJerome Brunet							groups = "sdcard_clk_c";
5324759fd87SJerome Brunet							function = "sdcard";
5334759fd87SJerome Brunet							bias-disable;
5344759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5354759fd87SJerome Brunet						};
5364759fd87SJerome Brunet					};
5374759fd87SJerome Brunet
5384759fd87SJerome Brunet					sdcard_clk_gate_c_pins: sdcard_clk_gate_c {
5394759fd87SJerome Brunet						mux {
5404759fd87SJerome Brunet							groups = "GPIOC_4";
5414759fd87SJerome Brunet							function = "gpio_periphs";
5424759fd87SJerome Brunet							bias-pull-down;
5434759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5444759fd87SJerome Brunet						};
5454759fd87SJerome Brunet					};
5464759fd87SJerome Brunet
5474759fd87SJerome Brunet					sdcard_z_pins: sdcard_z {
5484759fd87SJerome Brunet						mux-0 {
5494759fd87SJerome Brunet							groups = "sdcard_d0_z",
5504759fd87SJerome Brunet								 "sdcard_d1_z",
5514759fd87SJerome Brunet								 "sdcard_d2_z",
5524759fd87SJerome Brunet								 "sdcard_d3_z",
5534759fd87SJerome Brunet								 "sdcard_cmd_z";
5544759fd87SJerome Brunet							function = "sdcard";
5554759fd87SJerome Brunet							bias-pull-up;
5564759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5574759fd87SJerome Brunet						};
5584759fd87SJerome Brunet
5594759fd87SJerome Brunet						mux-1 {
5604759fd87SJerome Brunet							groups = "sdcard_clk_z";
5614759fd87SJerome Brunet							function = "sdcard";
5624759fd87SJerome Brunet							bias-disable;
5634759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5644759fd87SJerome Brunet						};
5654759fd87SJerome Brunet					};
5664759fd87SJerome Brunet
5674759fd87SJerome Brunet					sdcard_clk_gate_z_pins: sdcard_clk_gate_z {
5684759fd87SJerome Brunet						mux {
5694759fd87SJerome Brunet							groups = "GPIOZ_6";
5704759fd87SJerome Brunet							function = "gpio_periphs";
5714759fd87SJerome Brunet							bias-pull-down;
5724759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5734759fd87SJerome Brunet						};
5744759fd87SJerome Brunet					};
5754759fd87SJerome Brunet
576ff4f8b6cSNeil Armstrong					uart_a_pins: uart-a {
577ff4f8b6cSNeil Armstrong						mux {
578ff4f8b6cSNeil Armstrong							groups = "uart_a_tx",
579ff4f8b6cSNeil Armstrong								 "uart_a_rx";
580ff4f8b6cSNeil Armstrong							function = "uart_a";
581ff4f8b6cSNeil Armstrong							bias-disable;
582ff4f8b6cSNeil Armstrong						};
583ff4f8b6cSNeil Armstrong					};
584ff4f8b6cSNeil Armstrong
585ff4f8b6cSNeil Armstrong					uart_a_cts_rts_pins: uart-a-cts-rts {
586ff4f8b6cSNeil Armstrong						mux {
587ff4f8b6cSNeil Armstrong							groups = "uart_a_cts",
588ff4f8b6cSNeil Armstrong								 "uart_a_rts";
589ff4f8b6cSNeil Armstrong							function = "uart_a";
590ff4f8b6cSNeil Armstrong							bias-disable;
591ff4f8b6cSNeil Armstrong						};
592ff4f8b6cSNeil Armstrong					};
593ff4f8b6cSNeil Armstrong
594ff4f8b6cSNeil Armstrong					uart_b_pins: uart-b {
595ff4f8b6cSNeil Armstrong						mux {
596ff4f8b6cSNeil Armstrong							groups = "uart_b_tx",
597ff4f8b6cSNeil Armstrong								 "uart_b_rx";
598ff4f8b6cSNeil Armstrong							function = "uart_b";
599ff4f8b6cSNeil Armstrong							bias-disable;
600ff4f8b6cSNeil Armstrong						};
601ff4f8b6cSNeil Armstrong					};
602ff4f8b6cSNeil Armstrong
603ff4f8b6cSNeil Armstrong					uart_c_pins: uart-c {
604ff4f8b6cSNeil Armstrong						mux {
605ff4f8b6cSNeil Armstrong							groups = "uart_c_tx",
606ff4f8b6cSNeil Armstrong								 "uart_c_rx";
607ff4f8b6cSNeil Armstrong							function = "uart_c";
608ff4f8b6cSNeil Armstrong							bias-disable;
609ff4f8b6cSNeil Armstrong						};
610ff4f8b6cSNeil Armstrong					};
611ff4f8b6cSNeil Armstrong
612ff4f8b6cSNeil Armstrong					uart_c_cts_rts_pins: uart-c-cts-rts {
613ff4f8b6cSNeil Armstrong						mux {
614ff4f8b6cSNeil Armstrong							groups = "uart_c_cts",
615ff4f8b6cSNeil Armstrong								 "uart_c_rts";
616ff4f8b6cSNeil Armstrong							function = "uart_c";
617ff4f8b6cSNeil Armstrong							bias-disable;
618ff4f8b6cSNeil Armstrong						};
619ff4f8b6cSNeil Armstrong					};
62011a7bea1SJerome Brunet				};
6219c8c52f7SJianxin Pan			};
6229c8c52f7SJianxin Pan
6239baf7d6bSNeil Armstrong			usb2_phy0: phy@36000 {
6249baf7d6bSNeil Armstrong				compatible = "amlogic,g12a-usb2-phy";
6259baf7d6bSNeil Armstrong				reg = <0x0 0x36000 0x0 0x2000>;
6269baf7d6bSNeil Armstrong				clocks = <&xtal>;
6279baf7d6bSNeil Armstrong				clock-names = "xtal";
6289baf7d6bSNeil Armstrong				resets = <&reset RESET_USB_PHY20>;
6299baf7d6bSNeil Armstrong				reset-names = "phy";
6309baf7d6bSNeil Armstrong				#phy-cells = <0>;
6319baf7d6bSNeil Armstrong			};
6329baf7d6bSNeil Armstrong
633083feecdSNeil Armstrong			dmc: bus@38000 {
634083feecdSNeil Armstrong				compatible = "simple-bus";
635083feecdSNeil Armstrong				reg = <0x0 0x38000 0x0 0x400>;
636083feecdSNeil Armstrong				#address-cells = <2>;
637083feecdSNeil Armstrong				#size-cells = <2>;
638083feecdSNeil Armstrong				ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
639083feecdSNeil Armstrong
640083feecdSNeil Armstrong				canvas: video-lut@48 {
641083feecdSNeil Armstrong					compatible = "amlogic,canvas";
642083feecdSNeil Armstrong					reg = <0x0 0x48 0x0 0x14>;
643083feecdSNeil Armstrong				};
644083feecdSNeil Armstrong			};
645083feecdSNeil Armstrong
6469baf7d6bSNeil Armstrong			usb2_phy1: phy@3a000 {
6479baf7d6bSNeil Armstrong				compatible = "amlogic,g12a-usb2-phy";
6489baf7d6bSNeil Armstrong				reg = <0x0 0x3a000 0x0 0x2000>;
6499baf7d6bSNeil Armstrong				clocks = <&xtal>;
6509baf7d6bSNeil Armstrong				clock-names = "xtal";
6519baf7d6bSNeil Armstrong				resets = <&reset RESET_USB_PHY21>;
6529baf7d6bSNeil Armstrong				reset-names = "phy";
6539baf7d6bSNeil Armstrong				#phy-cells = <0>;
6549baf7d6bSNeil Armstrong			};
6559baf7d6bSNeil Armstrong
656503f5fedSJerome Brunet			hiu: bus@3c000 {
6579c8c52f7SJianxin Pan				compatible = "simple-bus";
658503f5fedSJerome Brunet				reg = <0x0 0x3c000 0x0 0x1400>;
6599c8c52f7SJianxin Pan				#address-cells = <2>;
6609c8c52f7SJianxin Pan				#size-cells = <2>;
661503f5fedSJerome Brunet				ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>;
662785fb434SJerome Brunet
663785fb434SJerome Brunet				hhi: system-controller@0 {
664785fb434SJerome Brunet					compatible = "amlogic,meson-gx-hhi-sysctrl",
665785fb434SJerome Brunet						     "simple-mfd", "syscon";
666785fb434SJerome Brunet					reg = <0 0 0 0x400>;
667785fb434SJerome Brunet
668785fb434SJerome Brunet					clkc: clock-controller {
669785fb434SJerome Brunet						compatible = "amlogic,g12a-clkc";
670785fb434SJerome Brunet						#clock-cells = <1>;
671785fb434SJerome Brunet						clocks = <&xtal>;
672785fb434SJerome Brunet						clock-names = "xtal";
673785fb434SJerome Brunet					};
674785fb434SJerome Brunet				};
675503f5fedSJerome Brunet			};
6769baf7d6bSNeil Armstrong
67703c3f08cSJerome Brunet			audio: bus@42000 {
67803c3f08cSJerome Brunet				compatible = "simple-bus";
67903c3f08cSJerome Brunet				reg = <0x0 0x42000 0x0 0x2000>;
68003c3f08cSJerome Brunet				#address-cells = <2>;
68103c3f08cSJerome Brunet				#size-cells = <2>;
68203c3f08cSJerome Brunet				ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>;
68303c3f08cSJerome Brunet
68403c3f08cSJerome Brunet				clkc_audio: clock-controller@0 {
68503c3f08cSJerome Brunet					status = "disabled";
68603c3f08cSJerome Brunet					compatible = "amlogic,g12a-audio-clkc";
68703c3f08cSJerome Brunet					reg = <0x0 0x0 0x0 0xb4>;
68803c3f08cSJerome Brunet					#clock-cells = <1>;
68903c3f08cSJerome Brunet
69003c3f08cSJerome Brunet					clocks = <&clkc CLKID_AUDIO>,
69103c3f08cSJerome Brunet						 <&clkc CLKID_MPLL0>,
69203c3f08cSJerome Brunet						 <&clkc CLKID_MPLL1>,
69303c3f08cSJerome Brunet						 <&clkc CLKID_MPLL2>,
69403c3f08cSJerome Brunet						 <&clkc CLKID_MPLL3>,
69503c3f08cSJerome Brunet						 <&clkc CLKID_HIFI_PLL>,
69603c3f08cSJerome Brunet						 <&clkc CLKID_FCLK_DIV3>,
69703c3f08cSJerome Brunet						 <&clkc CLKID_FCLK_DIV4>,
69803c3f08cSJerome Brunet						 <&clkc CLKID_GP0_PLL>;
69903c3f08cSJerome Brunet					clock-names = "pclk",
70003c3f08cSJerome Brunet						      "mst_in0",
70103c3f08cSJerome Brunet						      "mst_in1",
70203c3f08cSJerome Brunet						      "mst_in2",
70303c3f08cSJerome Brunet						      "mst_in3",
70403c3f08cSJerome Brunet						      "mst_in4",
70503c3f08cSJerome Brunet						      "mst_in5",
70603c3f08cSJerome Brunet						      "mst_in6",
70703c3f08cSJerome Brunet						      "mst_in7";
70803c3f08cSJerome Brunet
70903c3f08cSJerome Brunet					resets = <&reset RESET_AUDIO>;
71003c3f08cSJerome Brunet				};
7115dc0f28fSJerome Brunet
7125dc0f28fSJerome Brunet				arb: reset-controller@280 {
7135dc0f28fSJerome Brunet					status = "disabled";
7145dc0f28fSJerome Brunet					compatible = "amlogic,meson-axg-audio-arb";
7155dc0f28fSJerome Brunet					reg = <0x0 0x280 0x0 0x4>;
7165dc0f28fSJerome Brunet					#reset-cells = <1>;
7175dc0f28fSJerome Brunet					clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
7185dc0f28fSJerome Brunet				};
71903c3f08cSJerome Brunet			};
72003c3f08cSJerome Brunet
7219baf7d6bSNeil Armstrong			usb3_pcie_phy: phy@46000 {
7229baf7d6bSNeil Armstrong				compatible = "amlogic,g12a-usb3-pcie-phy";
7239baf7d6bSNeil Armstrong				reg = <0x0 0x46000 0x0 0x2000>;
7249baf7d6bSNeil Armstrong				clocks = <&clkc CLKID_PCIE_PLL>;
7259baf7d6bSNeil Armstrong				clock-names = "ref_clk";
7269baf7d6bSNeil Armstrong				resets = <&reset RESET_PCIE_PHY>;
7279baf7d6bSNeil Armstrong				reset-names = "phy";
7289baf7d6bSNeil Armstrong				assigned-clocks = <&clkc CLKID_PCIE_PLL>;
7299baf7d6bSNeil Armstrong				assigned-clock-rates = <100000000>;
7309baf7d6bSNeil Armstrong				#phy-cells = <1>;
7319baf7d6bSNeil Armstrong			};
7329c8c52f7SJianxin Pan		};
7339c8c52f7SJianxin Pan
7349c8c52f7SJianxin Pan		aobus: bus@ff800000 {
7359c8c52f7SJianxin Pan			compatible = "simple-bus";
7369c8c52f7SJianxin Pan			reg = <0x0 0xff800000 0x0 0x100000>;
7379c8c52f7SJianxin Pan			#address-cells = <2>;
7389c8c52f7SJianxin Pan			#size-cells = <2>;
7399c8c52f7SJianxin Pan			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
7409c8c52f7SJianxin Pan
741b019f4a4SNeil Armstrong			rti: sys-ctrl@0 {
742b019f4a4SNeil Armstrong				compatible = "amlogic,meson-gx-ao-sysctrl",
743b019f4a4SNeil Armstrong					     "simple-mfd", "syscon";
744b019f4a4SNeil Armstrong				reg = <0x0 0x0 0x0 0x100>;
745b019f4a4SNeil Armstrong				#address-cells = <2>;
746b019f4a4SNeil Armstrong				#size-cells = <2>;
747b019f4a4SNeil Armstrong				ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
748b019f4a4SNeil Armstrong
749b019f4a4SNeil Armstrong				clkc_AO: clock-controller {
750b019f4a4SNeil Armstrong					compatible = "amlogic,meson-g12a-aoclkc";
751b019f4a4SNeil Armstrong					#clock-cells = <1>;
752b019f4a4SNeil Armstrong					#reset-cells = <1>;
753b019f4a4SNeil Armstrong					clocks = <&xtal>, <&clkc CLKID_CLK81>;
754b019f4a4SNeil Armstrong					clock-names = "xtal", "mpeg-clk";
755b019f4a4SNeil Armstrong				};
75611a7bea1SJerome Brunet
757083feecdSNeil Armstrong				pwrc_vpu: power-controller-vpu {
758083feecdSNeil Armstrong					compatible = "amlogic,meson-g12a-pwrc-vpu";
759083feecdSNeil Armstrong					#power-domain-cells = <0>;
760083feecdSNeil Armstrong					amlogic,hhi-sysctrl = <&hhi>;
761083feecdSNeil Armstrong					resets = <&reset RESET_VIU>,
762083feecdSNeil Armstrong						 <&reset RESET_VENC>,
763083feecdSNeil Armstrong						 <&reset RESET_VCBUS>,
764083feecdSNeil Armstrong						 <&reset RESET_BT656>,
765083feecdSNeil Armstrong						 <&reset RESET_RDMA>,
766083feecdSNeil Armstrong						 <&reset RESET_VENCI>,
767083feecdSNeil Armstrong						 <&reset RESET_VENCP>,
768083feecdSNeil Armstrong						 <&reset RESET_VDAC>,
769083feecdSNeil Armstrong						 <&reset RESET_VDI6>,
770083feecdSNeil Armstrong						 <&reset RESET_VENCL>,
771083feecdSNeil Armstrong						 <&reset RESET_VID_LOCK>;
772083feecdSNeil Armstrong					clocks = <&clkc CLKID_VPU>,
773083feecdSNeil Armstrong						 <&clkc CLKID_VAPB>;
774083feecdSNeil Armstrong					clock-names = "vpu", "vapb";
775083feecdSNeil Armstrong					/*
776083feecdSNeil Armstrong					 * VPU clocking is provided by two identical clock paths
777083feecdSNeil Armstrong					 * VPU_0 and VPU_1 muxed to a single clock by a glitch
778083feecdSNeil Armstrong					 * free mux to safely change frequency while running.
779083feecdSNeil Armstrong					 * Same for VAPB but with a final gate after the glitch free mux.
780083feecdSNeil Armstrong					 */
781083feecdSNeil Armstrong					assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
782083feecdSNeil Armstrong							  <&clkc CLKID_VPU_0>,
783083feecdSNeil Armstrong							  <&clkc CLKID_VPU>, /* Glitch free mux */
784083feecdSNeil Armstrong							  <&clkc CLKID_VAPB_0_SEL>,
785083feecdSNeil Armstrong							  <&clkc CLKID_VAPB_0>,
786083feecdSNeil Armstrong							  <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
787083feecdSNeil Armstrong					assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
788083feecdSNeil Armstrong								 <0>, /* Do Nothing */
789083feecdSNeil Armstrong								 <&clkc CLKID_VPU_0>,
790083feecdSNeil Armstrong								 <&clkc CLKID_FCLK_DIV4>,
791083feecdSNeil Armstrong								 <0>, /* Do Nothing */
792083feecdSNeil Armstrong								 <&clkc CLKID_VAPB_0>;
793083feecdSNeil Armstrong					assigned-clock-rates = <0>, /* Do Nothing */
794083feecdSNeil Armstrong							       <666666666>,
795083feecdSNeil Armstrong							       <0>, /* Do Nothing */
796083feecdSNeil Armstrong							       <0>, /* Do Nothing */
797083feecdSNeil Armstrong							       <250000000>,
798083feecdSNeil Armstrong							       <0>; /* Do Nothing */
799083feecdSNeil Armstrong				};
800083feecdSNeil Armstrong
80111a7bea1SJerome Brunet				ao_pinctrl: pinctrl@14 {
80211a7bea1SJerome Brunet					compatible = "amlogic,meson-g12a-aobus-pinctrl";
80311a7bea1SJerome Brunet					#address-cells = <2>;
80411a7bea1SJerome Brunet					#size-cells = <2>;
80511a7bea1SJerome Brunet					ranges;
80611a7bea1SJerome Brunet
80711a7bea1SJerome Brunet					gpio_ao: bank@14 {
80811a7bea1SJerome Brunet						reg = <0x0 0x14 0x0 0x8>,
80911a7bea1SJerome Brunet						      <0x0 0x1c 0x0 0x8>,
81011a7bea1SJerome Brunet						      <0x0 0x24 0x0 0x14>;
81111a7bea1SJerome Brunet						reg-names = "mux",
81211a7bea1SJerome Brunet							    "ds",
81311a7bea1SJerome Brunet							    "gpio";
81411a7bea1SJerome Brunet						gpio-controller;
81511a7bea1SJerome Brunet						#gpio-cells = <2>;
81611a7bea1SJerome Brunet						gpio-ranges = <&ao_pinctrl 0 0 15>;
81711a7bea1SJerome Brunet					};
818e92546c2SJerome Brunet
8199951aca6SGuillaume La Roque					i2c_ao_sck_pins: i2c_ao_sck_pins {
8209951aca6SGuillaume La Roque						mux {
8219951aca6SGuillaume La Roque							groups = "i2c_ao_sck";
8229951aca6SGuillaume La Roque							function = "i2c_ao";
8239951aca6SGuillaume La Roque							bias-disable;
8249951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
8259951aca6SGuillaume La Roque						};
8269951aca6SGuillaume La Roque					};
8279951aca6SGuillaume La Roque
8289951aca6SGuillaume La Roque					i2c_ao_sda_pins: i2c_ao_sda {
8299951aca6SGuillaume La Roque						mux {
8309951aca6SGuillaume La Roque							groups = "i2c_ao_sda";
8319951aca6SGuillaume La Roque							function = "i2c_ao";
8329951aca6SGuillaume La Roque							bias-disable;
8339951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
8349951aca6SGuillaume La Roque						};
8359951aca6SGuillaume La Roque					};
8369951aca6SGuillaume La Roque
8379951aca6SGuillaume La Roque					i2c_ao_sck_e_pins: i2c_ao_sck_e {
8389951aca6SGuillaume La Roque						mux {
8399951aca6SGuillaume La Roque							groups = "i2c_ao_sck_e";
8409951aca6SGuillaume La Roque							function = "i2c_ao";
8419951aca6SGuillaume La Roque							bias-disable;
8429951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
8439951aca6SGuillaume La Roque						};
8449951aca6SGuillaume La Roque					};
8459951aca6SGuillaume La Roque
8469951aca6SGuillaume La Roque					i2c_ao_sda_e_pins: i2c_ao_sda_e {
8479951aca6SGuillaume La Roque						mux {
8489951aca6SGuillaume La Roque							groups = "i2c_ao_sda_e";
8499951aca6SGuillaume La Roque							function = "i2c_ao";
8509951aca6SGuillaume La Roque							bias-disable;
8519951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
8529951aca6SGuillaume La Roque						};
8539951aca6SGuillaume La Roque					};
8549951aca6SGuillaume La Roque
855e92546c2SJerome Brunet					uart_ao_a_pins: uart-a-ao {
856e92546c2SJerome Brunet						mux {
857e92546c2SJerome Brunet							groups = "uart_ao_a_tx",
858e92546c2SJerome Brunet								 "uart_ao_a_rx";
859e92546c2SJerome Brunet							function = "uart_ao_a";
860e92546c2SJerome Brunet							bias-disable;
861e92546c2SJerome Brunet						};
862e92546c2SJerome Brunet					};
863e92546c2SJerome Brunet
864e92546c2SJerome Brunet					uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
865e92546c2SJerome Brunet						mux {
866e92546c2SJerome Brunet							groups = "uart_ao_a_cts",
867e92546c2SJerome Brunet								 "uart_ao_a_rts";
868e92546c2SJerome Brunet							function = "uart_ao_a";
869e92546c2SJerome Brunet							bias-disable;
870e92546c2SJerome Brunet						};
871e92546c2SJerome Brunet					};
872bb23b125SNeil Armstrong
873bb23b125SNeil Armstrong					pwm_ao_a_pins: pwm-ao-a {
874bb23b125SNeil Armstrong						mux {
875bb23b125SNeil Armstrong							groups = "pwm_ao_a";
876bb23b125SNeil Armstrong							function = "pwm_ao_a";
877bb23b125SNeil Armstrong							bias-disable;
878bb23b125SNeil Armstrong						};
879bb23b125SNeil Armstrong					};
880bb23b125SNeil Armstrong
881bb23b125SNeil Armstrong					pwm_ao_b_pins: pwm-ao-b {
882bb23b125SNeil Armstrong						mux {
883bb23b125SNeil Armstrong							groups = "pwm_ao_b";
884bb23b125SNeil Armstrong							function = "pwm_ao_b";
885bb23b125SNeil Armstrong							bias-disable;
886bb23b125SNeil Armstrong						};
887bb23b125SNeil Armstrong					};
888bb23b125SNeil Armstrong
889bb23b125SNeil Armstrong					pwm_ao_c_4_pins: pwm-ao-c-4 {
890bb23b125SNeil Armstrong						mux {
891bb23b125SNeil Armstrong							groups = "pwm_ao_c_4";
892bb23b125SNeil Armstrong							function = "pwm_ao_c";
893bb23b125SNeil Armstrong							bias-disable;
894bb23b125SNeil Armstrong						};
895bb23b125SNeil Armstrong					};
896bb23b125SNeil Armstrong
897bb23b125SNeil Armstrong					pwm_ao_c_6_pins: pwm-ao-c-6 {
898bb23b125SNeil Armstrong						mux {
899bb23b125SNeil Armstrong							groups = "pwm_ao_c_6";
900bb23b125SNeil Armstrong							function = "pwm_ao_c";
901bb23b125SNeil Armstrong							bias-disable;
902bb23b125SNeil Armstrong						};
903bb23b125SNeil Armstrong					};
904bb23b125SNeil Armstrong
905bb23b125SNeil Armstrong					pwm_ao_d_5_pins: pwm-ao-d-5 {
906bb23b125SNeil Armstrong						mux {
907bb23b125SNeil Armstrong							groups = "pwm_ao_d_5";
908bb23b125SNeil Armstrong							function = "pwm_ao_d";
909bb23b125SNeil Armstrong							bias-disable;
910bb23b125SNeil Armstrong						};
911bb23b125SNeil Armstrong					};
912bb23b125SNeil Armstrong
913bb23b125SNeil Armstrong					pwm_ao_d_10_pins: pwm-ao-d-10 {
914bb23b125SNeil Armstrong						mux {
915bb23b125SNeil Armstrong							groups = "pwm_ao_d_10";
916bb23b125SNeil Armstrong							function = "pwm_ao_d";
917bb23b125SNeil Armstrong							bias-disable;
918bb23b125SNeil Armstrong						};
919bb23b125SNeil Armstrong					};
920bb23b125SNeil Armstrong
921bb23b125SNeil Armstrong					pwm_ao_d_e_pins: pwm-ao-d-e {
922bb23b125SNeil Armstrong						mux {
923bb23b125SNeil Armstrong							groups = "pwm_ao_d_e";
924bb23b125SNeil Armstrong							function = "pwm_ao_d";
9252bfe8412SNeil Armstrong						};
9262bfe8412SNeil Armstrong					};
9272bfe8412SNeil Armstrong
9282bfe8412SNeil Armstrong					remote_input_ao_pins: remote-input-ao {
9292bfe8412SNeil Armstrong						mux {
9302bfe8412SNeil Armstrong							groups = "remote_ao_input";
9312bfe8412SNeil Armstrong							function = "remote_ao_input";
932bb23b125SNeil Armstrong							bias-disable;
933bb23b125SNeil Armstrong						};
934bb23b125SNeil Armstrong					};
93511a7bea1SJerome Brunet				};
936b019f4a4SNeil Armstrong			};
937b019f4a4SNeil Armstrong
93891516e54SNeil Armstrong			cec_AO: cec@100 {
93991516e54SNeil Armstrong				compatible = "amlogic,meson-gx-ao-cec";
94091516e54SNeil Armstrong				reg = <0x0 0x00100 0x0 0x14>;
94191516e54SNeil Armstrong				interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
94291516e54SNeil Armstrong				clocks = <&clkc_AO CLKID_AO_CEC>;
94391516e54SNeil Armstrong				clock-names = "core";
94491516e54SNeil Armstrong				status = "disabled";
94591516e54SNeil Armstrong			};
94691516e54SNeil Armstrong
9470fa724c5SNeil Armstrong			sec_AO: ao-secure@140 {
9480fa724c5SNeil Armstrong				compatible = "amlogic,meson-gx-ao-secure", "syscon";
9490fa724c5SNeil Armstrong				reg = <0x0 0x140 0x0 0x140>;
9500fa724c5SNeil Armstrong				amlogic,has-chip-id;
9510fa724c5SNeil Armstrong			};
9520fa724c5SNeil Armstrong
95391516e54SNeil Armstrong			cecb_AO: cec@280 {
95491516e54SNeil Armstrong				compatible = "amlogic,meson-g12a-ao-cec";
95591516e54SNeil Armstrong				reg = <0x0 0x00280 0x0 0x1c>;
95691516e54SNeil Armstrong				interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
95791516e54SNeil Armstrong				clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>;
95891516e54SNeil Armstrong				clock-names = "oscin";
95991516e54SNeil Armstrong				status = "disabled";
96091516e54SNeil Armstrong			};
96191516e54SNeil Armstrong
962bb23b125SNeil Armstrong			pwm_AO_cd: pwm@2000 {
963bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ao-pwm-cd";
964bb23b125SNeil Armstrong				reg = <0x0 0x2000 0x0 0x20>;
965bb23b125SNeil Armstrong				#pwm-cells = <3>;
966bb23b125SNeil Armstrong				status = "disabled";
967bb23b125SNeil Armstrong			};
968bb23b125SNeil Armstrong
9699c8c52f7SJianxin Pan			uart_AO: serial@3000 {
970503f5fedSJerome Brunet				compatible = "amlogic,meson-gx-uart",
971503f5fedSJerome Brunet					     "amlogic,meson-ao-uart";
9729c8c52f7SJianxin Pan				reg = <0x0 0x3000 0x0 0x18>;
9739c8c52f7SJianxin Pan				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
9749a690907SJerome Brunet				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>;
9759c8c52f7SJianxin Pan				clock-names = "xtal", "pclk", "baud";
9769c8c52f7SJianxin Pan				status = "disabled";
9779c8c52f7SJianxin Pan			};
9789c8c52f7SJianxin Pan
9799c8c52f7SJianxin Pan			uart_AO_B: serial@4000 {
980503f5fedSJerome Brunet				compatible = "amlogic,meson-gx-uart",
981503f5fedSJerome Brunet					     "amlogic,meson-ao-uart";
9829c8c52f7SJianxin Pan				reg = <0x0 0x4000 0x0 0x18>;
9839c8c52f7SJianxin Pan				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
9849a690907SJerome Brunet				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
9859c8c52f7SJianxin Pan				clock-names = "xtal", "pclk", "baud";
9869c8c52f7SJianxin Pan				status = "disabled";
9879c8c52f7SJianxin Pan			};
988820873cfSNeil Armstrong
9899951aca6SGuillaume La Roque			i2c_AO: i2c@5000 {
9909951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
9919951aca6SGuillaume La Roque				status = "disabled";
9929951aca6SGuillaume La Roque				reg = <0x0 0x05000 0x0 0x20>;
9939951aca6SGuillaume La Roque				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
9949951aca6SGuillaume La Roque				#address-cells = <1>;
9959951aca6SGuillaume La Roque				#size-cells = <0>;
9969951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
9979951aca6SGuillaume La Roque			};
9989951aca6SGuillaume La Roque
999bb23b125SNeil Armstrong			pwm_AO_ab: pwm@7000 {
1000bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ao-pwm-ab";
1001bb23b125SNeil Armstrong				reg = <0x0 0x7000 0x0 0x20>;
1002bb23b125SNeil Armstrong				#pwm-cells = <3>;
1003bb23b125SNeil Armstrong				status = "disabled";
1004bb23b125SNeil Armstrong			};
1005bb23b125SNeil Armstrong
10062bfe8412SNeil Armstrong			ir: ir@8000 {
10072bfe8412SNeil Armstrong				compatible = "amlogic,meson-gxbb-ir";
10082bfe8412SNeil Armstrong				reg = <0x0 0x8000 0x0 0x20>;
10092bfe8412SNeil Armstrong				interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
10102bfe8412SNeil Armstrong				status = "disabled";
10112bfe8412SNeil Armstrong			};
10122bfe8412SNeil Armstrong
1013820873cfSNeil Armstrong			saradc: adc@9000 {
1014820873cfSNeil Armstrong				compatible = "amlogic,meson-g12a-saradc",
1015820873cfSNeil Armstrong					     "amlogic,meson-saradc";
1016820873cfSNeil Armstrong				reg = <0x0 0x9000 0x0 0x48>;
1017820873cfSNeil Armstrong				#io-channel-cells = <1>;
1018820873cfSNeil Armstrong				interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
1019820873cfSNeil Armstrong				clocks = <&xtal>,
1020820873cfSNeil Armstrong					 <&clkc_AO CLKID_AO_SAR_ADC>,
1021820873cfSNeil Armstrong					 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1022820873cfSNeil Armstrong					 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1023820873cfSNeil Armstrong				clock-names = "clkin", "core", "adc_clk", "adc_sel";
1024820873cfSNeil Armstrong				status = "disabled";
1025820873cfSNeil Armstrong			};
10269c8c52f7SJianxin Pan		};
10279c8c52f7SJianxin Pan
1028083feecdSNeil Armstrong		vpu: vpu@ff900000 {
1029083feecdSNeil Armstrong			compatible = "amlogic,meson-g12a-vpu";
1030083feecdSNeil Armstrong			reg = <0x0 0xff900000 0x0 0x100000>,
1031083feecdSNeil Armstrong			      <0x0 0xff63c000 0x0 0x1000>;
1032083feecdSNeil Armstrong			reg-names = "vpu", "hhi";
1033083feecdSNeil Armstrong			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
1034083feecdSNeil Armstrong			#address-cells = <1>;
1035083feecdSNeil Armstrong			#size-cells = <0>;
1036083feecdSNeil Armstrong			amlogic,canvas = <&canvas>;
1037083feecdSNeil Armstrong			power-domains = <&pwrc_vpu>;
1038083feecdSNeil Armstrong
1039083feecdSNeil Armstrong			/* CVBS VDAC output port */
1040083feecdSNeil Armstrong			cvbs_vdac_port: port@0 {
1041083feecdSNeil Armstrong				reg = <0>;
1042083feecdSNeil Armstrong			};
1043083feecdSNeil Armstrong
1044083feecdSNeil Armstrong			/* HDMI-TX output port */
1045083feecdSNeil Armstrong			hdmi_tx_port: port@1 {
1046083feecdSNeil Armstrong				reg = <1>;
1047083feecdSNeil Armstrong
1048083feecdSNeil Armstrong				hdmi_tx_out: endpoint {
1049083feecdSNeil Armstrong					remote-endpoint = <&hdmi_tx_in>;
1050083feecdSNeil Armstrong				};
1051083feecdSNeil Armstrong			};
1052083feecdSNeil Armstrong		};
1053083feecdSNeil Armstrong
10549c8c52f7SJianxin Pan		gic: interrupt-controller@ffc01000 {
10559c8c52f7SJianxin Pan			compatible = "arm,gic-400";
10569c8c52f7SJianxin Pan			reg = <0x0 0xffc01000 0 0x1000>,
10579c8c52f7SJianxin Pan			      <0x0 0xffc02000 0 0x2000>,
10589c8c52f7SJianxin Pan			      <0x0 0xffc04000 0 0x2000>,
10599c8c52f7SJianxin Pan			      <0x0 0xffc06000 0 0x2000>;
10609c8c52f7SJianxin Pan			interrupt-controller;
10619c8c52f7SJianxin Pan			interrupts = <GIC_PPI 9
10629c8c52f7SJianxin Pan				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
10639c8c52f7SJianxin Pan			#interrupt-cells = <3>;
10649c8c52f7SJianxin Pan			#address-cells = <0>;
10659c8c52f7SJianxin Pan		};
10669c8c52f7SJianxin Pan
10679c8c52f7SJianxin Pan		cbus: bus@ffd00000 {
10689c8c52f7SJianxin Pan			compatible = "simple-bus";
1069503f5fedSJerome Brunet			reg = <0x0 0xffd00000 0x0 0x100000>;
10709c8c52f7SJianxin Pan			#address-cells = <2>;
10719c8c52f7SJianxin Pan			#size-cells = <2>;
1072503f5fedSJerome Brunet			ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>;
10739c8c52f7SJianxin Pan
10747ab41c47SJerome Brunet			reset: reset-controller@1004 {
10757ab41c47SJerome Brunet				compatible = "amlogic,meson-g12a-reset",
10767ab41c47SJerome Brunet					     "amlogic,meson-axg-reset";
10777ab41c47SJerome Brunet				reg = <0x0 0x1004 0x0 0x9c>;
10787ab41c47SJerome Brunet				#reset-cells = <1>;
10797ab41c47SJerome Brunet			};
10807ab41c47SJerome Brunet
1081bb23b125SNeil Armstrong			pwm_ef: pwm@19000 {
1082bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ee-pwm";
1083bb23b125SNeil Armstrong				reg = <0x0 0x19000 0x0 0x20>;
1084bb23b125SNeil Armstrong				#pwm-cells = <3>;
1085bb23b125SNeil Armstrong				status = "disabled";
1086bb23b125SNeil Armstrong			};
1087bb23b125SNeil Armstrong
1088bb23b125SNeil Armstrong			pwm_cd: pwm@1a000 {
1089bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ee-pwm";
1090bb23b125SNeil Armstrong				reg = <0x0 0x1a000 0x0 0x20>;
1091bb23b125SNeil Armstrong				#pwm-cells = <3>;
1092bb23b125SNeil Armstrong				status = "disabled";
1093bb23b125SNeil Armstrong			};
1094bb23b125SNeil Armstrong
1095bb23b125SNeil Armstrong			pwm_ab: pwm@1b000 {
1096bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ee-pwm";
1097bb23b125SNeil Armstrong				reg = <0x0 0x1b000 0x0 0x20>;
1098bb23b125SNeil Armstrong				#pwm-cells = <3>;
1099bb23b125SNeil Armstrong				status = "disabled";
1100bb23b125SNeil Armstrong			};
1101bb23b125SNeil Armstrong
11029951aca6SGuillaume La Roque			i2c3: i2c@1c000 {
11039951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11049951aca6SGuillaume La Roque				status = "disabled";
11059951aca6SGuillaume La Roque				reg = <0x0 0x1c000 0x0 0x20>;
11069951aca6SGuillaume La Roque				interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
11079951aca6SGuillaume La Roque				#address-cells = <1>;
11089951aca6SGuillaume La Roque				#size-cells = <0>;
11099951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
11109951aca6SGuillaume La Roque			};
11119951aca6SGuillaume La Roque
11129951aca6SGuillaume La Roque			i2c2: i2c@1d000 {
11139951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11149951aca6SGuillaume La Roque				status = "disabled";
11159951aca6SGuillaume La Roque				reg = <0x0 0x1d000 0x0 0x20>;
11169951aca6SGuillaume La Roque				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
11179951aca6SGuillaume La Roque				#address-cells = <1>;
11189951aca6SGuillaume La Roque				#size-cells = <0>;
11199951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
11209951aca6SGuillaume La Roque			};
11219951aca6SGuillaume La Roque
11229951aca6SGuillaume La Roque			i2c1: i2c@1e000 {
11239951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11249951aca6SGuillaume La Roque				status = "disabled";
11259951aca6SGuillaume La Roque				reg = <0x0 0x1e000 0x0 0x20>;
11269951aca6SGuillaume La Roque				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
11279951aca6SGuillaume La Roque				#address-cells = <1>;
11289951aca6SGuillaume La Roque				#size-cells = <0>;
11299951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
11309951aca6SGuillaume La Roque			};
11319951aca6SGuillaume La Roque
11329951aca6SGuillaume La Roque			i2c0: i2c@1f000 {
11339951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11349951aca6SGuillaume La Roque				status = "disabled";
11359951aca6SGuillaume La Roque				reg = <0x0 0x1f000 0x0 0x20>;
11369951aca6SGuillaume La Roque				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
11379951aca6SGuillaume La Roque				#address-cells = <1>;
11389951aca6SGuillaume La Roque				#size-cells = <0>;
11399951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
11409951aca6SGuillaume La Roque			};
11419951aca6SGuillaume La Roque
114260d4fdb8SJerome Brunet			clk_msr: clock-measure@18000 {
114360d4fdb8SJerome Brunet				compatible = "amlogic,meson-g12a-clk-measure";
114460d4fdb8SJerome Brunet				reg = <0x0 0x18000 0x0 0x10>;
114560d4fdb8SJerome Brunet			};
1146ff4f8b6cSNeil Armstrong
1147ff4f8b6cSNeil Armstrong			uart_C: serial@22000 {
1148ff4f8b6cSNeil Armstrong				compatible = "amlogic,meson-gx-uart";
1149ff4f8b6cSNeil Armstrong				reg = <0x0 0x22000 0x0 0x18>;
1150ff4f8b6cSNeil Armstrong				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
1151ff4f8b6cSNeil Armstrong				clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
1152ff4f8b6cSNeil Armstrong				clock-names = "xtal", "pclk", "baud";
1153ff4f8b6cSNeil Armstrong				status = "disabled";
1154ff4f8b6cSNeil Armstrong			};
1155ff4f8b6cSNeil Armstrong
1156ff4f8b6cSNeil Armstrong			uart_B: serial@23000 {
1157ff4f8b6cSNeil Armstrong				compatible = "amlogic,meson-gx-uart";
1158ff4f8b6cSNeil Armstrong				reg = <0x0 0x23000 0x0 0x18>;
1159ff4f8b6cSNeil Armstrong				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1160ff4f8b6cSNeil Armstrong				clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
1161ff4f8b6cSNeil Armstrong				clock-names = "xtal", "pclk", "baud";
1162ff4f8b6cSNeil Armstrong				status = "disabled";
1163ff4f8b6cSNeil Armstrong			};
1164ff4f8b6cSNeil Armstrong
1165ff4f8b6cSNeil Armstrong			uart_A: serial@24000 {
1166ff4f8b6cSNeil Armstrong				compatible = "amlogic,meson-gx-uart";
1167ff4f8b6cSNeil Armstrong				reg = <0x0 0x24000 0x0 0x18>;
1168ff4f8b6cSNeil Armstrong				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1169ff4f8b6cSNeil Armstrong				clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
1170ff4f8b6cSNeil Armstrong				clock-names = "xtal", "pclk", "baud";
1171ff4f8b6cSNeil Armstrong				status = "disabled";
1172ff4f8b6cSNeil Armstrong			};
11739c8c52f7SJianxin Pan		};
11749baf7d6bSNeil Armstrong
11754759fd87SJerome Brunet		sd_emmc_b: sd@ffe05000 {
11764759fd87SJerome Brunet			compatible = "amlogic,meson-axg-mmc";
11774759fd87SJerome Brunet			reg = <0x0 0xffe05000 0x0 0x800>;
11784759fd87SJerome Brunet			interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
11794759fd87SJerome Brunet			status = "disabled";
11804759fd87SJerome Brunet			clocks = <&clkc CLKID_SD_EMMC_B>,
11814759fd87SJerome Brunet				 <&clkc CLKID_SD_EMMC_B_CLK0>,
11824759fd87SJerome Brunet				 <&clkc CLKID_FCLK_DIV2>;
11834759fd87SJerome Brunet			clock-names = "core", "clkin0", "clkin1";
11844759fd87SJerome Brunet			resets = <&reset RESET_SD_EMMC_B>;
11854759fd87SJerome Brunet		};
11864759fd87SJerome Brunet
11874759fd87SJerome Brunet		sd_emmc_c: mmc@ffe07000 {
11884759fd87SJerome Brunet			compatible = "amlogic,meson-axg-mmc";
11894759fd87SJerome Brunet			reg = <0x0 0xffe07000 0x0 0x800>;
11904759fd87SJerome Brunet			interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
11914759fd87SJerome Brunet			status = "disabled";
11924759fd87SJerome Brunet			clocks = <&clkc CLKID_SD_EMMC_C>,
11934759fd87SJerome Brunet				 <&clkc CLKID_SD_EMMC_C_CLK0>,
11944759fd87SJerome Brunet				 <&clkc CLKID_FCLK_DIV2>;
11954759fd87SJerome Brunet			clock-names = "core", "clkin0", "clkin1";
11964759fd87SJerome Brunet			resets = <&reset RESET_SD_EMMC_C>;
11974759fd87SJerome Brunet		};
11984759fd87SJerome Brunet
11999baf7d6bSNeil Armstrong		usb: usb@ffe09000 {
12009baf7d6bSNeil Armstrong			status = "disabled";
12019baf7d6bSNeil Armstrong			compatible = "amlogic,meson-g12a-usb-ctrl";
12029baf7d6bSNeil Armstrong			reg = <0x0 0xffe09000 0x0 0xa0>;
12039baf7d6bSNeil Armstrong			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
12049baf7d6bSNeil Armstrong			#address-cells = <2>;
12059baf7d6bSNeil Armstrong			#size-cells = <2>;
12069baf7d6bSNeil Armstrong			ranges;
12079baf7d6bSNeil Armstrong
12089baf7d6bSNeil Armstrong			clocks = <&clkc CLKID_USB>;
12099baf7d6bSNeil Armstrong			resets = <&reset RESET_USB>;
12109baf7d6bSNeil Armstrong
12119baf7d6bSNeil Armstrong			dr_mode = "otg";
12129baf7d6bSNeil Armstrong
12139baf7d6bSNeil Armstrong			phys = <&usb2_phy0>, <&usb2_phy1>,
12149baf7d6bSNeil Armstrong			       <&usb3_pcie_phy PHY_TYPE_USB3>;
12159baf7d6bSNeil Armstrong			phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0";
12169baf7d6bSNeil Armstrong
12179baf7d6bSNeil Armstrong			dwc2: usb@ff400000 {
12189baf7d6bSNeil Armstrong				compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
12199baf7d6bSNeil Armstrong				reg = <0x0 0xff400000 0x0 0x40000>;
12209baf7d6bSNeil Armstrong				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
12219baf7d6bSNeil Armstrong				clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
12229baf7d6bSNeil Armstrong				clock-names = "ddr";
12239baf7d6bSNeil Armstrong				phys = <&usb2_phy1>;
12249baf7d6bSNeil Armstrong				dr_mode = "peripheral";
12259baf7d6bSNeil Armstrong				g-rx-fifo-size = <192>;
12269baf7d6bSNeil Armstrong				g-np-tx-fifo-size = <128>;
12279baf7d6bSNeil Armstrong				g-tx-fifo-size = <128 128 16 16 16>;
12289baf7d6bSNeil Armstrong			};
12299baf7d6bSNeil Armstrong
12309baf7d6bSNeil Armstrong			dwc3: usb@ff500000 {
12319baf7d6bSNeil Armstrong				compatible = "snps,dwc3";
12329baf7d6bSNeil Armstrong				reg = <0x0 0xff500000 0x0 0x100000>;
12339baf7d6bSNeil Armstrong				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
12349baf7d6bSNeil Armstrong				dr_mode = "host";
12359baf7d6bSNeil Armstrong				snps,dis_u2_susphy_quirk;
12369baf7d6bSNeil Armstrong				snps,quirk-frame-length-adjustment;
12379baf7d6bSNeil Armstrong			};
12389baf7d6bSNeil Armstrong		};
12392607fd08SNeil Armstrong
12402607fd08SNeil Armstrong		mali: gpu@ffe40000 {
12412607fd08SNeil Armstrong			compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
12422607fd08SNeil Armstrong			reg = <0x0 0xffe40000 0x0 0x40000>;
12432607fd08SNeil Armstrong			interrupt-parent = <&gic>;
12442607fd08SNeil Armstrong			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
12452607fd08SNeil Armstrong				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
12462607fd08SNeil Armstrong				     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
12472607fd08SNeil Armstrong			interrupt-names = "gpu", "mmu", "job";
12482607fd08SNeil Armstrong			clocks = <&clkc CLKID_MALI>;
12492607fd08SNeil Armstrong			resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
12502607fd08SNeil Armstrong
12512607fd08SNeil Armstrong			/*
12522607fd08SNeil Armstrong			 * Mali clocking is provided by two identical clock paths
12532607fd08SNeil Armstrong			 * MALI_0 and MALI_1 muxed to a single clock by a glitch
12542607fd08SNeil Armstrong			 * free mux to safely change frequency while running.
12552607fd08SNeil Armstrong			 */
12562607fd08SNeil Armstrong			assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
12572607fd08SNeil Armstrong					  <&clkc CLKID_MALI_0>,
12582607fd08SNeil Armstrong					  <&clkc CLKID_MALI>; /* Glitch free mux */
12592607fd08SNeil Armstrong			assigned-clock-parents = <&clkc CLKID_FCLK_DIV2P5>,
12602607fd08SNeil Armstrong						 <0>, /* Do Nothing */
12612607fd08SNeil Armstrong						 <&clkc CLKID_MALI_0>;
12622607fd08SNeil Armstrong			assigned-clock-rates = <0>, /* Do Nothing */
12632607fd08SNeil Armstrong					       <800000000>,
12642607fd08SNeil Armstrong					       <0>; /* Do Nothing */
12652607fd08SNeil Armstrong		};
12669c8c52f7SJianxin Pan	};
12679c8c52f7SJianxin Pan
12689c8c52f7SJianxin Pan	timer {
12699c8c52f7SJianxin Pan		compatible = "arm,armv8-timer";
12709c8c52f7SJianxin Pan		interrupts = <GIC_PPI 13
12719c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
12729c8c52f7SJianxin Pan			     <GIC_PPI 14
12739c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
12749c8c52f7SJianxin Pan			     <GIC_PPI 11
12759c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
12769c8c52f7SJianxin Pan			     <GIC_PPI 10
12779c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
12789c8c52f7SJianxin Pan	};
12799c8c52f7SJianxin Pan
12809c8c52f7SJianxin Pan	xtal: xtal-clk {
12819c8c52f7SJianxin Pan		compatible = "fixed-clock";
12829c8c52f7SJianxin Pan		clock-frequency = <24000000>;
12839c8c52f7SJianxin Pan		clock-output-names = "xtal";
12849c8c52f7SJianxin Pan		#clock-cells = <0>;
12859c8c52f7SJianxin Pan	};
12869c8c52f7SJianxin Pan
12879c8c52f7SJianxin Pan};
1288