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	vddcpu: regulator-vddcpu {
133		/*
134		 * MP8756GD Regulator.
135		 */
136		compatible = "pwm-regulator";
137
138		regulator-name = "VDDCPU";
139		regulator-min-microvolt = <721000>;
140		regulator-max-microvolt = <1022000>;
141
142		vin-supply = <&main_12v>;
143
144		pwms = <&pwm_AO_cd 1 1250 0>;
145		pwm-dutycycle-range = <100 0>;
146
147		regulator-boot-on;
148		regulator-always-on;
149	};
150};
151
152&cec_AO {
153	pinctrl-0 = <&cec_ao_a_h_pins>;
154	pinctrl-names = "default";
155	status = "disabled";
156	hdmi-phandle = <&hdmi_tx>;
157};
158
159&cecb_AO {
160	pinctrl-0 = <&cec_ao_b_h_pins>;
161	pinctrl-names = "default";
162	status = "okay";
163	hdmi-phandle = <&hdmi_tx>;
164};
165
166&cpu0 {
167	cpu-supply = <&vddcpu>;
168	operating-points-v2 = <&cpu_opp_table>;
169	clocks = <&clkc CLKID_CPU_CLK>;
170	clock-latency = <50000>;
171};
172
173&cpu1 {
174	cpu-supply = <&vddcpu>;
175	operating-points-v2 = <&cpu_opp_table>;
176	clocks = <&clkc CLKID_CPU_CLK>;
177	clock-latency = <50000>;
178};
179
180&cpu2 {
181	cpu-supply = <&vddcpu>;
182	operating-points-v2 = <&cpu_opp_table>;
183	clocks = <&clkc CLKID_CPU_CLK>;
184	clock-latency = <50000>;
185};
186
187&cpu3 {
188	cpu-supply = <&vddcpu>;
189	operating-points-v2 = <&cpu_opp_table>;
190	clocks = <&clkc CLKID_CPU_CLK>;
191	clock-latency = <50000>;
192};
193
194&cvbs_vdac_port {
195	cvbs_vdac_out: endpoint {
196		remote-endpoint = <&cvbs_connector_in>;
197	};
198};
199
200&ethmac {
201	status = "okay";
202	phy-handle = <&internal_ephy>;
203	phy-mode = "rmii";
204};
205
206&hdmi_tx {
207	status = "okay";
208	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
209	pinctrl-names = "default";
210	hdmi-supply = <&vcc_5v>;
211};
212
213&hdmi_tx_tmds_port {
214	hdmi_tx_tmds_out: endpoint {
215		remote-endpoint = <&hdmi_connector_in>;
216	};
217};
218
219&ir {
220	status = "okay";
221	pinctrl-0 = <&remote_input_ao_pins>;
222	pinctrl-names = "default";
223};
224
225/* i2c Touch */
226&i2c0 {
227	status = "okay";
228	pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>;
229	pinctrl-names = "default";
230};
231
232/* i2c CM */
233&i2c2 {
234	status = "okay";
235	pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>;
236	pinctrl-names = "default";
237};
238
239/* i2c Audio */
240&i2c3 {
241	status = "okay";
242	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
243	pinctrl-names = "default";
244};
245
246&pwm_AO_cd {
247	pinctrl-0 = <&pwm_ao_d_e_pins>;
248	pinctrl-names = "default";
249	clocks = <&xtal>;
250	clock-names = "clkin1";
251	status = "okay";
252};
253
254/* SD card */
255&sd_emmc_b {
256	status = "okay";
257	pinctrl-0 = <&sdcard_c_pins>;
258	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
259	pinctrl-names = "default", "clk-gate";
260
261	bus-width = <4>;
262	cap-sd-highspeed;
263	max-frequency = <50000000>;
264	disable-wp;
265
266	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
267	vmmc-supply = <&vddao_3v3>;
268	vqmmc-supply = <&vddao_3v3>;
269};
270
271/* eMMC */
272&sd_emmc_c {
273	status = "okay";
274	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
275	pinctrl-1 = <&emmc_clk_gate_pins>;
276	pinctrl-names = "default", "clk-gate";
277
278	bus-width = <8>;
279	cap-mmc-highspeed;
280	mmc-ddr-1_8v;
281	mmc-hs200-1_8v;
282	max-frequency = <200000000>;
283	non-removable;
284	disable-wp;
285
286	mmc-pwrseq = <&emmc_pwrseq>;
287	vmmc-supply = <&vcc_3v3>;
288	vqmmc-supply = <&flash_1v8>;
289};
290
291&uart_AO {
292	status = "okay";
293	pinctrl-0 = <&uart_ao_a_pins>;
294	pinctrl-names = "default";
295};
296
297&usb {
298	status = "okay";
299	vbus-supply = <&usb_pwr_en>;
300};
301
302&usb2_phy0 {
303	phy-supply = <&vcc_5v>;
304};
305
306&usb2_phy1 {
307	phy-supply = <&vcc_5v>;
308};
309