1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Amlogic, Inc. 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 = "amlogic,u200", "amlogic,g12a";
14	model = "Amlogic Meson G12A U200 Development Board";
15
16	aliases {
17		serial0 = &uart_AO;
18		ethernet0 = &ethmac;
19	};
20
21	chosen {
22		stdout-path = "serial0:115200n8";
23	};
24
25	cvbs-connector {
26		compatible = "composite-video-connector";
27
28		port {
29			cvbs_connector_in: endpoint {
30				remote-endpoint = <&cvbs_vdac_out>;
31			};
32		};
33	};
34
35	emmc_pwrseq: emmc-pwrseq {
36		compatible = "mmc-pwrseq-emmc";
37		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
38	};
39
40	hdmi-connector {
41		compatible = "hdmi-connector";
42		type = "a";
43
44		port {
45			hdmi_connector_in: endpoint {
46				remote-endpoint = <&hdmi_tx_tmds_out>;
47			};
48		};
49	};
50
51	memory@0 {
52		device_type = "memory";
53		reg = <0x0 0x0 0x0 0x40000000>;
54	};
55
56	flash_1v8: regulator-flash_1v8 {
57		compatible = "regulator-fixed";
58		regulator-name = "FLASH_1V8";
59		regulator-min-microvolt = <1800000>;
60		regulator-max-microvolt = <1800000>;
61		vin-supply = <&vcc_3v3>;
62		regulator-always-on;
63	};
64
65	main_12v: regulator-main_12v {
66		compatible = "regulator-fixed";
67		regulator-name = "12V";
68		regulator-min-microvolt = <12000000>;
69		regulator-max-microvolt = <12000000>;
70		regulator-always-on;
71	};
72
73	usb_pwr_en: regulator-usb_pwr_en {
74		compatible = "regulator-fixed";
75		regulator-name = "USB_PWR_EN";
76		regulator-min-microvolt = <5000000>;
77		regulator-max-microvolt = <5000000>;
78		vin-supply = <&vcc_5v>;
79
80		gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
81		enable-active-high;
82	};
83
84	vcc_1v8: regulator-vcc_1v8 {
85		compatible = "regulator-fixed";
86		regulator-name = "VCC_1V8";
87		regulator-min-microvolt = <1800000>;
88		regulator-max-microvolt = <1800000>;
89		vin-supply = <&vcc_3v3>;
90		regulator-always-on;
91	};
92
93	vcc_3v3: regulator-vcc_3v3 {
94		compatible = "regulator-fixed";
95		regulator-name = "VCC_3V3";
96		regulator-min-microvolt = <3300000>;
97		regulator-max-microvolt = <3300000>;
98		vin-supply = <&vddao_3v3>;
99		regulator-always-on;
100		/* FIXME: actually controlled by VDDCPU_B_EN */
101	};
102
103	vcc_5v: regulator-vcc_5v {
104		compatible = "regulator-fixed";
105		regulator-name = "VCC_5V";
106		regulator-min-microvolt = <5000000>;
107		regulator-max-microvolt = <5000000>;
108		vin-supply = <&main_12v>;
109
110		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
111		enable-active-high;
112	};
113
114	vddao_1v8: regulator-vddao_1v8 {
115		compatible = "regulator-fixed";
116		regulator-name = "VDDAO_1V8";
117		regulator-min-microvolt = <1800000>;
118		regulator-max-microvolt = <1800000>;
119		vin-supply = <&vddao_3v3>;
120		regulator-always-on;
121	};
122
123	vddao_3v3: regulator-vddao_3v3 {
124		compatible = "regulator-fixed";
125		regulator-name = "VDDAO_3V3";
126		regulator-min-microvolt = <3300000>;
127		regulator-max-microvolt = <3300000>;
128		vin-supply = <&main_12v>;
129		regulator-always-on;
130	};
131
132};
133
134&cec_AO {
135	pinctrl-0 = <&cec_ao_a_h_pins>;
136	pinctrl-names = "default";
137	status = "disabled";
138	hdmi-phandle = <&hdmi_tx>;
139};
140
141&cecb_AO {
142	pinctrl-0 = <&cec_ao_b_h_pins>;
143	pinctrl-names = "default";
144	status = "okay";
145	hdmi-phandle = <&hdmi_tx>;
146};
147
148&cvbs_vdac_port {
149	cvbs_vdac_out: endpoint {
150		remote-endpoint = <&cvbs_connector_in>;
151	};
152};
153
154&ethmac {
155	status = "okay";
156	phy-handle = <&internal_ephy>;
157	phy-mode = "rmii";
158};
159
160&hdmi_tx {
161	status = "okay";
162	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
163	pinctrl-names = "default";
164	hdmi-supply = <&vcc_5v>;
165};
166
167&hdmi_tx_tmds_port {
168	hdmi_tx_tmds_out: endpoint {
169		remote-endpoint = <&hdmi_connector_in>;
170	};
171};
172
173&ir {
174	status = "okay";
175	pinctrl-0 = <&remote_input_ao_pins>;
176	pinctrl-names = "default";
177};
178
179/* i2c Touch */
180&i2c0 {
181	status = "okay";
182	pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>;
183	pinctrl-names = "default";
184};
185
186/* i2c CM */
187&i2c2 {
188	status = "okay";
189	pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>;
190	pinctrl-names = "default";
191};
192
193/* i2c Audio */
194&i2c3 {
195	status = "okay";
196	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
197	pinctrl-names = "default";
198};
199
200/* SD card */
201&sd_emmc_b {
202	status = "okay";
203	pinctrl-0 = <&sdcard_c_pins>;
204	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
205	pinctrl-names = "default", "clk-gate";
206
207	bus-width = <4>;
208	cap-sd-highspeed;
209	max-frequency = <50000000>;
210	disable-wp;
211
212	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
213	vmmc-supply = <&vddao_3v3>;
214	vqmmc-supply = <&vddao_3v3>;
215};
216
217/* eMMC */
218&sd_emmc_c {
219	status = "okay";
220	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
221	pinctrl-1 = <&emmc_clk_gate_pins>;
222	pinctrl-names = "default", "clk-gate";
223
224	bus-width = <8>;
225	cap-mmc-highspeed;
226	mmc-ddr-1_8v;
227	mmc-hs200-1_8v;
228	max-frequency = <200000000>;
229	non-removable;
230	disable-wp;
231
232	mmc-pwrseq = <&emmc_pwrseq>;
233	vmmc-supply = <&vcc_3v3>;
234	vqmmc-supply = <&flash_1v8>;
235};
236
237&uart_AO {
238	status = "okay";
239	pinctrl-0 = <&uart_ao_a_pins>;
240	pinctrl-names = "default";
241};
242
243&usb {
244	status = "okay";
245	vbus-supply = <&usb_pwr_en>;
246};
247
248&usb2_phy0 {
249	phy-supply = <&vcc_5v>;
250};
251
252&usb2_phy1 {
253	phy-supply = <&vcc_5v>;
254};
255