1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 BayLibre SAS. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include "meson-g12a.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/gpio/meson-g12a-gpio.h>
11
12/ {
13	compatible = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a";
14	model = "Shenzhen Amediatech Technology Co., Ltd X96 Max";
15
16	aliases {
17		serial0 = &uart_AO;
18		ethernet0 = &ethmac;
19	};
20	chosen {
21		stdout-path = "serial0:115200n8";
22	};
23	memory@0 {
24		device_type = "memory";
25		reg = <0x0 0x0 0x0 0x40000000>;
26	};
27
28	cvbs-connector {
29		compatible = "composite-video-connector";
30
31		port {
32			cvbs_connector_in: endpoint {
33				remote-endpoint = <&cvbs_vdac_out>;
34			};
35		};
36	};
37
38	hdmi-connector {
39		compatible = "hdmi-connector";
40		type = "a";
41
42		port {
43			hdmi_connector_in: endpoint {
44				remote-endpoint = <&hdmi_tx_tmds_out>;
45			};
46		};
47	};
48
49	flash_1v8: regulator-flash_1v8 {
50		compatible = "regulator-fixed";
51		regulator-name = "FLASH_1V8";
52		regulator-min-microvolt = <1800000>;
53		regulator-max-microvolt = <1800000>;
54		vin-supply = <&vcc_3v3>;
55		regulator-always-on;
56	};
57
58	dc_in: regulator-dc_in {
59		compatible = "regulator-fixed";
60		regulator-name = "DC_IN";
61		regulator-min-microvolt = <5000000>;
62		regulator-max-microvolt = <5000000>;
63		regulator-always-on;
64	};
65
66	vcc_1v8: regulator-vcc_1v8 {
67		compatible = "regulator-fixed";
68		regulator-name = "VCC_1V8";
69		regulator-min-microvolt = <1800000>;
70		regulator-max-microvolt = <1800000>;
71		vin-supply = <&vcc_3v3>;
72		regulator-always-on;
73	};
74
75	vcc_3v3: regulator-vcc_3v3 {
76		compatible = "regulator-fixed";
77		regulator-name = "VCC_3V3";
78		regulator-min-microvolt = <3300000>;
79		regulator-max-microvolt = <3300000>;
80		vin-supply = <&vddao_3v3>;
81		regulator-always-on;
82		/* FIXME: actually controlled by VDDCPU_B_EN */
83	};
84
85	vcc_5v: regulator-vcc_5v {
86		compatible = "regulator-fixed";
87		regulator-name = "VCC_5V";
88		regulator-min-microvolt = <5000000>;
89		regulator-max-microvolt = <5000000>;
90		vin-supply = <&dc_in>;
91
92		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
93		enable-active-low;
94	};
95
96	vddao_1v8: regulator-vddao_1v8 {
97		compatible = "regulator-fixed";
98		regulator-name = "VDDAO_1V8";
99		regulator-min-microvolt = <1800000>;
100		regulator-max-microvolt = <1800000>;
101		vin-supply = <&vddao_3v3>;
102		regulator-always-on;
103	};
104
105	vddao_3v3: regulator-vddao_3v3 {
106		compatible = "regulator-fixed";
107		regulator-name = "VDDAO_3V3";
108		regulator-min-microvolt = <3300000>;
109		regulator-max-microvolt = <3300000>;
110		vin-supply = <&dc_in>;
111		regulator-always-on;
112	};
113};
114
115&cec_AO {
116	pinctrl-0 = <&cec_ao_a_h_pins>;
117	pinctrl-names = "default";
118	status = "disabled";
119	hdmi-phandle = <&hdmi_tx>;
120};
121
122&cecb_AO {
123	pinctrl-0 = <&cec_ao_b_h_pins>;
124	pinctrl-names = "default";
125	status = "okay";
126	hdmi-phandle = <&hdmi_tx>;
127};
128
129&cvbs_vdac_port {
130	cvbs_vdac_out: endpoint {
131		remote-endpoint = <&cvbs_connector_in>;
132	};
133};
134
135&hdmi_tx {
136	status = "okay";
137	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
138	pinctrl-names = "default";
139	hdmi-supply = <&vcc_5v>;
140};
141
142&hdmi_tx_tmds_port {
143	hdmi_tx_tmds_out: endpoint {
144		remote-endpoint = <&hdmi_connector_in>;
145	};
146};
147
148&ir {
149	status = "okay";
150	pinctrl-0 = <&remote_input_ao_pins>;
151	pinctrl-names = "default";
152};
153
154&ext_mdio {
155	external_phy: ethernet-phy@0 {
156		/* Realtek RTL8211F (0x001cc916) */
157		reg = <0>;
158		max-speed = <1000>;
159		eee-broken-1000t;
160	};
161};
162
163&ethmac {
164	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
165	pinctrl-names = "default";
166	status = "okay";
167	phy-mode = "rgmii";
168	phy-handle = <&external_phy>;
169	amlogic,tx-delay-ns = <2>;
170	snps,reset-gpio = <&gpio GPIOZ_14 0>;
171	snps,reset-delays-us = <0 10000 1000000>;
172	snps,reset-active-low;
173};
174
175&uart_A {
176	status = "okay";
177	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
178	pinctrl-names = "default";
179	uart-has-rtscts;
180
181	bluetooth {
182		compatible = "brcm,bcm43438-bt";
183		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
184	};
185};
186
187&uart_AO {
188	status = "okay";
189	pinctrl-0 = <&uart_ao_a_pins>;
190	pinctrl-names = "default";
191};
192
193&usb {
194	status = "okay";
195	dr_mode = "host";
196};
197