xref: /openbmc/linux/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts (revision 409a0daa72f6fc1652e17cfea7ea1055e9c483c9)
1c35f6dc5SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c35f6dc5SNeil Armstrong/*
3c35f6dc5SNeil Armstrong * Copyright (c) 2019 BayLibre, SAS
4c35f6dc5SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com>
5c35f6dc5SNeil Armstrong */
6c35f6dc5SNeil Armstrong
7c35f6dc5SNeil Armstrong/dts-v1/;
8c35f6dc5SNeil Armstrong
9b96d4e92SChristian Hewitt#include "meson-g12b-s922x.dtsi"
10c35f6dc5SNeil Armstrong#include <dt-bindings/input/input.h>
11c35f6dc5SNeil Armstrong#include <dt-bindings/gpio/meson-g12a-gpio.h>
12aa7d5873SNeil Armstrong#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
13c35f6dc5SNeil Armstrong
14c35f6dc5SNeil Armstrong/ {
15*409a0daaSNeil Armstrong	compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b";
16c35f6dc5SNeil Armstrong	model = "Hardkernel ODROID-N2";
17c35f6dc5SNeil Armstrong
18c35f6dc5SNeil Armstrong	aliases {
19c35f6dc5SNeil Armstrong		serial0 = &uart_AO;
20c35f6dc5SNeil Armstrong		ethernet0 = &ethmac;
21c35f6dc5SNeil Armstrong	};
22c35f6dc5SNeil Armstrong
23c35f6dc5SNeil Armstrong	chosen {
24c35f6dc5SNeil Armstrong		stdout-path = "serial0:115200n8";
25c35f6dc5SNeil Armstrong	};
26c35f6dc5SNeil Armstrong
27c35f6dc5SNeil Armstrong	memory@0 {
28c35f6dc5SNeil Armstrong		device_type = "memory";
29c35f6dc5SNeil Armstrong		reg = <0x0 0x0 0x0 0x40000000>;
30c35f6dc5SNeil Armstrong	};
31c35f6dc5SNeil Armstrong
32c35f6dc5SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
33c35f6dc5SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
34c35f6dc5SNeil Armstrong		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
35c35f6dc5SNeil Armstrong	};
36c35f6dc5SNeil Armstrong
37c35f6dc5SNeil Armstrong	leds {
38c35f6dc5SNeil Armstrong		compatible = "gpio-leds";
39c35f6dc5SNeil Armstrong
40c35f6dc5SNeil Armstrong		blue {
41c35f6dc5SNeil Armstrong			label = "n2:blue";
42c35f6dc5SNeil Armstrong			gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
43c35f6dc5SNeil Armstrong			linux,default-trigger = "heartbeat";
44c35f6dc5SNeil Armstrong		};
45c35f6dc5SNeil Armstrong	};
46c35f6dc5SNeil Armstrong
47c35f6dc5SNeil Armstrong	tflash_vdd: regulator-tflash_vdd {
48c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
49c35f6dc5SNeil Armstrong
50c35f6dc5SNeil Armstrong		regulator-name = "TFLASH_VDD";
51c35f6dc5SNeil Armstrong		regulator-min-microvolt = <3300000>;
52c35f6dc5SNeil Armstrong		regulator-max-microvolt = <3300000>;
53c35f6dc5SNeil Armstrong
54c35f6dc5SNeil Armstrong		gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
55c35f6dc5SNeil Armstrong		enable-active-high;
56dc7f2cb2SXavier Ruppen		regulator-always-on;
57c35f6dc5SNeil Armstrong	};
58c35f6dc5SNeil Armstrong
59c35f6dc5SNeil Armstrong	tf_io: gpio-regulator-tf_io {
60c35f6dc5SNeil Armstrong		compatible = "regulator-gpio";
61c35f6dc5SNeil Armstrong
62c35f6dc5SNeil Armstrong		regulator-name = "TF_IO";
63c35f6dc5SNeil Armstrong		regulator-min-microvolt = <1800000>;
64c35f6dc5SNeil Armstrong		regulator-max-microvolt = <3300000>;
65c35f6dc5SNeil Armstrong
66c35f6dc5SNeil Armstrong		gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
67c35f6dc5SNeil Armstrong		gpios-states = <0>;
68c35f6dc5SNeil Armstrong
69f9717178SNeil Armstrong		states = <3300000 0>,
70f9717178SNeil Armstrong			 <1800000 1>;
71c35f6dc5SNeil Armstrong	};
72c35f6dc5SNeil Armstrong
73c35f6dc5SNeil Armstrong	flash_1v8: regulator-flash_1v8 {
74c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
75c35f6dc5SNeil Armstrong		regulator-name = "FLASH_1V8";
76c35f6dc5SNeil Armstrong		regulator-min-microvolt = <1800000>;
77c35f6dc5SNeil Armstrong		regulator-max-microvolt = <1800000>;
78c35f6dc5SNeil Armstrong		vin-supply = <&vcc_3v3>;
79c35f6dc5SNeil Armstrong		regulator-always-on;
80c35f6dc5SNeil Armstrong	};
81c35f6dc5SNeil Armstrong
82c35f6dc5SNeil Armstrong	main_12v: regulator-main_12v {
83c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
84c35f6dc5SNeil Armstrong		regulator-name = "12V";
85c35f6dc5SNeil Armstrong		regulator-min-microvolt = <12000000>;
86c35f6dc5SNeil Armstrong		regulator-max-microvolt = <12000000>;
87c35f6dc5SNeil Armstrong		regulator-always-on;
88c35f6dc5SNeil Armstrong	};
89c35f6dc5SNeil Armstrong
90c35f6dc5SNeil Armstrong	vcc_5v: regulator-vcc_5v {
91c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
92c35f6dc5SNeil Armstrong		regulator-name = "5V";
93c35f6dc5SNeil Armstrong		regulator-min-microvolt = <5000000>;
94c35f6dc5SNeil Armstrong		regulator-max-microvolt = <5000000>;
95c35f6dc5SNeil Armstrong		regulator-always-on;
96c35f6dc5SNeil Armstrong		vin-supply = <&main_12v>;
97c35f6dc5SNeil Armstrong	};
98c35f6dc5SNeil Armstrong
99c35f6dc5SNeil Armstrong	vcc_1v8: regulator-vcc_1v8 {
100c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
101c35f6dc5SNeil Armstrong		regulator-name = "VCC_1V8";
102c35f6dc5SNeil Armstrong		regulator-min-microvolt = <1800000>;
103c35f6dc5SNeil Armstrong		regulator-max-microvolt = <1800000>;
104c35f6dc5SNeil Armstrong		vin-supply = <&vcc_3v3>;
105c35f6dc5SNeil Armstrong		regulator-always-on;
106c35f6dc5SNeil Armstrong	};
107c35f6dc5SNeil Armstrong
108c35f6dc5SNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
109c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
110c35f6dc5SNeil Armstrong		regulator-name = "VCC_3V3";
111c35f6dc5SNeil Armstrong		regulator-min-microvolt = <3300000>;
112c35f6dc5SNeil Armstrong		regulator-max-microvolt = <3300000>;
113c35f6dc5SNeil Armstrong		vin-supply = <&vddao_3v3>;
114c35f6dc5SNeil Armstrong		regulator-always-on;
115c35f6dc5SNeil Armstrong		/* FIXME: actually controlled by VDDCPU_B_EN */
116c35f6dc5SNeil Armstrong	};
117c35f6dc5SNeil Armstrong
118d14734a0SNeil Armstrong	vddcpu_a: regulator-vddcpu-a {
119d14734a0SNeil Armstrong		/*
120d14734a0SNeil Armstrong		 * MP8756GD Regulator.
121d14734a0SNeil Armstrong		 */
122d14734a0SNeil Armstrong		compatible = "pwm-regulator";
123d14734a0SNeil Armstrong
124d14734a0SNeil Armstrong		regulator-name = "VDDCPU_A";
125d14734a0SNeil Armstrong		regulator-min-microvolt = <721000>;
126d14734a0SNeil Armstrong		regulator-max-microvolt = <1022000>;
127d14734a0SNeil Armstrong
128d14734a0SNeil Armstrong		vin-supply = <&main_12v>;
129d14734a0SNeil Armstrong
130d14734a0SNeil Armstrong		pwms = <&pwm_ab 0 1250 0>;
131d14734a0SNeil Armstrong		pwm-dutycycle-range = <100 0>;
132d14734a0SNeil Armstrong
133d14734a0SNeil Armstrong		regulator-boot-on;
134d14734a0SNeil Armstrong		regulator-always-on;
135d14734a0SNeil Armstrong	};
136d14734a0SNeil Armstrong
137d14734a0SNeil Armstrong	vddcpu_b: regulator-vddcpu-b {
138d14734a0SNeil Armstrong		/*
139d14734a0SNeil Armstrong		 * Silergy SY8120B1ABC Regulator.
140d14734a0SNeil Armstrong		 */
141d14734a0SNeil Armstrong		compatible = "pwm-regulator";
142d14734a0SNeil Armstrong
143d14734a0SNeil Armstrong		regulator-name = "VDDCPU_B";
144d14734a0SNeil Armstrong		regulator-min-microvolt = <721000>;
145d14734a0SNeil Armstrong		regulator-max-microvolt = <1022000>;
146d14734a0SNeil Armstrong
147d14734a0SNeil Armstrong		vin-supply = <&main_12v>;
148d14734a0SNeil Armstrong
149d14734a0SNeil Armstrong		pwms = <&pwm_AO_cd 1 1250 0>;
150d14734a0SNeil Armstrong		pwm-dutycycle-range = <100 0>;
151d14734a0SNeil Armstrong
152d14734a0SNeil Armstrong		regulator-boot-on;
153d14734a0SNeil Armstrong		regulator-always-on;
154d14734a0SNeil Armstrong	};
155d14734a0SNeil Armstrong
156c35f6dc5SNeil Armstrong	hub_5v: regulator-hub_5v {
157c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
158c35f6dc5SNeil Armstrong		regulator-name = "HUB_5V";
159c35f6dc5SNeil Armstrong		regulator-min-microvolt = <5000000>;
160c35f6dc5SNeil Armstrong		regulator-max-microvolt = <5000000>;
161c35f6dc5SNeil Armstrong		vin-supply = <&vcc_5v>;
162c35f6dc5SNeil Armstrong
163c35f6dc5SNeil Armstrong		/* Connected to the Hub CHIPENABLE, LOW sets low power state */
164c35f6dc5SNeil Armstrong		gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
165c35f6dc5SNeil Armstrong		enable-active-high;
166c35f6dc5SNeil Armstrong	};
167c35f6dc5SNeil Armstrong
168c35f6dc5SNeil Armstrong	usb_pwr_en: regulator-usb_pwr_en {
169c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
170c35f6dc5SNeil Armstrong		regulator-name = "USB_PWR_EN";
171c35f6dc5SNeil Armstrong		regulator-min-microvolt = <5000000>;
172c35f6dc5SNeil Armstrong		regulator-max-microvolt = <5000000>;
173c35f6dc5SNeil Armstrong		vin-supply = <&vcc_5v>;
174c35f6dc5SNeil Armstrong
175c35f6dc5SNeil Armstrong		/* Connected to the microUSB port power enable */
176c35f6dc5SNeil Armstrong		gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
177c35f6dc5SNeil Armstrong		enable-active-high;
178c35f6dc5SNeil Armstrong	};
179c35f6dc5SNeil Armstrong
180c35f6dc5SNeil Armstrong	vddao_1v8: regulator-vddao_1v8 {
181c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
182c35f6dc5SNeil Armstrong		regulator-name = "VDDAO_1V8";
183c35f6dc5SNeil Armstrong		regulator-min-microvolt = <1800000>;
184c35f6dc5SNeil Armstrong		regulator-max-microvolt = <1800000>;
185c35f6dc5SNeil Armstrong		vin-supply = <&vddao_3v3>;
186c35f6dc5SNeil Armstrong		regulator-always-on;
187c35f6dc5SNeil Armstrong	};
188c35f6dc5SNeil Armstrong
189c35f6dc5SNeil Armstrong	vddao_3v3: regulator-vddao_3v3 {
190c35f6dc5SNeil Armstrong		compatible = "regulator-fixed";
191c35f6dc5SNeil Armstrong		regulator-name = "VDDAO_3V3";
192c35f6dc5SNeil Armstrong		regulator-min-microvolt = <3300000>;
193c35f6dc5SNeil Armstrong		regulator-max-microvolt = <3300000>;
194c35f6dc5SNeil Armstrong		vin-supply = <&main_12v>;
195c35f6dc5SNeil Armstrong		regulator-always-on;
196c35f6dc5SNeil Armstrong	};
197c35f6dc5SNeil Armstrong
198c35f6dc5SNeil Armstrong	hdmi-connector {
199c35f6dc5SNeil Armstrong		compatible = "hdmi-connector";
200c35f6dc5SNeil Armstrong		type = "a";
201c35f6dc5SNeil Armstrong
202c35f6dc5SNeil Armstrong		port {
203c35f6dc5SNeil Armstrong			hdmi_connector_in: endpoint {
204c35f6dc5SNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
205c35f6dc5SNeil Armstrong			};
206c35f6dc5SNeil Armstrong		};
207c35f6dc5SNeil Armstrong	};
208aa7d5873SNeil Armstrong
209aa7d5873SNeil Armstrong	sound {
210aa7d5873SNeil Armstrong		compatible = "amlogic,axg-sound-card";
211aa7d5873SNeil Armstrong		model = "G12A-ODROIDN2";
212aa7d5873SNeil Armstrong		audio-aux-devs = <&tdmout_b>;
213aa7d5873SNeil Armstrong		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
214aa7d5873SNeil Armstrong				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
215aa7d5873SNeil Armstrong				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
216aa7d5873SNeil Armstrong				"TDM_B Playback", "TDMOUT_B OUT";
217aa7d5873SNeil Armstrong
218aa7d5873SNeil Armstrong		assigned-clocks = <&clkc CLKID_MPLL2>,
219aa7d5873SNeil Armstrong				  <&clkc CLKID_MPLL0>,
220aa7d5873SNeil Armstrong				  <&clkc CLKID_MPLL1>;
221aa7d5873SNeil Armstrong		assigned-clock-parents = <0>, <0>, <0>;
222aa7d5873SNeil Armstrong		assigned-clock-rates = <294912000>,
223aa7d5873SNeil Armstrong				       <270950400>,
224aa7d5873SNeil Armstrong				       <393216000>;
225aa7d5873SNeil Armstrong		status = "okay";
226aa7d5873SNeil Armstrong
227aa7d5873SNeil Armstrong		dai-link-0 {
228aa7d5873SNeil Armstrong			sound-dai = <&frddr_a>;
229aa7d5873SNeil Armstrong		};
230aa7d5873SNeil Armstrong
231aa7d5873SNeil Armstrong		dai-link-1 {
232aa7d5873SNeil Armstrong			sound-dai = <&frddr_b>;
233aa7d5873SNeil Armstrong		};
234aa7d5873SNeil Armstrong
235aa7d5873SNeil Armstrong		dai-link-2 {
236aa7d5873SNeil Armstrong			sound-dai = <&frddr_c>;
237aa7d5873SNeil Armstrong		};
238aa7d5873SNeil Armstrong
239aa7d5873SNeil Armstrong		/* 8ch hdmi interface */
240aa7d5873SNeil Armstrong		dai-link-3 {
241aa7d5873SNeil Armstrong			sound-dai = <&tdmif_b>;
242aa7d5873SNeil Armstrong			dai-format = "i2s";
243aa7d5873SNeil Armstrong			dai-tdm-slot-tx-mask-0 = <1 1>;
244aa7d5873SNeil Armstrong			dai-tdm-slot-tx-mask-1 = <1 1>;
245aa7d5873SNeil Armstrong			dai-tdm-slot-tx-mask-2 = <1 1>;
246aa7d5873SNeil Armstrong			dai-tdm-slot-tx-mask-3 = <1 1>;
247aa7d5873SNeil Armstrong			mclk-fs = <256>;
248aa7d5873SNeil Armstrong
249aa7d5873SNeil Armstrong			codec {
250aa7d5873SNeil Armstrong				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
251aa7d5873SNeil Armstrong			};
252aa7d5873SNeil Armstrong		};
253aa7d5873SNeil Armstrong
254aa7d5873SNeil Armstrong		/* hdmi glue */
255aa7d5873SNeil Armstrong		dai-link-4 {
256aa7d5873SNeil Armstrong			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
257aa7d5873SNeil Armstrong
258aa7d5873SNeil Armstrong			codec {
259aa7d5873SNeil Armstrong				sound-dai = <&hdmi_tx>;
260aa7d5873SNeil Armstrong			};
261aa7d5873SNeil Armstrong		};
262aa7d5873SNeil Armstrong	};
263aa7d5873SNeil Armstrong};
264aa7d5873SNeil Armstrong
265aa7d5873SNeil Armstrong&arb {
266aa7d5873SNeil Armstrong	status = "okay";
267c35f6dc5SNeil Armstrong};
268c35f6dc5SNeil Armstrong
269c35f6dc5SNeil Armstrong&cec_AO {
270c35f6dc5SNeil Armstrong	pinctrl-0 = <&cec_ao_a_h_pins>;
271c35f6dc5SNeil Armstrong	pinctrl-names = "default";
272c35f6dc5SNeil Armstrong	status = "disabled";
273c35f6dc5SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
274c35f6dc5SNeil Armstrong};
275c35f6dc5SNeil Armstrong
276c35f6dc5SNeil Armstrong&cecb_AO {
277c35f6dc5SNeil Armstrong	pinctrl-0 = <&cec_ao_b_h_pins>;
278c35f6dc5SNeil Armstrong	pinctrl-names = "default";
279c35f6dc5SNeil Armstrong	status = "okay";
280c35f6dc5SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
281c35f6dc5SNeil Armstrong};
282c35f6dc5SNeil Armstrong
283aa7d5873SNeil Armstrong&clkc_audio {
284aa7d5873SNeil Armstrong	status = "okay";
285aa7d5873SNeil Armstrong};
286aa7d5873SNeil Armstrong
287d14734a0SNeil Armstrong&cpu0 {
288d14734a0SNeil Armstrong	cpu-supply = <&vddcpu_b>;
289d14734a0SNeil Armstrong	operating-points-v2 = <&cpu_opp_table_0>;
290d14734a0SNeil Armstrong	clocks = <&clkc CLKID_CPU_CLK>;
291d14734a0SNeil Armstrong	clock-latency = <50000>;
292d14734a0SNeil Armstrong};
293d14734a0SNeil Armstrong
294d14734a0SNeil Armstrong&cpu1 {
295d14734a0SNeil Armstrong	cpu-supply = <&vddcpu_b>;
296d14734a0SNeil Armstrong	operating-points-v2 = <&cpu_opp_table_0>;
297d14734a0SNeil Armstrong	clocks = <&clkc CLKID_CPU_CLK>;
298d14734a0SNeil Armstrong	clock-latency = <50000>;
299d14734a0SNeil Armstrong};
300d14734a0SNeil Armstrong
301d14734a0SNeil Armstrong&cpu100 {
302d14734a0SNeil Armstrong	cpu-supply = <&vddcpu_a>;
303d14734a0SNeil Armstrong	operating-points-v2 = <&cpub_opp_table_1>;
304d14734a0SNeil Armstrong	clocks = <&clkc CLKID_CPUB_CLK>;
305d14734a0SNeil Armstrong	clock-latency = <50000>;
306d14734a0SNeil Armstrong};
307d14734a0SNeil Armstrong
308d14734a0SNeil Armstrong&cpu101 {
309d14734a0SNeil Armstrong	cpu-supply = <&vddcpu_a>;
310d14734a0SNeil Armstrong	operating-points-v2 = <&cpub_opp_table_1>;
311d14734a0SNeil Armstrong	clocks = <&clkc CLKID_CPUB_CLK>;
312d14734a0SNeil Armstrong	clock-latency = <50000>;
313d14734a0SNeil Armstrong};
314d14734a0SNeil Armstrong
315d14734a0SNeil Armstrong&cpu102 {
316d14734a0SNeil Armstrong	cpu-supply = <&vddcpu_a>;
317d14734a0SNeil Armstrong	operating-points-v2 = <&cpub_opp_table_1>;
318d14734a0SNeil Armstrong	clocks = <&clkc CLKID_CPUB_CLK>;
319d14734a0SNeil Armstrong	clock-latency = <50000>;
320d14734a0SNeil Armstrong};
321d14734a0SNeil Armstrong
322d14734a0SNeil Armstrong&cpu103 {
323d14734a0SNeil Armstrong	cpu-supply = <&vddcpu_a>;
324d14734a0SNeil Armstrong	operating-points-v2 = <&cpub_opp_table_1>;
325d14734a0SNeil Armstrong	clocks = <&clkc CLKID_CPUB_CLK>;
326d14734a0SNeil Armstrong	clock-latency = <50000>;
327d14734a0SNeil Armstrong};
328d14734a0SNeil Armstrong
329c35f6dc5SNeil Armstrong&ext_mdio {
330c35f6dc5SNeil Armstrong	external_phy: ethernet-phy@0 {
331c35f6dc5SNeil Armstrong		/* Realtek RTL8211F (0x001cc916) */
332c35f6dc5SNeil Armstrong		reg = <0>;
333c35f6dc5SNeil Armstrong		max-speed = <1000>;
334658e4129SMartin Blumenstingl
335658e4129SMartin Blumenstingl		reset-assert-us = <10000>;
336658e4129SMartin Blumenstingl		reset-deassert-us = <30000>;
337658e4129SMartin Blumenstingl		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
33898ba71c9SMartin Blumenstingl
33998ba71c9SMartin Blumenstingl		interrupt-parent = <&gpio_intc>;
34098ba71c9SMartin Blumenstingl		/* MAC_INTR on GPIOZ_14 */
34198ba71c9SMartin Blumenstingl		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
342c35f6dc5SNeil Armstrong	};
343c35f6dc5SNeil Armstrong};
344c35f6dc5SNeil Armstrong
345c35f6dc5SNeil Armstrong&ethmac {
346c35f6dc5SNeil Armstrong	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
347c35f6dc5SNeil Armstrong	pinctrl-names = "default";
348c35f6dc5SNeil Armstrong	status = "okay";
349c35f6dc5SNeil Armstrong	phy-mode = "rgmii";
350c35f6dc5SNeil Armstrong	phy-handle = <&external_phy>;
351c35f6dc5SNeil Armstrong	amlogic,tx-delay-ns = <2>;
352c35f6dc5SNeil Armstrong};
353c35f6dc5SNeil Armstrong
354aa7d5873SNeil Armstrong&frddr_a {
355aa7d5873SNeil Armstrong	status = "okay";
356aa7d5873SNeil Armstrong};
357aa7d5873SNeil Armstrong
358aa7d5873SNeil Armstrong&frddr_b {
359aa7d5873SNeil Armstrong	status = "okay";
360aa7d5873SNeil Armstrong};
361aa7d5873SNeil Armstrong
362aa7d5873SNeil Armstrong&frddr_c {
363aa7d5873SNeil Armstrong	status = "okay";
364aa7d5873SNeil Armstrong};
365aa7d5873SNeil Armstrong
366c35f6dc5SNeil Armstrong&gpio {
367c35f6dc5SNeil Armstrong	/*
368c35f6dc5SNeil Armstrong	 * WARNING: The USB Hub on the Odroid-N2 needs a reset signal
369c35f6dc5SNeil Armstrong	 * to be turned high in order to be detected by the USB Controller
370c35f6dc5SNeil Armstrong	 * This signal should be handled by a USB specific power sequence
371c35f6dc5SNeil Armstrong	 * in order to reset the Hub when USB bus is powered down.
372c35f6dc5SNeil Armstrong	 */
373c35f6dc5SNeil Armstrong	usb-hub {
374c35f6dc5SNeil Armstrong		gpio-hog;
375c35f6dc5SNeil Armstrong		gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
376c35f6dc5SNeil Armstrong		output-high;
377c35f6dc5SNeil Armstrong		line-name = "usb-hub-reset";
378c35f6dc5SNeil Armstrong	};
379c35f6dc5SNeil Armstrong};
380c35f6dc5SNeil Armstrong
381c35f6dc5SNeil Armstrong&hdmi_tx {
382c35f6dc5SNeil Armstrong	status = "okay";
383c35f6dc5SNeil Armstrong	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
384c35f6dc5SNeil Armstrong	pinctrl-names = "default";
385c35f6dc5SNeil Armstrong	hdmi-supply = <&vcc_5v>;
386c35f6dc5SNeil Armstrong};
387c35f6dc5SNeil Armstrong
388c35f6dc5SNeil Armstrong&hdmi_tx_tmds_port {
389c35f6dc5SNeil Armstrong	hdmi_tx_tmds_out: endpoint {
390c35f6dc5SNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
391c35f6dc5SNeil Armstrong	};
392c35f6dc5SNeil Armstrong};
393c35f6dc5SNeil Armstrong
394c35f6dc5SNeil Armstrong&ir {
395c35f6dc5SNeil Armstrong	status = "okay";
396c35f6dc5SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
397c35f6dc5SNeil Armstrong	pinctrl-names = "default";
39841ac5a4cSChristian Hewitt	linux,rc-map-name = "rc-odroid";
399c35f6dc5SNeil Armstrong};
400c35f6dc5SNeil Armstrong
401d14734a0SNeil Armstrong&pwm_ab {
402d14734a0SNeil Armstrong	pinctrl-0 = <&pwm_a_e_pins>;
403d14734a0SNeil Armstrong	pinctrl-names = "default";
404d14734a0SNeil Armstrong	clocks = <&xtal>;
405d14734a0SNeil Armstrong	clock-names = "clkin0";
406d14734a0SNeil Armstrong	status = "okay";
407d14734a0SNeil Armstrong};
408d14734a0SNeil Armstrong
409d14734a0SNeil Armstrong&pwm_AO_cd {
410d14734a0SNeil Armstrong	pinctrl-0 = <&pwm_ao_d_e_pins>;
411d14734a0SNeil Armstrong	pinctrl-names = "default";
412d14734a0SNeil Armstrong	clocks = <&xtal>;
413d14734a0SNeil Armstrong	clock-names = "clkin1";
414d14734a0SNeil Armstrong	status = "okay";
415d14734a0SNeil Armstrong};
416d14734a0SNeil Armstrong
417c35f6dc5SNeil Armstrong/* SD card */
418c35f6dc5SNeil Armstrong&sd_emmc_b {
419c35f6dc5SNeil Armstrong	status = "okay";
420c35f6dc5SNeil Armstrong	pinctrl-0 = <&sdcard_c_pins>;
421c35f6dc5SNeil Armstrong	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
422c35f6dc5SNeil Armstrong	pinctrl-names = "default", "clk-gate";
423c35f6dc5SNeil Armstrong
424c35f6dc5SNeil Armstrong	bus-width = <4>;
425c35f6dc5SNeil Armstrong	cap-sd-highspeed;
426c35f6dc5SNeil Armstrong	max-frequency = <50000000>;
427c35f6dc5SNeil Armstrong	disable-wp;
428c35f6dc5SNeil Armstrong
429c35f6dc5SNeil Armstrong	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
430c35f6dc5SNeil Armstrong	vmmc-supply = <&tflash_vdd>;
431c35f6dc5SNeil Armstrong	vqmmc-supply = <&tf_io>;
432c35f6dc5SNeil Armstrong
433c35f6dc5SNeil Armstrong};
434c35f6dc5SNeil Armstrong
435c35f6dc5SNeil Armstrong/* eMMC */
436c35f6dc5SNeil Armstrong&sd_emmc_c {
437c35f6dc5SNeil Armstrong	status = "okay";
438c35f6dc5SNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
439c35f6dc5SNeil Armstrong	pinctrl-1 = <&emmc_clk_gate_pins>;
440c35f6dc5SNeil Armstrong	pinctrl-names = "default", "clk-gate";
441c35f6dc5SNeil Armstrong
442c35f6dc5SNeil Armstrong	bus-width = <8>;
443c35f6dc5SNeil Armstrong	cap-mmc-highspeed;
444c35f6dc5SNeil Armstrong	mmc-ddr-1_8v;
445c35f6dc5SNeil Armstrong	mmc-hs200-1_8v;
446c35f6dc5SNeil Armstrong	max-frequency = <200000000>;
447c35f6dc5SNeil Armstrong	disable-wp;
448c35f6dc5SNeil Armstrong
449c35f6dc5SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
450c35f6dc5SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
451c35f6dc5SNeil Armstrong	vqmmc-supply = <&flash_1v8>;
452c35f6dc5SNeil Armstrong};
453c35f6dc5SNeil Armstrong
454aa7d5873SNeil Armstrong&tdmif_b {
455aa7d5873SNeil Armstrong	status = "okay";
456aa7d5873SNeil Armstrong};
457aa7d5873SNeil Armstrong
458aa7d5873SNeil Armstrong&tdmout_b {
459aa7d5873SNeil Armstrong	status = "okay";
460aa7d5873SNeil Armstrong};
461aa7d5873SNeil Armstrong
462aa7d5873SNeil Armstrong&tohdmitx {
463aa7d5873SNeil Armstrong	status = "okay";
464aa7d5873SNeil Armstrong};
465aa7d5873SNeil Armstrong
466c35f6dc5SNeil Armstrong&uart_AO {
467c35f6dc5SNeil Armstrong	status = "okay";
468c35f6dc5SNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
469c35f6dc5SNeil Armstrong	pinctrl-names = "default";
470c35f6dc5SNeil Armstrong};
471c35f6dc5SNeil Armstrong
472c35f6dc5SNeil Armstrong&usb {
473c35f6dc5SNeil Armstrong	status = "okay";
474c35f6dc5SNeil Armstrong	vbus-supply = <&usb_pwr_en>;
475c35f6dc5SNeil Armstrong};
476c35f6dc5SNeil Armstrong
477c35f6dc5SNeil Armstrong&usb2_phy0 {
478c35f6dc5SNeil Armstrong	phy-supply = <&vcc_5v>;
479c35f6dc5SNeil Armstrong};
480c35f6dc5SNeil Armstrong
481c35f6dc5SNeil Armstrong&usb2_phy1 {
482c35f6dc5SNeil Armstrong	/* Enable the hub which is connected to this port */
483c35f6dc5SNeil Armstrong	phy-supply = <&hub_5v>;
484c35f6dc5SNeil Armstrong};
485