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>
13c59b7fe5SJerome Brunet#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
149baf7d6bSNeil Armstrong#include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
159c8c52f7SJianxin Pan
169c8c52f7SJianxin Pan/ {
179c8c52f7SJianxin Pan	compatible = "amlogic,g12a";
189c8c52f7SJianxin Pan
199c8c52f7SJianxin Pan	interrupt-parent = <&gic>;
209c8c52f7SJianxin Pan	#address-cells = <2>;
219c8c52f7SJianxin Pan	#size-cells = <2>;
229c8c52f7SJianxin Pan
239c8c52f7SJianxin Pan	cpus {
249c8c52f7SJianxin Pan		#address-cells = <0x2>;
259c8c52f7SJianxin Pan		#size-cells = <0x0>;
269c8c52f7SJianxin Pan
279c8c52f7SJianxin Pan		cpu0: cpu@0 {
289c8c52f7SJianxin Pan			device_type = "cpu";
2931af04cdSRob Herring			compatible = "arm,cortex-a53";
309c8c52f7SJianxin Pan			reg = <0x0 0x0>;
319c8c52f7SJianxin Pan			enable-method = "psci";
329c8c52f7SJianxin Pan			next-level-cache = <&l2>;
339c8c52f7SJianxin Pan		};
349c8c52f7SJianxin Pan
359c8c52f7SJianxin Pan		cpu1: cpu@1 {
369c8c52f7SJianxin Pan			device_type = "cpu";
3731af04cdSRob Herring			compatible = "arm,cortex-a53";
389c8c52f7SJianxin Pan			reg = <0x0 0x1>;
399c8c52f7SJianxin Pan			enable-method = "psci";
409c8c52f7SJianxin Pan			next-level-cache = <&l2>;
419c8c52f7SJianxin Pan		};
429c8c52f7SJianxin Pan
439c8c52f7SJianxin Pan		cpu2: cpu@2 {
449c8c52f7SJianxin Pan			device_type = "cpu";
4531af04cdSRob Herring			compatible = "arm,cortex-a53";
469c8c52f7SJianxin Pan			reg = <0x0 0x2>;
479c8c52f7SJianxin Pan			enable-method = "psci";
489c8c52f7SJianxin Pan			next-level-cache = <&l2>;
499c8c52f7SJianxin Pan		};
509c8c52f7SJianxin Pan
519c8c52f7SJianxin Pan		cpu3: cpu@3 {
529c8c52f7SJianxin Pan			device_type = "cpu";
5331af04cdSRob Herring			compatible = "arm,cortex-a53";
549c8c52f7SJianxin Pan			reg = <0x0 0x3>;
559c8c52f7SJianxin Pan			enable-method = "psci";
569c8c52f7SJianxin Pan			next-level-cache = <&l2>;
579c8c52f7SJianxin Pan		};
589c8c52f7SJianxin Pan
599c8c52f7SJianxin Pan		l2: l2-cache0 {
609c8c52f7SJianxin Pan			compatible = "cache";
619c8c52f7SJianxin Pan		};
629c8c52f7SJianxin Pan	};
639c8c52f7SJianxin Pan
64965c827aSJerome Brunet	efuse: efuse {
65965c827aSJerome Brunet		compatible = "amlogic,meson-gxbb-efuse";
66965c827aSJerome Brunet		clocks = <&clkc CLKID_EFUSE>;
67965c827aSJerome Brunet		#address-cells = <1>;
68965c827aSJerome Brunet		#size-cells = <1>;
69965c827aSJerome Brunet		read-only;
70965c827aSJerome Brunet	};
71965c827aSJerome Brunet
729c8c52f7SJianxin Pan	psci {
739c8c52f7SJianxin Pan		compatible = "arm,psci-1.0";
749c8c52f7SJianxin Pan		method = "smc";
759c8c52f7SJianxin Pan	};
769c8c52f7SJianxin Pan
779c8c52f7SJianxin Pan	reserved-memory {
789c8c52f7SJianxin Pan		#address-cells = <2>;
799c8c52f7SJianxin Pan		#size-cells = <2>;
809c8c52f7SJianxin Pan		ranges;
819c8c52f7SJianxin Pan
829c8c52f7SJianxin Pan		/* 3 MiB reserved for ARM Trusted Firmware (BL31) */
839c8c52f7SJianxin Pan		secmon_reserved: secmon@5000000 {
849c8c52f7SJianxin Pan			reg = <0x0 0x05000000 0x0 0x300000>;
859c8c52f7SJianxin Pan			no-map;
869c8c52f7SJianxin Pan		};
87e2cffeb3SNeil Armstrong
88e2cffeb3SNeil Armstrong		linux,cma {
89e2cffeb3SNeil Armstrong			compatible = "shared-dma-pool";
90e2cffeb3SNeil Armstrong			reusable;
91e2cffeb3SNeil Armstrong			size = <0x0 0x10000000>;
92e2cffeb3SNeil Armstrong			alignment = <0x0 0x400000>;
93e2cffeb3SNeil Armstrong			linux,cma-default;
94e2cffeb3SNeil Armstrong		};
959c8c52f7SJianxin Pan	};
969c8c52f7SJianxin Pan
97bd395152SJerome Brunet	sm: secure-monitor {
98bd395152SJerome Brunet		compatible = "amlogic,meson-gxbb-sm";
99bd395152SJerome Brunet	};
100bd395152SJerome Brunet
1019c8c52f7SJianxin Pan	soc {
1029c8c52f7SJianxin Pan		compatible = "simple-bus";
1039c8c52f7SJianxin Pan		#address-cells = <2>;
1049c8c52f7SJianxin Pan		#size-cells = <2>;
1059c8c52f7SJianxin Pan		ranges;
1069c8c52f7SJianxin Pan
107503f5fedSJerome Brunet		apb: bus@ff600000 {
1089c8c52f7SJianxin Pan			compatible = "simple-bus";
109503f5fedSJerome Brunet			reg = <0x0 0xff600000 0x0 0x200000>;
1109c8c52f7SJianxin Pan			#address-cells = <2>;
1119c8c52f7SJianxin Pan			#size-cells = <2>;
112503f5fedSJerome Brunet			ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>;
113503f5fedSJerome Brunet
114083feecdSNeil Armstrong			hdmi_tx: hdmi-tx@0 {
115083feecdSNeil Armstrong				compatible = "amlogic,meson-g12a-dw-hdmi";
116083feecdSNeil Armstrong				reg = <0x0 0x0 0x0 0x10000>;
117083feecdSNeil Armstrong				interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
118083feecdSNeil Armstrong				resets = <&reset RESET_HDMITX_CAPB3>,
119083feecdSNeil Armstrong					 <&reset RESET_HDMITX_PHY>,
120083feecdSNeil Armstrong					 <&reset RESET_HDMITX>;
121083feecdSNeil Armstrong				reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
122083feecdSNeil Armstrong				clocks = <&clkc CLKID_HDMI>,
123083feecdSNeil Armstrong					 <&clkc CLKID_HTX_PCLK>,
124083feecdSNeil Armstrong					 <&clkc CLKID_VPU_INTR>;
125083feecdSNeil Armstrong				clock-names = "isfr", "iahb", "venci";
126083feecdSNeil Armstrong				#address-cells = <1>;
127083feecdSNeil Armstrong				#size-cells = <0>;
128083feecdSNeil Armstrong				status = "disabled";
129083feecdSNeil Armstrong
130083feecdSNeil Armstrong				/* VPU VENC Input */
131083feecdSNeil Armstrong				hdmi_tx_venc_port: port@0 {
132083feecdSNeil Armstrong					reg = <0>;
133083feecdSNeil Armstrong
134083feecdSNeil Armstrong					hdmi_tx_in: endpoint {
135083feecdSNeil Armstrong						remote-endpoint = <&hdmi_tx_out>;
136083feecdSNeil Armstrong					};
137083feecdSNeil Armstrong				};
138083feecdSNeil Armstrong
139083feecdSNeil Armstrong				/* TMDS Output */
140083feecdSNeil Armstrong				hdmi_tx_tmds_port: port@1 {
141083feecdSNeil Armstrong					reg = <1>;
142083feecdSNeil Armstrong				};
143083feecdSNeil Armstrong			};
144083feecdSNeil Armstrong
145503f5fedSJerome Brunet			periphs: bus@34400 {
146503f5fedSJerome Brunet				compatible = "simple-bus";
147503f5fedSJerome Brunet				reg = <0x0 0x34400 0x0 0x400>;
148503f5fedSJerome Brunet				#address-cells = <2>;
149503f5fedSJerome Brunet				#size-cells = <2>;
150503f5fedSJerome Brunet				ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>;
15111a7bea1SJerome Brunet
15211a7bea1SJerome Brunet				periphs_pinctrl: pinctrl@40 {
15311a7bea1SJerome Brunet					compatible = "amlogic,meson-g12a-periphs-pinctrl";
15411a7bea1SJerome Brunet					#address-cells = <2>;
15511a7bea1SJerome Brunet					#size-cells = <2>;
15611a7bea1SJerome Brunet					ranges;
15711a7bea1SJerome Brunet
15811a7bea1SJerome Brunet					gpio: bank@40 {
15911a7bea1SJerome Brunet						reg = <0x0 0x40  0x0 0x4c>,
16011a7bea1SJerome Brunet						      <0x0 0xe8  0x0 0x18>,
16111a7bea1SJerome Brunet						      <0x0 0x120 0x0 0x18>,
16211a7bea1SJerome Brunet						      <0x0 0x2c0 0x0 0x40>,
16311a7bea1SJerome Brunet						      <0x0 0x340 0x0 0x1c>;
16411a7bea1SJerome Brunet						reg-names = "gpio",
16511a7bea1SJerome Brunet							    "pull",
16611a7bea1SJerome Brunet							    "pull-enable",
16711a7bea1SJerome Brunet							    "mux",
16811a7bea1SJerome Brunet							    "ds";
16911a7bea1SJerome Brunet						gpio-controller;
17011a7bea1SJerome Brunet						#gpio-cells = <2>;
17111a7bea1SJerome Brunet						gpio-ranges = <&periphs_pinctrl 0 0 86>;
17211a7bea1SJerome Brunet					};
173ff4f8b6cSNeil Armstrong
17491516e54SNeil Armstrong					cec_ao_a_h_pins: cec_ao_a_h {
17591516e54SNeil Armstrong						mux {
17691516e54SNeil Armstrong							groups = "cec_ao_a_h";
17791516e54SNeil Armstrong							function = "cec_ao_a_h";
17891516e54SNeil Armstrong							bias-disable;
17991516e54SNeil Armstrong						};
18091516e54SNeil Armstrong					};
18191516e54SNeil Armstrong
18291516e54SNeil Armstrong					cec_ao_b_h_pins: cec_ao_b_h {
18391516e54SNeil Armstrong						mux {
18491516e54SNeil Armstrong							groups = "cec_ao_b_h";
18591516e54SNeil Armstrong							function = "cec_ao_b_h";
18691516e54SNeil Armstrong							bias-disable;
18791516e54SNeil Armstrong						};
18891516e54SNeil Armstrong					};
18991516e54SNeil Armstrong
1904759fd87SJerome Brunet					emmc_pins: emmc {
1914759fd87SJerome Brunet						mux-0 {
1924759fd87SJerome Brunet							groups = "emmc_nand_d0",
1934759fd87SJerome Brunet								 "emmc_nand_d1",
1944759fd87SJerome Brunet								 "emmc_nand_d2",
1954759fd87SJerome Brunet								 "emmc_nand_d3",
1964759fd87SJerome Brunet								 "emmc_nand_d4",
1974759fd87SJerome Brunet								 "emmc_nand_d5",
1984759fd87SJerome Brunet								 "emmc_nand_d6",
1994759fd87SJerome Brunet								 "emmc_nand_d7",
2004759fd87SJerome Brunet								 "emmc_cmd";
2014759fd87SJerome Brunet							function = "emmc";
2024759fd87SJerome Brunet							bias-pull-up;
2034759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2044759fd87SJerome Brunet						};
2054759fd87SJerome Brunet
2064759fd87SJerome Brunet						mux-1 {
2074759fd87SJerome Brunet							groups = "emmc_clk";
2084759fd87SJerome Brunet							function = "emmc";
2094759fd87SJerome Brunet							bias-disable;
2104759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2114759fd87SJerome Brunet						};
2124759fd87SJerome Brunet					};
2134759fd87SJerome Brunet
2144759fd87SJerome Brunet					emmc_ds_pins: emmc-ds {
2154759fd87SJerome Brunet						mux {
2164759fd87SJerome Brunet							groups = "emmc_nand_ds";
2174759fd87SJerome Brunet							function = "emmc";
2184759fd87SJerome Brunet							bias-pull-down;
2194759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2204759fd87SJerome Brunet						};
2214759fd87SJerome Brunet					};
2224759fd87SJerome Brunet
2234759fd87SJerome Brunet					emmc_clk_gate_pins: emmc_clk_gate {
2244759fd87SJerome Brunet						mux {
2254759fd87SJerome Brunet							groups = "BOOT_8";
2264759fd87SJerome Brunet							function = "gpio_periphs";
2274759fd87SJerome Brunet							bias-pull-down;
2284759fd87SJerome Brunet							drive-strength-microamp = <4000>;
2294759fd87SJerome Brunet						};
2304759fd87SJerome Brunet					};
2314759fd87SJerome Brunet
232083feecdSNeil Armstrong					hdmitx_ddc_pins: hdmitx_ddc {
233083feecdSNeil Armstrong						mux {
234083feecdSNeil Armstrong							groups = "hdmitx_sda",
235083feecdSNeil Armstrong								 "hdmitx_sck";
236083feecdSNeil Armstrong							function = "hdmitx";
237083feecdSNeil Armstrong							bias-disable;
238083feecdSNeil Armstrong						};
239083feecdSNeil Armstrong					};
240083feecdSNeil Armstrong
241083feecdSNeil Armstrong					hdmitx_hpd_pins: hdmitx_hpd {
242083feecdSNeil Armstrong						mux {
243083feecdSNeil Armstrong							groups = "hdmitx_hpd_in";
244083feecdSNeil Armstrong							function = "hdmitx";
245083feecdSNeil Armstrong							bias-disable;
246083feecdSNeil Armstrong						};
247083feecdSNeil Armstrong					};
248083feecdSNeil Armstrong
2499951aca6SGuillaume La Roque
2509951aca6SGuillaume La Roque					i2c0_sda_c_pins: i2c0-sda-c {
2519951aca6SGuillaume La Roque						mux {
2529951aca6SGuillaume La Roque							groups = "i2c0_sda_c";
2539951aca6SGuillaume La Roque							function = "i2c0";
2549951aca6SGuillaume La Roque							bias-disable;
2559951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2569951aca6SGuillaume La Roque
2579951aca6SGuillaume La Roque						};
2589951aca6SGuillaume La Roque					};
2599951aca6SGuillaume La Roque
2609951aca6SGuillaume La Roque					i2c0_sck_c_pins: i2c0-sck-c {
2619951aca6SGuillaume La Roque						mux {
2629951aca6SGuillaume La Roque							groups = "i2c0_sck_c";
2639951aca6SGuillaume La Roque							function = "i2c0";
2649951aca6SGuillaume La Roque							bias-disable;
2659951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2669951aca6SGuillaume La Roque						};
2679951aca6SGuillaume La Roque					};
2689951aca6SGuillaume La Roque
2699951aca6SGuillaume La Roque					i2c0_sda_z0_pins: i2c0-sda-z0 {
2709951aca6SGuillaume La Roque						mux {
2719951aca6SGuillaume La Roque							groups = "i2c0_sda_z0";
2729951aca6SGuillaume La Roque							function = "i2c0";
2739951aca6SGuillaume La Roque							bias-disable;
2749951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2759951aca6SGuillaume La Roque						};
2769951aca6SGuillaume La Roque					};
2779951aca6SGuillaume La Roque
2789951aca6SGuillaume La Roque					i2c0_sck_z1_pins: i2c0-sck-z1 {
2799951aca6SGuillaume La Roque						mux {
2809951aca6SGuillaume La Roque							groups = "i2c0_sck_z1";
2819951aca6SGuillaume La Roque							function = "i2c0";
2829951aca6SGuillaume La Roque							bias-disable;
2839951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2849951aca6SGuillaume La Roque						};
2859951aca6SGuillaume La Roque					};
2869951aca6SGuillaume La Roque
2879951aca6SGuillaume La Roque					i2c0_sda_z7_pins: i2c0-sda-z7 {
2889951aca6SGuillaume La Roque						mux {
2899951aca6SGuillaume La Roque							groups = "i2c0_sda_z7";
2909951aca6SGuillaume La Roque							function = "i2c0";
2919951aca6SGuillaume La Roque							bias-disable;
2929951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
2939951aca6SGuillaume La Roque						};
2949951aca6SGuillaume La Roque					};
2959951aca6SGuillaume La Roque
2969951aca6SGuillaume La Roque					i2c0_sda_z8_pins: i2c0-sda-z8 {
2979951aca6SGuillaume La Roque						mux {
2989951aca6SGuillaume La Roque							groups = "i2c0_sda_z8";
2999951aca6SGuillaume La Roque							function = "i2c0";
3009951aca6SGuillaume La Roque							bias-disable;
3019951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3029951aca6SGuillaume La Roque						};
3039951aca6SGuillaume La Roque					};
3049951aca6SGuillaume La Roque
3059951aca6SGuillaume La Roque					i2c1_sda_x_pins: i2c1-sda-x {
3069951aca6SGuillaume La Roque						mux {
3079951aca6SGuillaume La Roque							groups = "i2c1_sda_x";
3089951aca6SGuillaume La Roque							function = "i2c1";
3099951aca6SGuillaume La Roque							bias-disable;
3109951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3119951aca6SGuillaume La Roque						};
3129951aca6SGuillaume La Roque					};
3139951aca6SGuillaume La Roque
3149951aca6SGuillaume La Roque					i2c1_sck_x_pins: i2c1-sck-x {
3159951aca6SGuillaume La Roque						mux {
3169951aca6SGuillaume La Roque							groups = "i2c1_sck_x";
3179951aca6SGuillaume La Roque							function = "i2c1";
3189951aca6SGuillaume La Roque							bias-disable;
3199951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3209951aca6SGuillaume La Roque						};
3219951aca6SGuillaume La Roque					};
3229951aca6SGuillaume La Roque
3239951aca6SGuillaume La Roque					i2c1_sda_h2_pins: i2c1-sda-h2 {
3249951aca6SGuillaume La Roque						mux {
3259951aca6SGuillaume La Roque							groups = "i2c1_sda_h2";
3269951aca6SGuillaume La Roque							function = "i2c1";
3279951aca6SGuillaume La Roque							bias-disable;
3289951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3299951aca6SGuillaume La Roque						};
3309951aca6SGuillaume La Roque					};
3319951aca6SGuillaume La Roque
3329951aca6SGuillaume La Roque					i2c1_sck_h3_pins: i2c1-sck-h3 {
3339951aca6SGuillaume La Roque						mux {
3349951aca6SGuillaume La Roque							groups = "i2c1_sck_h3";
3359951aca6SGuillaume La Roque							function = "i2c1";
3369951aca6SGuillaume La Roque							bias-disable;
3379951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3389951aca6SGuillaume La Roque						};
3399951aca6SGuillaume La Roque					};
3409951aca6SGuillaume La Roque
3419951aca6SGuillaume La Roque					i2c1_sda_h6_pins: i2c1-sda-h6 {
3429951aca6SGuillaume La Roque						mux {
3439951aca6SGuillaume La Roque							groups = "i2c1_sda_h6";
3449951aca6SGuillaume La Roque							function = "i2c1";
3459951aca6SGuillaume La Roque							bias-disable;
3469951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3479951aca6SGuillaume La Roque						};
3489951aca6SGuillaume La Roque					};
3499951aca6SGuillaume La Roque
3509951aca6SGuillaume La Roque					i2c1_sck_h7_pins: i2c1-sck-h7 {
3519951aca6SGuillaume La Roque						mux {
3529951aca6SGuillaume La Roque							groups = "i2c1_sck_h7";
3539951aca6SGuillaume La Roque							function = "i2c1";
3549951aca6SGuillaume La Roque							bias-disable;
3559951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3569951aca6SGuillaume La Roque						};
3579951aca6SGuillaume La Roque					};
3589951aca6SGuillaume La Roque
3599951aca6SGuillaume La Roque					i2c2_sda_x_pins: i2c2-sda-x {
3609951aca6SGuillaume La Roque						mux {
3619951aca6SGuillaume La Roque							groups = "i2c2_sda_x";
3629951aca6SGuillaume La Roque							function = "i2c2";
3639951aca6SGuillaume La Roque							bias-disable;
3649951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3659951aca6SGuillaume La Roque						};
3669951aca6SGuillaume La Roque					};
3679951aca6SGuillaume La Roque
3689951aca6SGuillaume La Roque					i2c2_sck_x_pins: i2c2-sck-x {
3699951aca6SGuillaume La Roque						mux {
3709951aca6SGuillaume La Roque							groups = "i2c2_sck_x";
3719951aca6SGuillaume La Roque							function = "i2c2";
3729951aca6SGuillaume La Roque							bias-disable;
3739951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3749951aca6SGuillaume La Roque						};
3759951aca6SGuillaume La Roque					};
3769951aca6SGuillaume La Roque
3779951aca6SGuillaume La Roque					i2c2_sda_z_pins: i2c2-sda-z {
3789951aca6SGuillaume La Roque						mux {
3799951aca6SGuillaume La Roque							groups = "i2c2_sda_z";
3809951aca6SGuillaume La Roque							function = "i2c2";
3819951aca6SGuillaume La Roque							bias-disable;
3829951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3839951aca6SGuillaume La Roque						};
3849951aca6SGuillaume La Roque					};
3859951aca6SGuillaume La Roque
3869951aca6SGuillaume La Roque					i2c2_sck_z_pins: i2c2-sck-z {
3879951aca6SGuillaume La Roque						mux {
3889951aca6SGuillaume La Roque							groups = "i2c2_sck_z";
3899951aca6SGuillaume La Roque							function = "i2c2";
3909951aca6SGuillaume La Roque							bias-disable;
3919951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
3929951aca6SGuillaume La Roque						};
3939951aca6SGuillaume La Roque					};
3949951aca6SGuillaume La Roque
3959951aca6SGuillaume La Roque					i2c3_sda_h_pins: i2c3-sda-h {
3969951aca6SGuillaume La Roque						mux {
3979951aca6SGuillaume La Roque							groups = "i2c3_sda_h";
3989951aca6SGuillaume La Roque							function = "i2c3";
3999951aca6SGuillaume La Roque							bias-disable;
4009951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4019951aca6SGuillaume La Roque						};
4029951aca6SGuillaume La Roque					};
4039951aca6SGuillaume La Roque
4049951aca6SGuillaume La Roque					i2c3_sck_h_pins: i2c3-sck-h {
4059951aca6SGuillaume La Roque						mux {
4069951aca6SGuillaume La Roque							groups = "i2c3_sck_h";
4079951aca6SGuillaume La Roque							function = "i2c3";
4089951aca6SGuillaume La Roque							bias-disable;
4099951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4109951aca6SGuillaume La Roque						};
4119951aca6SGuillaume La Roque					};
4129951aca6SGuillaume La Roque
4139951aca6SGuillaume La Roque					i2c3_sda_a_pins: i2c3-sda-a {
4149951aca6SGuillaume La Roque						mux {
4159951aca6SGuillaume La Roque							groups = "i2c3_sda_a";
4169951aca6SGuillaume La Roque							function = "i2c3";
4179951aca6SGuillaume La Roque							bias-disable;
4189951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4199951aca6SGuillaume La Roque						};
4209951aca6SGuillaume La Roque					};
4219951aca6SGuillaume La Roque
4229951aca6SGuillaume La Roque					i2c3_sck_a_pins: i2c3-sck-a {
4239951aca6SGuillaume La Roque						mux {
4249951aca6SGuillaume La Roque							groups = "i2c3_sck_a";
4259951aca6SGuillaume La Roque							function = "i2c3";
4269951aca6SGuillaume La Roque							bias-disable;
4279951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
4289951aca6SGuillaume La Roque						};
4299951aca6SGuillaume La Roque					};
4309951aca6SGuillaume La Roque
431bb23b125SNeil Armstrong					pwm_a_pins: pwm-a {
432bb23b125SNeil Armstrong						mux {
433bb23b125SNeil Armstrong							groups = "pwm_a";
434bb23b125SNeil Armstrong							function = "pwm_a";
435bb23b125SNeil Armstrong							bias-disable;
436bb23b125SNeil Armstrong						};
437bb23b125SNeil Armstrong					};
438bb23b125SNeil Armstrong
439bb23b125SNeil Armstrong					pwm_b_x7_pins: pwm-b-x7 {
440bb23b125SNeil Armstrong						mux {
441bb23b125SNeil Armstrong							groups = "pwm_b_x7";
442bb23b125SNeil Armstrong							function = "pwm_b";
443bb23b125SNeil Armstrong							bias-disable;
444bb23b125SNeil Armstrong						};
445bb23b125SNeil Armstrong					};
446bb23b125SNeil Armstrong
447bb23b125SNeil Armstrong					pwm_b_x19_pins: pwm-b-x19 {
448bb23b125SNeil Armstrong						mux {
449bb23b125SNeil Armstrong							groups = "pwm_b_x19";
450bb23b125SNeil Armstrong							function = "pwm_b";
451bb23b125SNeil Armstrong							bias-disable;
452bb23b125SNeil Armstrong						};
453bb23b125SNeil Armstrong					};
454bb23b125SNeil Armstrong
455bb23b125SNeil Armstrong					pwm_c_c_pins: pwm-c-c {
456bb23b125SNeil Armstrong						mux {
457bb23b125SNeil Armstrong							groups = "pwm_c_c";
458bb23b125SNeil Armstrong							function = "pwm_c";
459bb23b125SNeil Armstrong							bias-disable;
460bb23b125SNeil Armstrong						};
461bb23b125SNeil Armstrong					};
462bb23b125SNeil Armstrong
463bb23b125SNeil Armstrong					pwm_c_x5_pins: pwm-c-x5 {
464bb23b125SNeil Armstrong						mux {
465bb23b125SNeil Armstrong							groups = "pwm_c_x5";
466bb23b125SNeil Armstrong							function = "pwm_c";
467bb23b125SNeil Armstrong							bias-disable;
468bb23b125SNeil Armstrong						};
469bb23b125SNeil Armstrong					};
470bb23b125SNeil Armstrong
471bb23b125SNeil Armstrong					pwm_c_x8_pins: pwm-c-x8 {
472bb23b125SNeil Armstrong						mux {
473bb23b125SNeil Armstrong							groups = "pwm_c_x8";
474bb23b125SNeil Armstrong							function = "pwm_c";
475bb23b125SNeil Armstrong							bias-disable;
476bb23b125SNeil Armstrong						};
477bb23b125SNeil Armstrong					};
478bb23b125SNeil Armstrong
479bb23b125SNeil Armstrong					pwm_d_x3_pins: pwm-d-x3 {
480bb23b125SNeil Armstrong						mux {
481bb23b125SNeil Armstrong							groups = "pwm_d_x3";
482bb23b125SNeil Armstrong							function = "pwm_d";
483bb23b125SNeil Armstrong							bias-disable;
484bb23b125SNeil Armstrong						};
485bb23b125SNeil Armstrong					};
486bb23b125SNeil Armstrong
487bb23b125SNeil Armstrong					pwm_d_x6_pins: pwm-d-x6 {
488bb23b125SNeil Armstrong						mux {
489bb23b125SNeil Armstrong							groups = "pwm_d_x6";
490bb23b125SNeil Armstrong							function = "pwm_d";
491bb23b125SNeil Armstrong							bias-disable;
492bb23b125SNeil Armstrong						};
493bb23b125SNeil Armstrong					};
494bb23b125SNeil Armstrong
495bb23b125SNeil Armstrong					pwm_e_pins: pwm-e {
496bb23b125SNeil Armstrong						mux {
497bb23b125SNeil Armstrong							groups = "pwm_e";
498bb23b125SNeil Armstrong							function = "pwm_e";
499bb23b125SNeil Armstrong							bias-disable;
500bb23b125SNeil Armstrong						};
501bb23b125SNeil Armstrong					};
502bb23b125SNeil Armstrong
503bb23b125SNeil Armstrong					pwm_f_x_pins: pwm-f-x {
504bb23b125SNeil Armstrong						mux {
505bb23b125SNeil Armstrong							groups = "pwm_f_x";
506bb23b125SNeil Armstrong							function = "pwm_f";
507bb23b125SNeil Armstrong							bias-disable;
508bb23b125SNeil Armstrong						};
509bb23b125SNeil Armstrong					};
510bb23b125SNeil Armstrong
511bb23b125SNeil Armstrong					pwm_f_h_pins: pwm-f-h {
512bb23b125SNeil Armstrong						mux {
513bb23b125SNeil Armstrong							groups = "pwm_f_h";
514bb23b125SNeil Armstrong							function = "pwm_f";
515bb23b125SNeil Armstrong							bias-disable;
516bb23b125SNeil Armstrong						};
517bb23b125SNeil Armstrong					};
518bb23b125SNeil Armstrong
5194759fd87SJerome Brunet					sdcard_c_pins: sdcard_c {
5204759fd87SJerome Brunet						mux-0 {
5214759fd87SJerome Brunet							groups = "sdcard_d0_c",
5224759fd87SJerome Brunet								 "sdcard_d1_c",
5234759fd87SJerome Brunet								 "sdcard_d2_c",
5244759fd87SJerome Brunet								 "sdcard_d3_c",
5254759fd87SJerome Brunet								 "sdcard_cmd_c";
5264759fd87SJerome Brunet							function = "sdcard";
5274759fd87SJerome Brunet							bias-pull-up;
5284759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5294759fd87SJerome Brunet						};
5304759fd87SJerome Brunet
5314759fd87SJerome Brunet						mux-1 {
5324759fd87SJerome Brunet							groups = "sdcard_clk_c";
5334759fd87SJerome Brunet							function = "sdcard";
5344759fd87SJerome Brunet							bias-disable;
5354759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5364759fd87SJerome Brunet						};
5374759fd87SJerome Brunet					};
5384759fd87SJerome Brunet
5394759fd87SJerome Brunet					sdcard_clk_gate_c_pins: sdcard_clk_gate_c {
5404759fd87SJerome Brunet						mux {
5414759fd87SJerome Brunet							groups = "GPIOC_4";
5424759fd87SJerome Brunet							function = "gpio_periphs";
5434759fd87SJerome Brunet							bias-pull-down;
5444759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5454759fd87SJerome Brunet						};
5464759fd87SJerome Brunet					};
5474759fd87SJerome Brunet
5484759fd87SJerome Brunet					sdcard_z_pins: sdcard_z {
5494759fd87SJerome Brunet						mux-0 {
5504759fd87SJerome Brunet							groups = "sdcard_d0_z",
5514759fd87SJerome Brunet								 "sdcard_d1_z",
5524759fd87SJerome Brunet								 "sdcard_d2_z",
5534759fd87SJerome Brunet								 "sdcard_d3_z",
5544759fd87SJerome Brunet								 "sdcard_cmd_z";
5554759fd87SJerome Brunet							function = "sdcard";
5564759fd87SJerome Brunet							bias-pull-up;
5574759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5584759fd87SJerome Brunet						};
5594759fd87SJerome Brunet
5604759fd87SJerome Brunet						mux-1 {
5614759fd87SJerome Brunet							groups = "sdcard_clk_z";
5624759fd87SJerome Brunet							function = "sdcard";
5634759fd87SJerome Brunet							bias-disable;
5644759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5654759fd87SJerome Brunet						};
5664759fd87SJerome Brunet					};
5674759fd87SJerome Brunet
5684759fd87SJerome Brunet					sdcard_clk_gate_z_pins: sdcard_clk_gate_z {
5694759fd87SJerome Brunet						mux {
5704759fd87SJerome Brunet							groups = "GPIOZ_6";
5714759fd87SJerome Brunet							function = "gpio_periphs";
5724759fd87SJerome Brunet							bias-pull-down;
5734759fd87SJerome Brunet							drive-strength-microamp = <4000>;
5744759fd87SJerome Brunet						};
5754759fd87SJerome Brunet					};
5764759fd87SJerome Brunet
577ff4f8b6cSNeil Armstrong					uart_a_pins: uart-a {
578ff4f8b6cSNeil Armstrong						mux {
579ff4f8b6cSNeil Armstrong							groups = "uart_a_tx",
580ff4f8b6cSNeil Armstrong								 "uart_a_rx";
581ff4f8b6cSNeil Armstrong							function = "uart_a";
582ff4f8b6cSNeil Armstrong							bias-disable;
583ff4f8b6cSNeil Armstrong						};
584ff4f8b6cSNeil Armstrong					};
585ff4f8b6cSNeil Armstrong
586ff4f8b6cSNeil Armstrong					uart_a_cts_rts_pins: uart-a-cts-rts {
587ff4f8b6cSNeil Armstrong						mux {
588ff4f8b6cSNeil Armstrong							groups = "uart_a_cts",
589ff4f8b6cSNeil Armstrong								 "uart_a_rts";
590ff4f8b6cSNeil Armstrong							function = "uart_a";
591ff4f8b6cSNeil Armstrong							bias-disable;
592ff4f8b6cSNeil Armstrong						};
593ff4f8b6cSNeil Armstrong					};
594ff4f8b6cSNeil Armstrong
595ff4f8b6cSNeil Armstrong					uart_b_pins: uart-b {
596ff4f8b6cSNeil Armstrong						mux {
597ff4f8b6cSNeil Armstrong							groups = "uart_b_tx",
598ff4f8b6cSNeil Armstrong								 "uart_b_rx";
599ff4f8b6cSNeil Armstrong							function = "uart_b";
600ff4f8b6cSNeil Armstrong							bias-disable;
601ff4f8b6cSNeil Armstrong						};
602ff4f8b6cSNeil Armstrong					};
603ff4f8b6cSNeil Armstrong
604ff4f8b6cSNeil Armstrong					uart_c_pins: uart-c {
605ff4f8b6cSNeil Armstrong						mux {
606ff4f8b6cSNeil Armstrong							groups = "uart_c_tx",
607ff4f8b6cSNeil Armstrong								 "uart_c_rx";
608ff4f8b6cSNeil Armstrong							function = "uart_c";
609ff4f8b6cSNeil Armstrong							bias-disable;
610ff4f8b6cSNeil Armstrong						};
611ff4f8b6cSNeil Armstrong					};
612ff4f8b6cSNeil Armstrong
613ff4f8b6cSNeil Armstrong					uart_c_cts_rts_pins: uart-c-cts-rts {
614ff4f8b6cSNeil Armstrong						mux {
615ff4f8b6cSNeil Armstrong							groups = "uart_c_cts",
616ff4f8b6cSNeil Armstrong								 "uart_c_rts";
617ff4f8b6cSNeil Armstrong							function = "uart_c";
618ff4f8b6cSNeil Armstrong							bias-disable;
619ff4f8b6cSNeil Armstrong						};
620ff4f8b6cSNeil Armstrong					};
62111a7bea1SJerome Brunet				};
6229c8c52f7SJianxin Pan			};
6239c8c52f7SJianxin Pan
6249baf7d6bSNeil Armstrong			usb2_phy0: phy@36000 {
6259baf7d6bSNeil Armstrong				compatible = "amlogic,g12a-usb2-phy";
6269baf7d6bSNeil Armstrong				reg = <0x0 0x36000 0x0 0x2000>;
6279baf7d6bSNeil Armstrong				clocks = <&xtal>;
6289baf7d6bSNeil Armstrong				clock-names = "xtal";
6299baf7d6bSNeil Armstrong				resets = <&reset RESET_USB_PHY20>;
6309baf7d6bSNeil Armstrong				reset-names = "phy";
6319baf7d6bSNeil Armstrong				#phy-cells = <0>;
6329baf7d6bSNeil Armstrong			};
6339baf7d6bSNeil Armstrong
634083feecdSNeil Armstrong			dmc: bus@38000 {
635083feecdSNeil Armstrong				compatible = "simple-bus";
636083feecdSNeil Armstrong				reg = <0x0 0x38000 0x0 0x400>;
637083feecdSNeil Armstrong				#address-cells = <2>;
638083feecdSNeil Armstrong				#size-cells = <2>;
639083feecdSNeil Armstrong				ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
640083feecdSNeil Armstrong
641083feecdSNeil Armstrong				canvas: video-lut@48 {
642083feecdSNeil Armstrong					compatible = "amlogic,canvas";
643083feecdSNeil Armstrong					reg = <0x0 0x48 0x0 0x14>;
644083feecdSNeil Armstrong				};
645083feecdSNeil Armstrong			};
646083feecdSNeil Armstrong
6479baf7d6bSNeil Armstrong			usb2_phy1: phy@3a000 {
6489baf7d6bSNeil Armstrong				compatible = "amlogic,g12a-usb2-phy";
6499baf7d6bSNeil Armstrong				reg = <0x0 0x3a000 0x0 0x2000>;
6509baf7d6bSNeil Armstrong				clocks = <&xtal>;
6519baf7d6bSNeil Armstrong				clock-names = "xtal";
6529baf7d6bSNeil Armstrong				resets = <&reset RESET_USB_PHY21>;
6539baf7d6bSNeil Armstrong				reset-names = "phy";
6549baf7d6bSNeil Armstrong				#phy-cells = <0>;
6559baf7d6bSNeil Armstrong			};
6569baf7d6bSNeil Armstrong
657503f5fedSJerome Brunet			hiu: bus@3c000 {
6589c8c52f7SJianxin Pan				compatible = "simple-bus";
659503f5fedSJerome Brunet				reg = <0x0 0x3c000 0x0 0x1400>;
6609c8c52f7SJianxin Pan				#address-cells = <2>;
6619c8c52f7SJianxin Pan				#size-cells = <2>;
662503f5fedSJerome Brunet				ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>;
663785fb434SJerome Brunet
664785fb434SJerome Brunet				hhi: system-controller@0 {
665785fb434SJerome Brunet					compatible = "amlogic,meson-gx-hhi-sysctrl",
666785fb434SJerome Brunet						     "simple-mfd", "syscon";
667785fb434SJerome Brunet					reg = <0 0 0 0x400>;
668785fb434SJerome Brunet
669785fb434SJerome Brunet					clkc: clock-controller {
670785fb434SJerome Brunet						compatible = "amlogic,g12a-clkc";
671785fb434SJerome Brunet						#clock-cells = <1>;
672785fb434SJerome Brunet						clocks = <&xtal>;
673785fb434SJerome Brunet						clock-names = "xtal";
674785fb434SJerome Brunet					};
675785fb434SJerome Brunet				};
676503f5fedSJerome Brunet			};
6779baf7d6bSNeil Armstrong
67803c3f08cSJerome Brunet			audio: bus@42000 {
67903c3f08cSJerome Brunet				compatible = "simple-bus";
68003c3f08cSJerome Brunet				reg = <0x0 0x42000 0x0 0x2000>;
68103c3f08cSJerome Brunet				#address-cells = <2>;
68203c3f08cSJerome Brunet				#size-cells = <2>;
68303c3f08cSJerome Brunet				ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>;
68403c3f08cSJerome Brunet
68503c3f08cSJerome Brunet				clkc_audio: clock-controller@0 {
68603c3f08cSJerome Brunet					status = "disabled";
68703c3f08cSJerome Brunet					compatible = "amlogic,g12a-audio-clkc";
68803c3f08cSJerome Brunet					reg = <0x0 0x0 0x0 0xb4>;
68903c3f08cSJerome Brunet					#clock-cells = <1>;
69003c3f08cSJerome Brunet
69103c3f08cSJerome Brunet					clocks = <&clkc CLKID_AUDIO>,
69203c3f08cSJerome Brunet						 <&clkc CLKID_MPLL0>,
69303c3f08cSJerome Brunet						 <&clkc CLKID_MPLL1>,
69403c3f08cSJerome Brunet						 <&clkc CLKID_MPLL2>,
69503c3f08cSJerome Brunet						 <&clkc CLKID_MPLL3>,
69603c3f08cSJerome Brunet						 <&clkc CLKID_HIFI_PLL>,
69703c3f08cSJerome Brunet						 <&clkc CLKID_FCLK_DIV3>,
69803c3f08cSJerome Brunet						 <&clkc CLKID_FCLK_DIV4>,
69903c3f08cSJerome Brunet						 <&clkc CLKID_GP0_PLL>;
70003c3f08cSJerome Brunet					clock-names = "pclk",
70103c3f08cSJerome Brunet						      "mst_in0",
70203c3f08cSJerome Brunet						      "mst_in1",
70303c3f08cSJerome Brunet						      "mst_in2",
70403c3f08cSJerome Brunet						      "mst_in3",
70503c3f08cSJerome Brunet						      "mst_in4",
70603c3f08cSJerome Brunet						      "mst_in5",
70703c3f08cSJerome Brunet						      "mst_in6",
70803c3f08cSJerome Brunet						      "mst_in7";
70903c3f08cSJerome Brunet
71003c3f08cSJerome Brunet					resets = <&reset RESET_AUDIO>;
71103c3f08cSJerome Brunet				};
7125dc0f28fSJerome Brunet
713c59b7fe5SJerome Brunet				toddr_a: audio-controller@100 {
714c59b7fe5SJerome Brunet					compatible = "amlogic,g12a-toddr",
715c59b7fe5SJerome Brunet						     "amlogic,axg-toddr";
716c59b7fe5SJerome Brunet					reg = <0x0 0x100 0x0 0x1c>;
717c59b7fe5SJerome Brunet					#sound-dai-cells = <0>;
718c59b7fe5SJerome Brunet					sound-name-prefix = "TODDR_A";
719c59b7fe5SJerome Brunet					interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
720c59b7fe5SJerome Brunet					clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
721c59b7fe5SJerome Brunet					resets = <&arb AXG_ARB_TODDR_A>;
722c59b7fe5SJerome Brunet					status = "disabled";
723c59b7fe5SJerome Brunet				};
724c59b7fe5SJerome Brunet
725c59b7fe5SJerome Brunet				toddr_b: audio-controller@140 {
726c59b7fe5SJerome Brunet					compatible = "amlogic,g12a-toddr",
727c59b7fe5SJerome Brunet						     "amlogic,axg-toddr";
728c59b7fe5SJerome Brunet					reg = <0x0 0x140 0x0 0x1c>;
729c59b7fe5SJerome Brunet					#sound-dai-cells = <0>;
730c59b7fe5SJerome Brunet					sound-name-prefix = "TODDR_B";
731c59b7fe5SJerome Brunet					interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
732c59b7fe5SJerome Brunet					clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
733c59b7fe5SJerome Brunet					resets = <&arb AXG_ARB_TODDR_B>;
734c59b7fe5SJerome Brunet					status = "disabled";
735c59b7fe5SJerome Brunet				};
736c59b7fe5SJerome Brunet
737c59b7fe5SJerome Brunet				toddr_c: audio-controller@180 {
738c59b7fe5SJerome Brunet					compatible = "amlogic,g12a-toddr",
739c59b7fe5SJerome Brunet						     "amlogic,axg-toddr";
740c59b7fe5SJerome Brunet					reg = <0x0 0x180 0x0 0x1c>;
741c59b7fe5SJerome Brunet					#sound-dai-cells = <0>;
742c59b7fe5SJerome Brunet					sound-name-prefix = "TODDR_C";
743c59b7fe5SJerome Brunet					interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
744c59b7fe5SJerome Brunet					clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
745c59b7fe5SJerome Brunet					resets = <&arb AXG_ARB_TODDR_C>;
746c59b7fe5SJerome Brunet					status = "disabled";
747c59b7fe5SJerome Brunet				};
748c59b7fe5SJerome Brunet
749c59b7fe5SJerome Brunet				frddr_a: audio-controller@1c0 {
750c59b7fe5SJerome Brunet					compatible = "amlogic,g12a-frddr",
751c59b7fe5SJerome Brunet						     "amlogic,axg-frddr";
752c59b7fe5SJerome Brunet					reg = <0x0 0x1c0 0x0 0x1c>;
753c59b7fe5SJerome Brunet					#sound-dai-cells = <0>;
754c59b7fe5SJerome Brunet					sound-name-prefix = "FRDDR_A";
755c59b7fe5SJerome Brunet					interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
756c59b7fe5SJerome Brunet					clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
757c59b7fe5SJerome Brunet					resets = <&arb AXG_ARB_FRDDR_A>;
758c59b7fe5SJerome Brunet					status = "disabled";
759c59b7fe5SJerome Brunet				};
760c59b7fe5SJerome Brunet
761c59b7fe5SJerome Brunet				frddr_b: audio-controller@200 {
762c59b7fe5SJerome Brunet					compatible = "amlogic,g12a-frddr",
763c59b7fe5SJerome Brunet						     "amlogic,axg-frddr";
764c59b7fe5SJerome Brunet					reg = <0x0 0x200 0x0 0x1c>;
765c59b7fe5SJerome Brunet					#sound-dai-cells = <0>;
766c59b7fe5SJerome Brunet					sound-name-prefix = "FRDDR_B";
767c59b7fe5SJerome Brunet					interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
768c59b7fe5SJerome Brunet					clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
769c59b7fe5SJerome Brunet					resets = <&arb AXG_ARB_FRDDR_B>;
770c59b7fe5SJerome Brunet					status = "disabled";
771c59b7fe5SJerome Brunet				};
772c59b7fe5SJerome Brunet
773c59b7fe5SJerome Brunet				frddr_c: audio-controller@240 {
774c59b7fe5SJerome Brunet					compatible = "amlogic,g12a-frddr",
775c59b7fe5SJerome Brunet						     "amlogic,axg-frddr";
776c59b7fe5SJerome Brunet					reg = <0x0 0x240 0x0 0x1c>;
777c59b7fe5SJerome Brunet					#sound-dai-cells = <0>;
778c59b7fe5SJerome Brunet					sound-name-prefix = "FRDDR_C";
779c59b7fe5SJerome Brunet					interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
780c59b7fe5SJerome Brunet					clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
781c59b7fe5SJerome Brunet					resets = <&arb AXG_ARB_FRDDR_C>;
782c59b7fe5SJerome Brunet					status = "disabled";
783c59b7fe5SJerome Brunet				};
784c59b7fe5SJerome Brunet
7855dc0f28fSJerome Brunet				arb: reset-controller@280 {
7865dc0f28fSJerome Brunet					status = "disabled";
7875dc0f28fSJerome Brunet					compatible = "amlogic,meson-axg-audio-arb";
7885dc0f28fSJerome Brunet					reg = <0x0 0x280 0x0 0x4>;
7895dc0f28fSJerome Brunet					#reset-cells = <1>;
7905dc0f28fSJerome Brunet					clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
7915dc0f28fSJerome Brunet				};
79203c3f08cSJerome Brunet			};
79303c3f08cSJerome Brunet
7949baf7d6bSNeil Armstrong			usb3_pcie_phy: phy@46000 {
7959baf7d6bSNeil Armstrong				compatible = "amlogic,g12a-usb3-pcie-phy";
7969baf7d6bSNeil Armstrong				reg = <0x0 0x46000 0x0 0x2000>;
7979baf7d6bSNeil Armstrong				clocks = <&clkc CLKID_PCIE_PLL>;
7989baf7d6bSNeil Armstrong				clock-names = "ref_clk";
7999baf7d6bSNeil Armstrong				resets = <&reset RESET_PCIE_PHY>;
8009baf7d6bSNeil Armstrong				reset-names = "phy";
8019baf7d6bSNeil Armstrong				assigned-clocks = <&clkc CLKID_PCIE_PLL>;
8029baf7d6bSNeil Armstrong				assigned-clock-rates = <100000000>;
8039baf7d6bSNeil Armstrong				#phy-cells = <1>;
8049baf7d6bSNeil Armstrong			};
8059c8c52f7SJianxin Pan		};
8069c8c52f7SJianxin Pan
8079c8c52f7SJianxin Pan		aobus: bus@ff800000 {
8089c8c52f7SJianxin Pan			compatible = "simple-bus";
8099c8c52f7SJianxin Pan			reg = <0x0 0xff800000 0x0 0x100000>;
8109c8c52f7SJianxin Pan			#address-cells = <2>;
8119c8c52f7SJianxin Pan			#size-cells = <2>;
8129c8c52f7SJianxin Pan			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
8139c8c52f7SJianxin Pan
814b019f4a4SNeil Armstrong			rti: sys-ctrl@0 {
815b019f4a4SNeil Armstrong				compatible = "amlogic,meson-gx-ao-sysctrl",
816b019f4a4SNeil Armstrong					     "simple-mfd", "syscon";
817b019f4a4SNeil Armstrong				reg = <0x0 0x0 0x0 0x100>;
818b019f4a4SNeil Armstrong				#address-cells = <2>;
819b019f4a4SNeil Armstrong				#size-cells = <2>;
820b019f4a4SNeil Armstrong				ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
821b019f4a4SNeil Armstrong
822b019f4a4SNeil Armstrong				clkc_AO: clock-controller {
823b019f4a4SNeil Armstrong					compatible = "amlogic,meson-g12a-aoclkc";
824b019f4a4SNeil Armstrong					#clock-cells = <1>;
825b019f4a4SNeil Armstrong					#reset-cells = <1>;
826b019f4a4SNeil Armstrong					clocks = <&xtal>, <&clkc CLKID_CLK81>;
827b019f4a4SNeil Armstrong					clock-names = "xtal", "mpeg-clk";
828b019f4a4SNeil Armstrong				};
82911a7bea1SJerome Brunet
830083feecdSNeil Armstrong				pwrc_vpu: power-controller-vpu {
831083feecdSNeil Armstrong					compatible = "amlogic,meson-g12a-pwrc-vpu";
832083feecdSNeil Armstrong					#power-domain-cells = <0>;
833083feecdSNeil Armstrong					amlogic,hhi-sysctrl = <&hhi>;
834083feecdSNeil Armstrong					resets = <&reset RESET_VIU>,
835083feecdSNeil Armstrong						 <&reset RESET_VENC>,
836083feecdSNeil Armstrong						 <&reset RESET_VCBUS>,
837083feecdSNeil Armstrong						 <&reset RESET_BT656>,
838083feecdSNeil Armstrong						 <&reset RESET_RDMA>,
839083feecdSNeil Armstrong						 <&reset RESET_VENCI>,
840083feecdSNeil Armstrong						 <&reset RESET_VENCP>,
841083feecdSNeil Armstrong						 <&reset RESET_VDAC>,
842083feecdSNeil Armstrong						 <&reset RESET_VDI6>,
843083feecdSNeil Armstrong						 <&reset RESET_VENCL>,
844083feecdSNeil Armstrong						 <&reset RESET_VID_LOCK>;
845083feecdSNeil Armstrong					clocks = <&clkc CLKID_VPU>,
846083feecdSNeil Armstrong						 <&clkc CLKID_VAPB>;
847083feecdSNeil Armstrong					clock-names = "vpu", "vapb";
848083feecdSNeil Armstrong					/*
849083feecdSNeil Armstrong					 * VPU clocking is provided by two identical clock paths
850083feecdSNeil Armstrong					 * VPU_0 and VPU_1 muxed to a single clock by a glitch
851083feecdSNeil Armstrong					 * free mux to safely change frequency while running.
852083feecdSNeil Armstrong					 * Same for VAPB but with a final gate after the glitch free mux.
853083feecdSNeil Armstrong					 */
854083feecdSNeil Armstrong					assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
855083feecdSNeil Armstrong							  <&clkc CLKID_VPU_0>,
856083feecdSNeil Armstrong							  <&clkc CLKID_VPU>, /* Glitch free mux */
857083feecdSNeil Armstrong							  <&clkc CLKID_VAPB_0_SEL>,
858083feecdSNeil Armstrong							  <&clkc CLKID_VAPB_0>,
859083feecdSNeil Armstrong							  <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
860083feecdSNeil Armstrong					assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
861083feecdSNeil Armstrong								 <0>, /* Do Nothing */
862083feecdSNeil Armstrong								 <&clkc CLKID_VPU_0>,
863083feecdSNeil Armstrong								 <&clkc CLKID_FCLK_DIV4>,
864083feecdSNeil Armstrong								 <0>, /* Do Nothing */
865083feecdSNeil Armstrong								 <&clkc CLKID_VAPB_0>;
866083feecdSNeil Armstrong					assigned-clock-rates = <0>, /* Do Nothing */
867083feecdSNeil Armstrong							       <666666666>,
868083feecdSNeil Armstrong							       <0>, /* Do Nothing */
869083feecdSNeil Armstrong							       <0>, /* Do Nothing */
870083feecdSNeil Armstrong							       <250000000>,
871083feecdSNeil Armstrong							       <0>; /* Do Nothing */
872083feecdSNeil Armstrong				};
873083feecdSNeil Armstrong
87411a7bea1SJerome Brunet				ao_pinctrl: pinctrl@14 {
87511a7bea1SJerome Brunet					compatible = "amlogic,meson-g12a-aobus-pinctrl";
87611a7bea1SJerome Brunet					#address-cells = <2>;
87711a7bea1SJerome Brunet					#size-cells = <2>;
87811a7bea1SJerome Brunet					ranges;
87911a7bea1SJerome Brunet
88011a7bea1SJerome Brunet					gpio_ao: bank@14 {
88111a7bea1SJerome Brunet						reg = <0x0 0x14 0x0 0x8>,
88211a7bea1SJerome Brunet						      <0x0 0x1c 0x0 0x8>,
88311a7bea1SJerome Brunet						      <0x0 0x24 0x0 0x14>;
88411a7bea1SJerome Brunet						reg-names = "mux",
88511a7bea1SJerome Brunet							    "ds",
88611a7bea1SJerome Brunet							    "gpio";
88711a7bea1SJerome Brunet						gpio-controller;
88811a7bea1SJerome Brunet						#gpio-cells = <2>;
88911a7bea1SJerome Brunet						gpio-ranges = <&ao_pinctrl 0 0 15>;
89011a7bea1SJerome Brunet					};
891e92546c2SJerome Brunet
8929951aca6SGuillaume La Roque					i2c_ao_sck_pins: i2c_ao_sck_pins {
8939951aca6SGuillaume La Roque						mux {
8949951aca6SGuillaume La Roque							groups = "i2c_ao_sck";
8959951aca6SGuillaume La Roque							function = "i2c_ao";
8969951aca6SGuillaume La Roque							bias-disable;
8979951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
8989951aca6SGuillaume La Roque						};
8999951aca6SGuillaume La Roque					};
9009951aca6SGuillaume La Roque
9019951aca6SGuillaume La Roque					i2c_ao_sda_pins: i2c_ao_sda {
9029951aca6SGuillaume La Roque						mux {
9039951aca6SGuillaume La Roque							groups = "i2c_ao_sda";
9049951aca6SGuillaume La Roque							function = "i2c_ao";
9059951aca6SGuillaume La Roque							bias-disable;
9069951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
9079951aca6SGuillaume La Roque						};
9089951aca6SGuillaume La Roque					};
9099951aca6SGuillaume La Roque
9109951aca6SGuillaume La Roque					i2c_ao_sck_e_pins: i2c_ao_sck_e {
9119951aca6SGuillaume La Roque						mux {
9129951aca6SGuillaume La Roque							groups = "i2c_ao_sck_e";
9139951aca6SGuillaume La Roque							function = "i2c_ao";
9149951aca6SGuillaume La Roque							bias-disable;
9159951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
9169951aca6SGuillaume La Roque						};
9179951aca6SGuillaume La Roque					};
9189951aca6SGuillaume La Roque
9199951aca6SGuillaume La Roque					i2c_ao_sda_e_pins: i2c_ao_sda_e {
9209951aca6SGuillaume La Roque						mux {
9219951aca6SGuillaume La Roque							groups = "i2c_ao_sda_e";
9229951aca6SGuillaume La Roque							function = "i2c_ao";
9239951aca6SGuillaume La Roque							bias-disable;
9249951aca6SGuillaume La Roque							drive-strength-microamp = <3000>;
9259951aca6SGuillaume La Roque						};
9269951aca6SGuillaume La Roque					};
9279951aca6SGuillaume La Roque
928e92546c2SJerome Brunet					uart_ao_a_pins: uart-a-ao {
929e92546c2SJerome Brunet						mux {
930e92546c2SJerome Brunet							groups = "uart_ao_a_tx",
931e92546c2SJerome Brunet								 "uart_ao_a_rx";
932e92546c2SJerome Brunet							function = "uart_ao_a";
933e92546c2SJerome Brunet							bias-disable;
934e92546c2SJerome Brunet						};
935e92546c2SJerome Brunet					};
936e92546c2SJerome Brunet
937e92546c2SJerome Brunet					uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
938e92546c2SJerome Brunet						mux {
939e92546c2SJerome Brunet							groups = "uart_ao_a_cts",
940e92546c2SJerome Brunet								 "uart_ao_a_rts";
941e92546c2SJerome Brunet							function = "uart_ao_a";
942e92546c2SJerome Brunet							bias-disable;
943e92546c2SJerome Brunet						};
944e92546c2SJerome Brunet					};
945bb23b125SNeil Armstrong
946bb23b125SNeil Armstrong					pwm_ao_a_pins: pwm-ao-a {
947bb23b125SNeil Armstrong						mux {
948bb23b125SNeil Armstrong							groups = "pwm_ao_a";
949bb23b125SNeil Armstrong							function = "pwm_ao_a";
950bb23b125SNeil Armstrong							bias-disable;
951bb23b125SNeil Armstrong						};
952bb23b125SNeil Armstrong					};
953bb23b125SNeil Armstrong
954bb23b125SNeil Armstrong					pwm_ao_b_pins: pwm-ao-b {
955bb23b125SNeil Armstrong						mux {
956bb23b125SNeil Armstrong							groups = "pwm_ao_b";
957bb23b125SNeil Armstrong							function = "pwm_ao_b";
958bb23b125SNeil Armstrong							bias-disable;
959bb23b125SNeil Armstrong						};
960bb23b125SNeil Armstrong					};
961bb23b125SNeil Armstrong
962bb23b125SNeil Armstrong					pwm_ao_c_4_pins: pwm-ao-c-4 {
963bb23b125SNeil Armstrong						mux {
964bb23b125SNeil Armstrong							groups = "pwm_ao_c_4";
965bb23b125SNeil Armstrong							function = "pwm_ao_c";
966bb23b125SNeil Armstrong							bias-disable;
967bb23b125SNeil Armstrong						};
968bb23b125SNeil Armstrong					};
969bb23b125SNeil Armstrong
970bb23b125SNeil Armstrong					pwm_ao_c_6_pins: pwm-ao-c-6 {
971bb23b125SNeil Armstrong						mux {
972bb23b125SNeil Armstrong							groups = "pwm_ao_c_6";
973bb23b125SNeil Armstrong							function = "pwm_ao_c";
974bb23b125SNeil Armstrong							bias-disable;
975bb23b125SNeil Armstrong						};
976bb23b125SNeil Armstrong					};
977bb23b125SNeil Armstrong
978bb23b125SNeil Armstrong					pwm_ao_d_5_pins: pwm-ao-d-5 {
979bb23b125SNeil Armstrong						mux {
980bb23b125SNeil Armstrong							groups = "pwm_ao_d_5";
981bb23b125SNeil Armstrong							function = "pwm_ao_d";
982bb23b125SNeil Armstrong							bias-disable;
983bb23b125SNeil Armstrong						};
984bb23b125SNeil Armstrong					};
985bb23b125SNeil Armstrong
986bb23b125SNeil Armstrong					pwm_ao_d_10_pins: pwm-ao-d-10 {
987bb23b125SNeil Armstrong						mux {
988bb23b125SNeil Armstrong							groups = "pwm_ao_d_10";
989bb23b125SNeil Armstrong							function = "pwm_ao_d";
990bb23b125SNeil Armstrong							bias-disable;
991bb23b125SNeil Armstrong						};
992bb23b125SNeil Armstrong					};
993bb23b125SNeil Armstrong
994bb23b125SNeil Armstrong					pwm_ao_d_e_pins: pwm-ao-d-e {
995bb23b125SNeil Armstrong						mux {
996bb23b125SNeil Armstrong							groups = "pwm_ao_d_e";
997bb23b125SNeil Armstrong							function = "pwm_ao_d";
9982bfe8412SNeil Armstrong						};
9992bfe8412SNeil Armstrong					};
10002bfe8412SNeil Armstrong
10012bfe8412SNeil Armstrong					remote_input_ao_pins: remote-input-ao {
10022bfe8412SNeil Armstrong						mux {
10032bfe8412SNeil Armstrong							groups = "remote_ao_input";
10042bfe8412SNeil Armstrong							function = "remote_ao_input";
1005bb23b125SNeil Armstrong							bias-disable;
1006bb23b125SNeil Armstrong						};
1007bb23b125SNeil Armstrong					};
100811a7bea1SJerome Brunet				};
1009b019f4a4SNeil Armstrong			};
1010b019f4a4SNeil Armstrong
101191516e54SNeil Armstrong			cec_AO: cec@100 {
101291516e54SNeil Armstrong				compatible = "amlogic,meson-gx-ao-cec";
101391516e54SNeil Armstrong				reg = <0x0 0x00100 0x0 0x14>;
101491516e54SNeil Armstrong				interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
101591516e54SNeil Armstrong				clocks = <&clkc_AO CLKID_AO_CEC>;
101691516e54SNeil Armstrong				clock-names = "core";
101791516e54SNeil Armstrong				status = "disabled";
101891516e54SNeil Armstrong			};
101991516e54SNeil Armstrong
10200fa724c5SNeil Armstrong			sec_AO: ao-secure@140 {
10210fa724c5SNeil Armstrong				compatible = "amlogic,meson-gx-ao-secure", "syscon";
10220fa724c5SNeil Armstrong				reg = <0x0 0x140 0x0 0x140>;
10230fa724c5SNeil Armstrong				amlogic,has-chip-id;
10240fa724c5SNeil Armstrong			};
10250fa724c5SNeil Armstrong
102691516e54SNeil Armstrong			cecb_AO: cec@280 {
102791516e54SNeil Armstrong				compatible = "amlogic,meson-g12a-ao-cec";
102891516e54SNeil Armstrong				reg = <0x0 0x00280 0x0 0x1c>;
102991516e54SNeil Armstrong				interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
103091516e54SNeil Armstrong				clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>;
103191516e54SNeil Armstrong				clock-names = "oscin";
103291516e54SNeil Armstrong				status = "disabled";
103391516e54SNeil Armstrong			};
103491516e54SNeil Armstrong
1035bb23b125SNeil Armstrong			pwm_AO_cd: pwm@2000 {
1036bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ao-pwm-cd";
1037bb23b125SNeil Armstrong				reg = <0x0 0x2000 0x0 0x20>;
1038bb23b125SNeil Armstrong				#pwm-cells = <3>;
1039bb23b125SNeil Armstrong				status = "disabled";
1040bb23b125SNeil Armstrong			};
1041bb23b125SNeil Armstrong
10429c8c52f7SJianxin Pan			uart_AO: serial@3000 {
1043503f5fedSJerome Brunet				compatible = "amlogic,meson-gx-uart",
1044503f5fedSJerome Brunet					     "amlogic,meson-ao-uart";
10459c8c52f7SJianxin Pan				reg = <0x0 0x3000 0x0 0x18>;
10469c8c52f7SJianxin Pan				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
10479a690907SJerome Brunet				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>;
10489c8c52f7SJianxin Pan				clock-names = "xtal", "pclk", "baud";
10499c8c52f7SJianxin Pan				status = "disabled";
10509c8c52f7SJianxin Pan			};
10519c8c52f7SJianxin Pan
10529c8c52f7SJianxin Pan			uart_AO_B: serial@4000 {
1053503f5fedSJerome Brunet				compatible = "amlogic,meson-gx-uart",
1054503f5fedSJerome Brunet					     "amlogic,meson-ao-uart";
10559c8c52f7SJianxin Pan				reg = <0x0 0x4000 0x0 0x18>;
10569c8c52f7SJianxin Pan				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
10579a690907SJerome Brunet				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
10589c8c52f7SJianxin Pan				clock-names = "xtal", "pclk", "baud";
10599c8c52f7SJianxin Pan				status = "disabled";
10609c8c52f7SJianxin Pan			};
1061820873cfSNeil Armstrong
10629951aca6SGuillaume La Roque			i2c_AO: i2c@5000 {
10639951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
10649951aca6SGuillaume La Roque				status = "disabled";
10659951aca6SGuillaume La Roque				reg = <0x0 0x05000 0x0 0x20>;
10669951aca6SGuillaume La Roque				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
10679951aca6SGuillaume La Roque				#address-cells = <1>;
10689951aca6SGuillaume La Roque				#size-cells = <0>;
10699951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
10709951aca6SGuillaume La Roque			};
10719951aca6SGuillaume La Roque
1072bb23b125SNeil Armstrong			pwm_AO_ab: pwm@7000 {
1073bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ao-pwm-ab";
1074bb23b125SNeil Armstrong				reg = <0x0 0x7000 0x0 0x20>;
1075bb23b125SNeil Armstrong				#pwm-cells = <3>;
1076bb23b125SNeil Armstrong				status = "disabled";
1077bb23b125SNeil Armstrong			};
1078bb23b125SNeil Armstrong
10792bfe8412SNeil Armstrong			ir: ir@8000 {
10802bfe8412SNeil Armstrong				compatible = "amlogic,meson-gxbb-ir";
10812bfe8412SNeil Armstrong				reg = <0x0 0x8000 0x0 0x20>;
10822bfe8412SNeil Armstrong				interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
10832bfe8412SNeil Armstrong				status = "disabled";
10842bfe8412SNeil Armstrong			};
10852bfe8412SNeil Armstrong
1086820873cfSNeil Armstrong			saradc: adc@9000 {
1087820873cfSNeil Armstrong				compatible = "amlogic,meson-g12a-saradc",
1088820873cfSNeil Armstrong					     "amlogic,meson-saradc";
1089820873cfSNeil Armstrong				reg = <0x0 0x9000 0x0 0x48>;
1090820873cfSNeil Armstrong				#io-channel-cells = <1>;
1091820873cfSNeil Armstrong				interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
1092820873cfSNeil Armstrong				clocks = <&xtal>,
1093820873cfSNeil Armstrong					 <&clkc_AO CLKID_AO_SAR_ADC>,
1094820873cfSNeil Armstrong					 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1095820873cfSNeil Armstrong					 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1096820873cfSNeil Armstrong				clock-names = "clkin", "core", "adc_clk", "adc_sel";
1097820873cfSNeil Armstrong				status = "disabled";
1098820873cfSNeil Armstrong			};
10999c8c52f7SJianxin Pan		};
11009c8c52f7SJianxin Pan
1101083feecdSNeil Armstrong		vpu: vpu@ff900000 {
1102083feecdSNeil Armstrong			compatible = "amlogic,meson-g12a-vpu";
1103083feecdSNeil Armstrong			reg = <0x0 0xff900000 0x0 0x100000>,
1104083feecdSNeil Armstrong			      <0x0 0xff63c000 0x0 0x1000>;
1105083feecdSNeil Armstrong			reg-names = "vpu", "hhi";
1106083feecdSNeil Armstrong			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
1107083feecdSNeil Armstrong			#address-cells = <1>;
1108083feecdSNeil Armstrong			#size-cells = <0>;
1109083feecdSNeil Armstrong			amlogic,canvas = <&canvas>;
1110083feecdSNeil Armstrong			power-domains = <&pwrc_vpu>;
1111083feecdSNeil Armstrong
1112083feecdSNeil Armstrong			/* CVBS VDAC output port */
1113083feecdSNeil Armstrong			cvbs_vdac_port: port@0 {
1114083feecdSNeil Armstrong				reg = <0>;
1115083feecdSNeil Armstrong			};
1116083feecdSNeil Armstrong
1117083feecdSNeil Armstrong			/* HDMI-TX output port */
1118083feecdSNeil Armstrong			hdmi_tx_port: port@1 {
1119083feecdSNeil Armstrong				reg = <1>;
1120083feecdSNeil Armstrong
1121083feecdSNeil Armstrong				hdmi_tx_out: endpoint {
1122083feecdSNeil Armstrong					remote-endpoint = <&hdmi_tx_in>;
1123083feecdSNeil Armstrong				};
1124083feecdSNeil Armstrong			};
1125083feecdSNeil Armstrong		};
1126083feecdSNeil Armstrong
11279c8c52f7SJianxin Pan		gic: interrupt-controller@ffc01000 {
11289c8c52f7SJianxin Pan			compatible = "arm,gic-400";
11299c8c52f7SJianxin Pan			reg = <0x0 0xffc01000 0 0x1000>,
11309c8c52f7SJianxin Pan			      <0x0 0xffc02000 0 0x2000>,
11319c8c52f7SJianxin Pan			      <0x0 0xffc04000 0 0x2000>,
11329c8c52f7SJianxin Pan			      <0x0 0xffc06000 0 0x2000>;
11339c8c52f7SJianxin Pan			interrupt-controller;
11349c8c52f7SJianxin Pan			interrupts = <GIC_PPI 9
11359c8c52f7SJianxin Pan				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
11369c8c52f7SJianxin Pan			#interrupt-cells = <3>;
11379c8c52f7SJianxin Pan			#address-cells = <0>;
11389c8c52f7SJianxin Pan		};
11399c8c52f7SJianxin Pan
11409c8c52f7SJianxin Pan		cbus: bus@ffd00000 {
11419c8c52f7SJianxin Pan			compatible = "simple-bus";
1142503f5fedSJerome Brunet			reg = <0x0 0xffd00000 0x0 0x100000>;
11439c8c52f7SJianxin Pan			#address-cells = <2>;
11449c8c52f7SJianxin Pan			#size-cells = <2>;
1145503f5fedSJerome Brunet			ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>;
11469c8c52f7SJianxin Pan
11477ab41c47SJerome Brunet			reset: reset-controller@1004 {
11487ab41c47SJerome Brunet				compatible = "amlogic,meson-g12a-reset",
11497ab41c47SJerome Brunet					     "amlogic,meson-axg-reset";
11507ab41c47SJerome Brunet				reg = <0x0 0x1004 0x0 0x9c>;
11517ab41c47SJerome Brunet				#reset-cells = <1>;
11527ab41c47SJerome Brunet			};
11537ab41c47SJerome Brunet
1154bb23b125SNeil Armstrong			pwm_ef: pwm@19000 {
1155bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ee-pwm";
1156bb23b125SNeil Armstrong				reg = <0x0 0x19000 0x0 0x20>;
1157bb23b125SNeil Armstrong				#pwm-cells = <3>;
1158bb23b125SNeil Armstrong				status = "disabled";
1159bb23b125SNeil Armstrong			};
1160bb23b125SNeil Armstrong
1161bb23b125SNeil Armstrong			pwm_cd: pwm@1a000 {
1162bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ee-pwm";
1163bb23b125SNeil Armstrong				reg = <0x0 0x1a000 0x0 0x20>;
1164bb23b125SNeil Armstrong				#pwm-cells = <3>;
1165bb23b125SNeil Armstrong				status = "disabled";
1166bb23b125SNeil Armstrong			};
1167bb23b125SNeil Armstrong
1168bb23b125SNeil Armstrong			pwm_ab: pwm@1b000 {
1169bb23b125SNeil Armstrong				compatible = "amlogic,meson-g12a-ee-pwm";
1170bb23b125SNeil Armstrong				reg = <0x0 0x1b000 0x0 0x20>;
1171bb23b125SNeil Armstrong				#pwm-cells = <3>;
1172bb23b125SNeil Armstrong				status = "disabled";
1173bb23b125SNeil Armstrong			};
1174bb23b125SNeil Armstrong
11759951aca6SGuillaume La Roque			i2c3: i2c@1c000 {
11769951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11779951aca6SGuillaume La Roque				status = "disabled";
11789951aca6SGuillaume La Roque				reg = <0x0 0x1c000 0x0 0x20>;
11799951aca6SGuillaume La Roque				interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
11809951aca6SGuillaume La Roque				#address-cells = <1>;
11819951aca6SGuillaume La Roque				#size-cells = <0>;
11829951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
11839951aca6SGuillaume La Roque			};
11849951aca6SGuillaume La Roque
11859951aca6SGuillaume La Roque			i2c2: i2c@1d000 {
11869951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11879951aca6SGuillaume La Roque				status = "disabled";
11889951aca6SGuillaume La Roque				reg = <0x0 0x1d000 0x0 0x20>;
11899951aca6SGuillaume La Roque				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
11909951aca6SGuillaume La Roque				#address-cells = <1>;
11919951aca6SGuillaume La Roque				#size-cells = <0>;
11929951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
11939951aca6SGuillaume La Roque			};
11949951aca6SGuillaume La Roque
11959951aca6SGuillaume La Roque			i2c1: i2c@1e000 {
11969951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
11979951aca6SGuillaume La Roque				status = "disabled";
11989951aca6SGuillaume La Roque				reg = <0x0 0x1e000 0x0 0x20>;
11999951aca6SGuillaume La Roque				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
12009951aca6SGuillaume La Roque				#address-cells = <1>;
12019951aca6SGuillaume La Roque				#size-cells = <0>;
12029951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
12039951aca6SGuillaume La Roque			};
12049951aca6SGuillaume La Roque
12059951aca6SGuillaume La Roque			i2c0: i2c@1f000 {
12069951aca6SGuillaume La Roque				compatible = "amlogic,meson-axg-i2c";
12079951aca6SGuillaume La Roque				status = "disabled";
12089951aca6SGuillaume La Roque				reg = <0x0 0x1f000 0x0 0x20>;
12099951aca6SGuillaume La Roque				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
12109951aca6SGuillaume La Roque				#address-cells = <1>;
12119951aca6SGuillaume La Roque				#size-cells = <0>;
12129951aca6SGuillaume La Roque				clocks = <&clkc CLKID_I2C>;
12139951aca6SGuillaume La Roque			};
12149951aca6SGuillaume La Roque
121560d4fdb8SJerome Brunet			clk_msr: clock-measure@18000 {
121660d4fdb8SJerome Brunet				compatible = "amlogic,meson-g12a-clk-measure";
121760d4fdb8SJerome Brunet				reg = <0x0 0x18000 0x0 0x10>;
121860d4fdb8SJerome Brunet			};
1219ff4f8b6cSNeil Armstrong
1220ff4f8b6cSNeil Armstrong			uart_C: serial@22000 {
1221ff4f8b6cSNeil Armstrong				compatible = "amlogic,meson-gx-uart";
1222ff4f8b6cSNeil Armstrong				reg = <0x0 0x22000 0x0 0x18>;
1223ff4f8b6cSNeil Armstrong				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
1224ff4f8b6cSNeil Armstrong				clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
1225ff4f8b6cSNeil Armstrong				clock-names = "xtal", "pclk", "baud";
1226ff4f8b6cSNeil Armstrong				status = "disabled";
1227ff4f8b6cSNeil Armstrong			};
1228ff4f8b6cSNeil Armstrong
1229ff4f8b6cSNeil Armstrong			uart_B: serial@23000 {
1230ff4f8b6cSNeil Armstrong				compatible = "amlogic,meson-gx-uart";
1231ff4f8b6cSNeil Armstrong				reg = <0x0 0x23000 0x0 0x18>;
1232ff4f8b6cSNeil Armstrong				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1233ff4f8b6cSNeil Armstrong				clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
1234ff4f8b6cSNeil Armstrong				clock-names = "xtal", "pclk", "baud";
1235ff4f8b6cSNeil Armstrong				status = "disabled";
1236ff4f8b6cSNeil Armstrong			};
1237ff4f8b6cSNeil Armstrong
1238ff4f8b6cSNeil Armstrong			uart_A: serial@24000 {
1239ff4f8b6cSNeil Armstrong				compatible = "amlogic,meson-gx-uart";
1240ff4f8b6cSNeil Armstrong				reg = <0x0 0x24000 0x0 0x18>;
1241ff4f8b6cSNeil Armstrong				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1242ff4f8b6cSNeil Armstrong				clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
1243ff4f8b6cSNeil Armstrong				clock-names = "xtal", "pclk", "baud";
1244ff4f8b6cSNeil Armstrong				status = "disabled";
1245ff4f8b6cSNeil Armstrong			};
12469c8c52f7SJianxin Pan		};
12479baf7d6bSNeil Armstrong
12484759fd87SJerome Brunet		sd_emmc_b: sd@ffe05000 {
12494759fd87SJerome Brunet			compatible = "amlogic,meson-axg-mmc";
12504759fd87SJerome Brunet			reg = <0x0 0xffe05000 0x0 0x800>;
12514759fd87SJerome Brunet			interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
12524759fd87SJerome Brunet			status = "disabled";
12534759fd87SJerome Brunet			clocks = <&clkc CLKID_SD_EMMC_B>,
12544759fd87SJerome Brunet				 <&clkc CLKID_SD_EMMC_B_CLK0>,
12554759fd87SJerome Brunet				 <&clkc CLKID_FCLK_DIV2>;
12564759fd87SJerome Brunet			clock-names = "core", "clkin0", "clkin1";
12574759fd87SJerome Brunet			resets = <&reset RESET_SD_EMMC_B>;
12584759fd87SJerome Brunet		};
12594759fd87SJerome Brunet
12604759fd87SJerome Brunet		sd_emmc_c: mmc@ffe07000 {
12614759fd87SJerome Brunet			compatible = "amlogic,meson-axg-mmc";
12624759fd87SJerome Brunet			reg = <0x0 0xffe07000 0x0 0x800>;
12634759fd87SJerome Brunet			interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
12644759fd87SJerome Brunet			status = "disabled";
12654759fd87SJerome Brunet			clocks = <&clkc CLKID_SD_EMMC_C>,
12664759fd87SJerome Brunet				 <&clkc CLKID_SD_EMMC_C_CLK0>,
12674759fd87SJerome Brunet				 <&clkc CLKID_FCLK_DIV2>;
12684759fd87SJerome Brunet			clock-names = "core", "clkin0", "clkin1";
12694759fd87SJerome Brunet			resets = <&reset RESET_SD_EMMC_C>;
12704759fd87SJerome Brunet		};
12714759fd87SJerome Brunet
12729baf7d6bSNeil Armstrong		usb: usb@ffe09000 {
12739baf7d6bSNeil Armstrong			status = "disabled";
12749baf7d6bSNeil Armstrong			compatible = "amlogic,meson-g12a-usb-ctrl";
12759baf7d6bSNeil Armstrong			reg = <0x0 0xffe09000 0x0 0xa0>;
12769baf7d6bSNeil Armstrong			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
12779baf7d6bSNeil Armstrong			#address-cells = <2>;
12789baf7d6bSNeil Armstrong			#size-cells = <2>;
12799baf7d6bSNeil Armstrong			ranges;
12809baf7d6bSNeil Armstrong
12819baf7d6bSNeil Armstrong			clocks = <&clkc CLKID_USB>;
12829baf7d6bSNeil Armstrong			resets = <&reset RESET_USB>;
12839baf7d6bSNeil Armstrong
12849baf7d6bSNeil Armstrong			dr_mode = "otg";
12859baf7d6bSNeil Armstrong
12869baf7d6bSNeil Armstrong			phys = <&usb2_phy0>, <&usb2_phy1>,
12879baf7d6bSNeil Armstrong			       <&usb3_pcie_phy PHY_TYPE_USB3>;
12889baf7d6bSNeil Armstrong			phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0";
12899baf7d6bSNeil Armstrong
12909baf7d6bSNeil Armstrong			dwc2: usb@ff400000 {
12919baf7d6bSNeil Armstrong				compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
12929baf7d6bSNeil Armstrong				reg = <0x0 0xff400000 0x0 0x40000>;
12939baf7d6bSNeil Armstrong				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
12949baf7d6bSNeil Armstrong				clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
12959baf7d6bSNeil Armstrong				clock-names = "ddr";
12969baf7d6bSNeil Armstrong				phys = <&usb2_phy1>;
12979baf7d6bSNeil Armstrong				dr_mode = "peripheral";
12989baf7d6bSNeil Armstrong				g-rx-fifo-size = <192>;
12999baf7d6bSNeil Armstrong				g-np-tx-fifo-size = <128>;
13009baf7d6bSNeil Armstrong				g-tx-fifo-size = <128 128 16 16 16>;
13019baf7d6bSNeil Armstrong			};
13029baf7d6bSNeil Armstrong
13039baf7d6bSNeil Armstrong			dwc3: usb@ff500000 {
13049baf7d6bSNeil Armstrong				compatible = "snps,dwc3";
13059baf7d6bSNeil Armstrong				reg = <0x0 0xff500000 0x0 0x100000>;
13069baf7d6bSNeil Armstrong				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
13079baf7d6bSNeil Armstrong				dr_mode = "host";
13089baf7d6bSNeil Armstrong				snps,dis_u2_susphy_quirk;
13099baf7d6bSNeil Armstrong				snps,quirk-frame-length-adjustment;
13109baf7d6bSNeil Armstrong			};
13119baf7d6bSNeil Armstrong		};
13122607fd08SNeil Armstrong
13132607fd08SNeil Armstrong		mali: gpu@ffe40000 {
13142607fd08SNeil Armstrong			compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
13152607fd08SNeil Armstrong			reg = <0x0 0xffe40000 0x0 0x40000>;
13162607fd08SNeil Armstrong			interrupt-parent = <&gic>;
13172607fd08SNeil Armstrong			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
13182607fd08SNeil Armstrong				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
13192607fd08SNeil Armstrong				     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
13202607fd08SNeil Armstrong			interrupt-names = "gpu", "mmu", "job";
13212607fd08SNeil Armstrong			clocks = <&clkc CLKID_MALI>;
13222607fd08SNeil Armstrong			resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
13232607fd08SNeil Armstrong
13242607fd08SNeil Armstrong			/*
13252607fd08SNeil Armstrong			 * Mali clocking is provided by two identical clock paths
13262607fd08SNeil Armstrong			 * MALI_0 and MALI_1 muxed to a single clock by a glitch
13272607fd08SNeil Armstrong			 * free mux to safely change frequency while running.
13282607fd08SNeil Armstrong			 */
13292607fd08SNeil Armstrong			assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
13302607fd08SNeil Armstrong					  <&clkc CLKID_MALI_0>,
13312607fd08SNeil Armstrong					  <&clkc CLKID_MALI>; /* Glitch free mux */
13322607fd08SNeil Armstrong			assigned-clock-parents = <&clkc CLKID_FCLK_DIV2P5>,
13332607fd08SNeil Armstrong						 <0>, /* Do Nothing */
13342607fd08SNeil Armstrong						 <&clkc CLKID_MALI_0>;
13352607fd08SNeil Armstrong			assigned-clock-rates = <0>, /* Do Nothing */
13362607fd08SNeil Armstrong					       <800000000>,
13372607fd08SNeil Armstrong					       <0>; /* Do Nothing */
13382607fd08SNeil Armstrong		};
13399c8c52f7SJianxin Pan	};
13409c8c52f7SJianxin Pan
13419c8c52f7SJianxin Pan	timer {
13429c8c52f7SJianxin Pan		compatible = "arm,armv8-timer";
13439c8c52f7SJianxin Pan		interrupts = <GIC_PPI 13
13449c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
13459c8c52f7SJianxin Pan			     <GIC_PPI 14
13469c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
13479c8c52f7SJianxin Pan			     <GIC_PPI 11
13489c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
13499c8c52f7SJianxin Pan			     <GIC_PPI 10
13509c8c52f7SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
13519c8c52f7SJianxin Pan	};
13529c8c52f7SJianxin Pan
13539c8c52f7SJianxin Pan	xtal: xtal-clk {
13549c8c52f7SJianxin Pan		compatible = "fixed-clock";
13559c8c52f7SJianxin Pan		clock-frequency = <24000000>;
13569c8c52f7SJianxin Pan		clock-output-names = "xtal";
13579c8c52f7SJianxin Pan		#clock-cells = <0>;
13589c8c52f7SJianxin Pan	};
13599c8c52f7SJianxin Pan
13609c8c52f7SJianxin Pan};
1361