1326e5751SDongjin Kim// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2326e5751SDongjin Kim/*
3326e5751SDongjin Kim * Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
4326e5751SDongjin Kim */
5326e5751SDongjin Kim
6326e5751SDongjin Kim/dts-v1/;
7326e5751SDongjin Kim
8326e5751SDongjin Kim#include "meson-sm1.dtsi"
9326e5751SDongjin Kim#include <dt-bindings/gpio/meson-g12a-gpio.h>
10326e5751SDongjin Kim#include <dt-bindings/leds/common.h>
11725da67cSChristian Hewitt#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
12326e5751SDongjin Kim
13326e5751SDongjin Kim/ {
14326e5751SDongjin Kim	compatible = "hardkernel,odroid-c4", "amlogic,sm1";
15326e5751SDongjin Kim	model = "Hardkernel ODROID-C4";
16326e5751SDongjin Kim
17326e5751SDongjin Kim	aliases {
18326e5751SDongjin Kim		serial0 = &uart_AO;
19326e5751SDongjin Kim		ethernet0 = &ethmac;
20326e5751SDongjin Kim	};
21326e5751SDongjin Kim
22326e5751SDongjin Kim	chosen {
23326e5751SDongjin Kim		stdout-path = "serial0:115200n8";
24326e5751SDongjin Kim	};
25326e5751SDongjin Kim
26326e5751SDongjin Kim	memory@0 {
27326e5751SDongjin Kim		device_type = "memory";
28326e5751SDongjin Kim		reg = <0x0 0x0 0x0 0x40000000>;
29326e5751SDongjin Kim	};
30326e5751SDongjin Kim
31326e5751SDongjin Kim	emmc_pwrseq: emmc-pwrseq {
32326e5751SDongjin Kim		compatible = "mmc-pwrseq-emmc";
33326e5751SDongjin Kim		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
34326e5751SDongjin Kim	};
35326e5751SDongjin Kim
36326e5751SDongjin Kim	leds {
37326e5751SDongjin Kim		compatible = "gpio-leds";
38326e5751SDongjin Kim
39326e5751SDongjin Kim		led-blue {
40326e5751SDongjin Kim			color = <LED_COLOR_ID_BLUE>;
41326e5751SDongjin Kim			function = LED_FUNCTION_STATUS;
42326e5751SDongjin Kim			gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
43326e5751SDongjin Kim			linux,default-trigger = "heartbeat";
44326e5751SDongjin Kim			panic-indicator;
45326e5751SDongjin Kim		};
46326e5751SDongjin Kim	};
47326e5751SDongjin Kim
48326e5751SDongjin Kim	tflash_vdd: regulator-tflash_vdd {
49326e5751SDongjin Kim		compatible = "regulator-fixed";
50326e5751SDongjin Kim
51326e5751SDongjin Kim		regulator-name = "TFLASH_VDD";
52326e5751SDongjin Kim		regulator-min-microvolt = <3300000>;
53326e5751SDongjin Kim		regulator-max-microvolt = <3300000>;
54326e5751SDongjin Kim
55daf12beeSMarek Szyprowski		gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
56326e5751SDongjin Kim		enable-active-high;
57326e5751SDongjin Kim		regulator-always-on;
58326e5751SDongjin Kim	};
59326e5751SDongjin Kim
60326e5751SDongjin Kim	tf_io: gpio-regulator-tf_io {
61326e5751SDongjin Kim		compatible = "regulator-gpio";
62326e5751SDongjin Kim
63326e5751SDongjin Kim		regulator-name = "TF_IO";
64326e5751SDongjin Kim		regulator-min-microvolt = <1800000>;
65326e5751SDongjin Kim		regulator-max-microvolt = <3300000>;
66326e5751SDongjin Kim
67326e5751SDongjin Kim		gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
68326e5751SDongjin Kim		gpios-states = <0>;
69326e5751SDongjin Kim
70326e5751SDongjin Kim		states = <3300000 0>,
71326e5751SDongjin Kim			 <1800000 1>;
72326e5751SDongjin Kim	};
73326e5751SDongjin Kim
74326e5751SDongjin Kim	flash_1v8: regulator-flash_1v8 {
75326e5751SDongjin Kim		compatible = "regulator-fixed";
76326e5751SDongjin Kim		regulator-name = "FLASH_1V8";
77326e5751SDongjin Kim		regulator-min-microvolt = <1800000>;
78326e5751SDongjin Kim		regulator-max-microvolt = <1800000>;
79326e5751SDongjin Kim		vin-supply = <&vcc_3v3>;
80326e5751SDongjin Kim		regulator-always-on;
81326e5751SDongjin Kim	};
82326e5751SDongjin Kim
83326e5751SDongjin Kim	main_12v: regulator-main_12v {
84326e5751SDongjin Kim		compatible = "regulator-fixed";
85326e5751SDongjin Kim		regulator-name = "12V";
86326e5751SDongjin Kim		regulator-min-microvolt = <12000000>;
87326e5751SDongjin Kim		regulator-max-microvolt = <12000000>;
88326e5751SDongjin Kim		regulator-always-on;
89326e5751SDongjin Kim	};
90326e5751SDongjin Kim
91326e5751SDongjin Kim	vcc_5v: regulator-vcc_5v {
92326e5751SDongjin Kim		compatible = "regulator-fixed";
93326e5751SDongjin Kim		regulator-name = "5V";
94326e5751SDongjin Kim		regulator-min-microvolt = <5000000>;
95326e5751SDongjin Kim		regulator-max-microvolt = <5000000>;
96326e5751SDongjin Kim		regulator-always-on;
97326e5751SDongjin Kim		vin-supply = <&main_12v>;
98326e5751SDongjin Kim	};
99326e5751SDongjin Kim
100326e5751SDongjin Kim	vcc_1v8: regulator-vcc_1v8 {
101326e5751SDongjin Kim		compatible = "regulator-fixed";
102326e5751SDongjin Kim		regulator-name = "VCC_1V8";
103326e5751SDongjin Kim		regulator-min-microvolt = <1800000>;
104326e5751SDongjin Kim		regulator-max-microvolt = <1800000>;
105326e5751SDongjin Kim		vin-supply = <&vcc_3v3>;
106326e5751SDongjin Kim		regulator-always-on;
107326e5751SDongjin Kim	};
108326e5751SDongjin Kim
109326e5751SDongjin Kim	vcc_3v3: regulator-vcc_3v3 {
110326e5751SDongjin Kim		compatible = "regulator-fixed";
111326e5751SDongjin Kim		regulator-name = "VCC_3V3";
112326e5751SDongjin Kim		regulator-min-microvolt = <3300000>;
113326e5751SDongjin Kim		regulator-max-microvolt = <3300000>;
114326e5751SDongjin Kim		vin-supply = <&vddao_3v3>;
115326e5751SDongjin Kim		regulator-always-on;
116326e5751SDongjin Kim		/* FIXME: actually controlled by VDDCPU_B_EN */
117326e5751SDongjin Kim	};
118326e5751SDongjin Kim
119326e5751SDongjin Kim	vddcpu: regulator-vddcpu {
120326e5751SDongjin Kim		/*
121326e5751SDongjin Kim		 * MP8756GD Regulator.
122326e5751SDongjin Kim		 */
123326e5751SDongjin Kim		compatible = "pwm-regulator";
124326e5751SDongjin Kim
125326e5751SDongjin Kim		regulator-name = "VDDCPU";
126326e5751SDongjin Kim		regulator-min-microvolt = <721000>;
127326e5751SDongjin Kim		regulator-max-microvolt = <1022000>;
128326e5751SDongjin Kim
129326e5751SDongjin Kim		vin-supply = <&main_12v>;
130326e5751SDongjin Kim
131326e5751SDongjin Kim		pwms = <&pwm_AO_cd 1 1250 0>;
132326e5751SDongjin Kim		pwm-dutycycle-range = <100 0>;
133326e5751SDongjin Kim
134326e5751SDongjin Kim		regulator-boot-on;
135326e5751SDongjin Kim		regulator-always-on;
136326e5751SDongjin Kim	};
137326e5751SDongjin Kim
138326e5751SDongjin Kim	hub_5v: regulator-hub_5v {
139326e5751SDongjin Kim		compatible = "regulator-fixed";
140326e5751SDongjin Kim		regulator-name = "HUB_5V";
141326e5751SDongjin Kim		regulator-min-microvolt = <5000000>;
142326e5751SDongjin Kim		regulator-max-microvolt = <5000000>;
143326e5751SDongjin Kim		vin-supply = <&vcc_5v>;
144326e5751SDongjin Kim
145326e5751SDongjin Kim		/* Connected to the Hub CHIPENABLE, LOW sets low power state */
146326e5751SDongjin Kim		gpio = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>;
147326e5751SDongjin Kim		enable-active-high;
148326e5751SDongjin Kim	};
149326e5751SDongjin Kim
150326e5751SDongjin Kim	usb_pwr_en: regulator-usb_pwr_en {
151326e5751SDongjin Kim		compatible = "regulator-fixed";
152326e5751SDongjin Kim		regulator-name = "USB_PWR_EN";
153326e5751SDongjin Kim		regulator-min-microvolt = <5000000>;
154326e5751SDongjin Kim		regulator-max-microvolt = <5000000>;
155326e5751SDongjin Kim		vin-supply = <&vcc_5v>;
156326e5751SDongjin Kim
157326e5751SDongjin Kim		/* Connected to the microUSB port power enable */
158326e5751SDongjin Kim		gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
159326e5751SDongjin Kim		enable-active-high;
160326e5751SDongjin Kim	};
161326e5751SDongjin Kim
162326e5751SDongjin Kim	vddao_1v8: regulator-vddao_1v8 {
163326e5751SDongjin Kim		compatible = "regulator-fixed";
164326e5751SDongjin Kim		regulator-name = "VDDAO_1V8";
165326e5751SDongjin Kim		regulator-min-microvolt = <1800000>;
166326e5751SDongjin Kim		regulator-max-microvolt = <1800000>;
167326e5751SDongjin Kim		vin-supply = <&vddao_3v3>;
168326e5751SDongjin Kim		regulator-always-on;
169326e5751SDongjin Kim	};
170326e5751SDongjin Kim
171326e5751SDongjin Kim	vddao_3v3: regulator-vddao_3v3 {
172326e5751SDongjin Kim		compatible = "regulator-fixed";
173326e5751SDongjin Kim		regulator-name = "VDDAO_3V3";
174326e5751SDongjin Kim		regulator-min-microvolt = <3300000>;
175326e5751SDongjin Kim		regulator-max-microvolt = <3300000>;
176326e5751SDongjin Kim		vin-supply = <&main_12v>;
177326e5751SDongjin Kim		regulator-always-on;
178326e5751SDongjin Kim	};
179326e5751SDongjin Kim
180326e5751SDongjin Kim	hdmi-connector {
181326e5751SDongjin Kim		compatible = "hdmi-connector";
182326e5751SDongjin Kim		type = "a";
183326e5751SDongjin Kim
184326e5751SDongjin Kim		port {
185326e5751SDongjin Kim			hdmi_connector_in: endpoint {
186326e5751SDongjin Kim				remote-endpoint = <&hdmi_tx_tmds_out>;
187326e5751SDongjin Kim			};
188326e5751SDongjin Kim		};
189326e5751SDongjin Kim	};
190725da67cSChristian Hewitt
191725da67cSChristian Hewitt	sound {
192725da67cSChristian Hewitt		compatible = "amlogic,axg-sound-card";
193*933b80edSChristian Hewitt		model = "ODROID-C4";
194725da67cSChristian Hewitt		audio-aux-devs = <&tdmout_b>;
195725da67cSChristian Hewitt		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
196725da67cSChristian Hewitt				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
197725da67cSChristian Hewitt				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
198725da67cSChristian Hewitt				"TDM_B Playback", "TDMOUT_B OUT";
199725da67cSChristian Hewitt
200725da67cSChristian Hewitt		assigned-clocks = <&clkc CLKID_MPLL2>,
201725da67cSChristian Hewitt				  <&clkc CLKID_MPLL0>,
202725da67cSChristian Hewitt				  <&clkc CLKID_MPLL1>;
203725da67cSChristian Hewitt		assigned-clock-parents = <0>, <0>, <0>;
204725da67cSChristian Hewitt		assigned-clock-rates = <294912000>,
205725da67cSChristian Hewitt				       <270950400>,
206725da67cSChristian Hewitt				       <393216000>;
207725da67cSChristian Hewitt		status = "okay";
208725da67cSChristian Hewitt
209725da67cSChristian Hewitt		dai-link-0 {
210725da67cSChristian Hewitt			sound-dai = <&frddr_a>;
211725da67cSChristian Hewitt		};
212725da67cSChristian Hewitt
213725da67cSChristian Hewitt		dai-link-1 {
214725da67cSChristian Hewitt			sound-dai = <&frddr_b>;
215725da67cSChristian Hewitt		};
216725da67cSChristian Hewitt
217725da67cSChristian Hewitt		dai-link-2 {
218725da67cSChristian Hewitt			sound-dai = <&frddr_c>;
219725da67cSChristian Hewitt		};
220725da67cSChristian Hewitt
221725da67cSChristian Hewitt		/* 8ch hdmi interface */
222725da67cSChristian Hewitt		dai-link-3 {
223725da67cSChristian Hewitt			sound-dai = <&tdmif_b>;
224725da67cSChristian Hewitt			dai-format = "i2s";
225725da67cSChristian Hewitt			dai-tdm-slot-tx-mask-0 = <1 1>;
226725da67cSChristian Hewitt			dai-tdm-slot-tx-mask-1 = <1 1>;
227725da67cSChristian Hewitt			dai-tdm-slot-tx-mask-2 = <1 1>;
228725da67cSChristian Hewitt			dai-tdm-slot-tx-mask-3 = <1 1>;
229725da67cSChristian Hewitt			mclk-fs = <256>;
230725da67cSChristian Hewitt
231725da67cSChristian Hewitt			codec {
232725da67cSChristian Hewitt				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
233725da67cSChristian Hewitt			};
234725da67cSChristian Hewitt		};
235725da67cSChristian Hewitt
236725da67cSChristian Hewitt		/* hdmi glue */
237725da67cSChristian Hewitt		dai-link-4 {
238725da67cSChristian Hewitt			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
239725da67cSChristian Hewitt
240725da67cSChristian Hewitt			codec {
241725da67cSChristian Hewitt				sound-dai = <&hdmi_tx>;
242725da67cSChristian Hewitt			};
243725da67cSChristian Hewitt		};
244725da67cSChristian Hewitt	};
245725da67cSChristian Hewitt};
246725da67cSChristian Hewitt
247725da67cSChristian Hewitt&arb {
248725da67cSChristian Hewitt	status = "okay";
249725da67cSChristian Hewitt};
250725da67cSChristian Hewitt
251725da67cSChristian Hewitt&clkc_audio {
252725da67cSChristian Hewitt	status = "okay";
253326e5751SDongjin Kim};
254326e5751SDongjin Kim
255326e5751SDongjin Kim&cpu0 {
256326e5751SDongjin Kim	cpu-supply = <&vddcpu>;
257326e5751SDongjin Kim	operating-points-v2 = <&cpu_opp_table>;
258326e5751SDongjin Kim	clocks = <&clkc CLKID_CPU_CLK>;
259326e5751SDongjin Kim	clock-latency = <50000>;
260326e5751SDongjin Kim};
261326e5751SDongjin Kim
262326e5751SDongjin Kim&cpu1 {
263326e5751SDongjin Kim	cpu-supply = <&vddcpu>;
264326e5751SDongjin Kim	operating-points-v2 = <&cpu_opp_table>;
265326e5751SDongjin Kim	clocks = <&clkc CLKID_CPU1_CLK>;
266326e5751SDongjin Kim	clock-latency = <50000>;
267326e5751SDongjin Kim};
268326e5751SDongjin Kim
269326e5751SDongjin Kim&cpu2 {
270326e5751SDongjin Kim	cpu-supply = <&vddcpu>;
271326e5751SDongjin Kim	operating-points-v2 = <&cpu_opp_table>;
272326e5751SDongjin Kim	clocks = <&clkc CLKID_CPU2_CLK>;
273326e5751SDongjin Kim	clock-latency = <50000>;
274326e5751SDongjin Kim};
275326e5751SDongjin Kim
276326e5751SDongjin Kim&cpu3 {
277326e5751SDongjin Kim	cpu-supply = <&vddcpu>;
278326e5751SDongjin Kim	operating-points-v2 = <&cpu_opp_table>;
279326e5751SDongjin Kim	clocks = <&clkc CLKID_CPU3_CLK>;
280326e5751SDongjin Kim	clock-latency = <50000>;
281326e5751SDongjin Kim};
282326e5751SDongjin Kim
283326e5751SDongjin Kim&ext_mdio {
284326e5751SDongjin Kim	external_phy: ethernet-phy@0 {
285326e5751SDongjin Kim		/* Realtek RTL8211F (0x001cc916) */
286326e5751SDongjin Kim		reg = <0>;
287326e5751SDongjin Kim		max-speed = <1000>;
288326e5751SDongjin Kim
289326e5751SDongjin Kim		interrupt-parent = <&gpio_intc>;
290326e5751SDongjin Kim		/* MAC_INTR on GPIOZ_14 */
291326e5751SDongjin Kim		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
292326e5751SDongjin Kim	};
293326e5751SDongjin Kim};
294326e5751SDongjin Kim
295326e5751SDongjin Kim&ethmac {
296326e5751SDongjin Kim	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
297326e5751SDongjin Kim	pinctrl-names = "default";
298326e5751SDongjin Kim	status = "okay";
299326e5751SDongjin Kim	phy-mode = "rgmii";
300326e5751SDongjin Kim	phy-handle = <&external_phy>;
301326e5751SDongjin Kim	amlogic,tx-delay-ns = <2>;
302326e5751SDongjin Kim};
303326e5751SDongjin Kim
304725da67cSChristian Hewitt&frddr_a {
305725da67cSChristian Hewitt	status = "okay";
306725da67cSChristian Hewitt};
307725da67cSChristian Hewitt
308725da67cSChristian Hewitt&frddr_b {
309725da67cSChristian Hewitt	status = "okay";
310725da67cSChristian Hewitt};
311725da67cSChristian Hewitt
312725da67cSChristian Hewitt&frddr_c {
313725da67cSChristian Hewitt	status = "okay";
314725da67cSChristian Hewitt};
315725da67cSChristian Hewitt
316326e5751SDongjin Kim&gpio {
317326e5751SDongjin Kim	gpio-line-names =
318326e5751SDongjin Kim		/* GPIOZ */
319326e5751SDongjin Kim		"", "", "", "", "", "", "", "",
320326e5751SDongjin Kim		"", "", "", "", "", "", "", "",
321326e5751SDongjin Kim		/* GPIOH */
322326e5751SDongjin Kim		"", "", "", "", "",
323326e5751SDongjin Kim		"PIN_36", /* GPIOH_5 */
324326e5751SDongjin Kim		"PIN_26", /* GPIOH_6 */
325326e5751SDongjin Kim		"PIN_32", /* GPIOH_7 */
326326e5751SDongjin Kim		"",
327326e5751SDongjin Kim		/* BOOT */
328326e5751SDongjin Kim		"", "", "", "", "", "", "", "",
329326e5751SDongjin Kim		"", "", "", "", "", "", "", "",
330326e5751SDongjin Kim		/* GPIOC */
331326e5751SDongjin Kim		"", "", "", "", "", "", "", "",
332326e5751SDongjin Kim		/* GPIOA */
333326e5751SDongjin Kim		"", "", "", "", "", "", "", "",
334326e5751SDongjin Kim		"", "", "", "", "", "",
335326e5751SDongjin Kim		"PIN_27", /* GPIOA_14 */
336326e5751SDongjin Kim		"PIN_28", /* GPIOA_15 */
337326e5751SDongjin Kim		/* GPIOX */
338326e5751SDongjin Kim		"PIN_16", /* GPIOX_0 */
339326e5751SDongjin Kim		"PIN_18", /* GPIOX_1 */
340326e5751SDongjin Kim		"PIN_22", /* GPIOX_2 */
341326e5751SDongjin Kim		"PIN_11", /* GPIOX_3 */
342326e5751SDongjin Kim		"PIN_13", /* GPIOX_4 */
343326e5751SDongjin Kim		"PIN_7",  /* GPIOX_5 */
344326e5751SDongjin Kim		"PIN_33", /* GPIOX_6 */
345326e5751SDongjin Kim		"PIN_15", /* GPIOX_7 */
346326e5751SDongjin Kim		"PIN_19", /* GPIOX_8 */
347326e5751SDongjin Kim		"PIN_21", /* GPIOX_9 */
348326e5751SDongjin Kim		"PIN_24", /* GPIOX_10 */
349326e5751SDongjin Kim		"PIN_23", /* GPIOX_11 */
350326e5751SDongjin Kim		"PIN_8",  /* GPIOX_12 */
351326e5751SDongjin Kim		"PIN_10", /* GPIOX_13 */
352326e5751SDongjin Kim		"PIN_29", /* GPIOX_14 */
353326e5751SDongjin Kim		"PIN_31", /* GPIOX_15 */
354326e5751SDongjin Kim		"PIN_12", /* GPIOX_16 */
355326e5751SDongjin Kim		"PIN_3",  /* GPIOX_17 */
356326e5751SDongjin Kim		"PIN_5",  /* GPIOX_18 */
357326e5751SDongjin Kim		"PIN_35"; /* GPIOX_19 */
358326e5751SDongjin Kim
359326e5751SDongjin Kim	/*
360326e5751SDongjin Kim	 * WARNING: The USB Hub on the Odroid-C4 needs a reset signal
361326e5751SDongjin Kim	 * to be turned high in order to be detected by the USB Controller
362326e5751SDongjin Kim	 * This signal should be handled by a USB specific power sequence
363326e5751SDongjin Kim	 * in order to reset the Hub when USB bus is powered down.
364326e5751SDongjin Kim	 */
365326e5751SDongjin Kim	usb-hub {
366326e5751SDongjin Kim		gpio-hog;
367326e5751SDongjin Kim		gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
368326e5751SDongjin Kim		output-high;
369326e5751SDongjin Kim		line-name = "usb-hub-reset";
370326e5751SDongjin Kim	};
371326e5751SDongjin Kim};
372326e5751SDongjin Kim
373326e5751SDongjin Kim&gpio_ao {
374326e5751SDongjin Kim	gpio-line-names =
375326e5751SDongjin Kim		/* GPIOAO */
376326e5751SDongjin Kim		"", "", "", "",
377326e5751SDongjin Kim		"PIN_47", /* GPIOAO_4 */
378326e5751SDongjin Kim		"", "",
379326e5751SDongjin Kim		"PIN_45", /* GPIOAO_7 */
380326e5751SDongjin Kim		"PIN_46", /* GPIOAO_8 */
381326e5751SDongjin Kim		"PIN_44", /* GPIOAO_9 */
382326e5751SDongjin Kim		"PIN_42", /* GPIOAO_10 */
383326e5751SDongjin Kim		"",
384326e5751SDongjin Kim		/* GPIOE */
385326e5751SDongjin Kim		"", "", "";
386326e5751SDongjin Kim};
387326e5751SDongjin Kim
388326e5751SDongjin Kim&hdmi_tx {
389326e5751SDongjin Kim	status = "okay";
390326e5751SDongjin Kim	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
391326e5751SDongjin Kim	pinctrl-names = "default";
392326e5751SDongjin Kim	hdmi-supply = <&vcc_5v>;
393326e5751SDongjin Kim};
394326e5751SDongjin Kim
395326e5751SDongjin Kim&hdmi_tx_tmds_port {
396326e5751SDongjin Kim	hdmi_tx_tmds_out: endpoint {
397326e5751SDongjin Kim		remote-endpoint = <&hdmi_connector_in>;
398326e5751SDongjin Kim	};
399326e5751SDongjin Kim};
400326e5751SDongjin Kim
401326e5751SDongjin Kim&ir {
402326e5751SDongjin Kim	status = "okay";
403326e5751SDongjin Kim	pinctrl-0 = <&remote_input_ao_pins>;
404326e5751SDongjin Kim	pinctrl-names = "default";
405326e5751SDongjin Kim	linux,rc-map-name = "rc-odroid";
406326e5751SDongjin Kim};
407326e5751SDongjin Kim
408326e5751SDongjin Kim&pwm_AO_cd {
409326e5751SDongjin Kim	pinctrl-0 = <&pwm_ao_d_e_pins>;
410326e5751SDongjin Kim	pinctrl-names = "default";
411326e5751SDongjin Kim	clocks = <&xtal>;
412326e5751SDongjin Kim	clock-names = "clkin1";
413326e5751SDongjin Kim	status = "okay";
414326e5751SDongjin Kim};
415326e5751SDongjin Kim
416326e5751SDongjin Kim&saradc {
417326e5751SDongjin Kim	status = "okay";
418326e5751SDongjin Kim};
419326e5751SDongjin Kim
420326e5751SDongjin Kim/* SD card */
421326e5751SDongjin Kim&sd_emmc_b {
422326e5751SDongjin Kim	status = "okay";
423326e5751SDongjin Kim	pinctrl-0 = <&sdcard_c_pins>;
424326e5751SDongjin Kim	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
425326e5751SDongjin Kim	pinctrl-names = "default", "clk-gate";
426326e5751SDongjin Kim
427326e5751SDongjin Kim	bus-width = <4>;
428326e5751SDongjin Kim	cap-sd-highspeed;
429326e5751SDongjin Kim	max-frequency = <200000000>;
430326e5751SDongjin Kim	sd-uhs-sdr12;
431326e5751SDongjin Kim	sd-uhs-sdr25;
432326e5751SDongjin Kim	sd-uhs-sdr50;
433326e5751SDongjin Kim	sd-uhs-sdr104;
434326e5751SDongjin Kim	disable-wp;
435326e5751SDongjin Kim
436326e5751SDongjin Kim	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
437326e5751SDongjin Kim	vmmc-supply = <&tflash_vdd>;
438326e5751SDongjin Kim	vqmmc-supply = <&tf_io>;
439326e5751SDongjin Kim};
440326e5751SDongjin Kim
441326e5751SDongjin Kim/* eMMC */
442326e5751SDongjin Kim&sd_emmc_c {
443326e5751SDongjin Kim	status = "okay";
444326e5751SDongjin Kim	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
445326e5751SDongjin Kim	pinctrl-1 = <&emmc_clk_gate_pins>;
446326e5751SDongjin Kim	pinctrl-names = "default", "clk-gate";
447326e5751SDongjin Kim
448326e5751SDongjin Kim	bus-width = <8>;
449326e5751SDongjin Kim	cap-mmc-highspeed;
450326e5751SDongjin Kim	mmc-ddr-1_8v;
451326e5751SDongjin Kim	mmc-hs200-1_8v;
452326e5751SDongjin Kim	max-frequency = <200000000>;
453326e5751SDongjin Kim	disable-wp;
454326e5751SDongjin Kim
455326e5751SDongjin Kim	mmc-pwrseq = <&emmc_pwrseq>;
456326e5751SDongjin Kim	vmmc-supply = <&vcc_3v3>;
457326e5751SDongjin Kim	vqmmc-supply = <&flash_1v8>;
458326e5751SDongjin Kim};
459326e5751SDongjin Kim
460725da67cSChristian Hewitt&tdmif_b {
461725da67cSChristian Hewitt	status = "okay";
462725da67cSChristian Hewitt};
463725da67cSChristian Hewitt
464725da67cSChristian Hewitt&tdmout_b {
465725da67cSChristian Hewitt	status = "okay";
466725da67cSChristian Hewitt};
467725da67cSChristian Hewitt
468725da67cSChristian Hewitt&tohdmitx {
469725da67cSChristian Hewitt	status = "okay";
470725da67cSChristian Hewitt};
471725da67cSChristian Hewitt
472326e5751SDongjin Kim&uart_AO {
473326e5751SDongjin Kim	status = "okay";
474326e5751SDongjin Kim	pinctrl-0 = <&uart_ao_a_pins>;
475326e5751SDongjin Kim	pinctrl-names = "default";
476326e5751SDongjin Kim};
477326e5751SDongjin Kim
478326e5751SDongjin Kim&usb {
479326e5751SDongjin Kim	status = "okay";
480326e5751SDongjin Kim	vbus-supply = <&usb_pwr_en>;
481326e5751SDongjin Kim};
482326e5751SDongjin Kim
483326e5751SDongjin Kim&usb2_phy0 {
484326e5751SDongjin Kim	phy-supply = <&vcc_5v>;
485326e5751SDongjin Kim};
486326e5751SDongjin Kim
487326e5751SDongjin Kim&usb2_phy1 {
488326e5751SDongjin Kim	/* Enable the hub which is connected to this port */
489326e5751SDongjin Kim	phy-supply = <&hub_5v>;
490326e5751SDongjin Kim};
491