xref: /linux/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi (revision ca8dac3a019ac190c39365c99a632c0748c72f58)
1*ca8dac3aSChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*ca8dac3aSChristian Hewitt/*
3*ca8dac3aSChristian Hewitt * Copyright (c) 2021 BayLibre SAS
4*ca8dac3aSChristian Hewitt * Author: Neil Armstrong <narmstrong@baylibre.com>
5*ca8dac3aSChristian Hewitt */
6*ca8dac3aSChristian Hewitt
7*ca8dac3aSChristian Hewitt#include "meson-sm1.dtsi"
8*ca8dac3aSChristian Hewitt#include <dt-bindings/leds/common.h>
9*ca8dac3aSChristian Hewitt#include <dt-bindings/input/linux-event-codes.h>
10*ca8dac3aSChristian Hewitt#include <dt-bindings/gpio/meson-g12a-gpio.h>
11*ca8dac3aSChristian Hewitt
12*ca8dac3aSChristian Hewitt/ {
13*ca8dac3aSChristian Hewitt	adc-keys {
14*ca8dac3aSChristian Hewitt		compatible = "adc-keys";
15*ca8dac3aSChristian Hewitt		io-channels = <&saradc 2>;
16*ca8dac3aSChristian Hewitt		io-channel-names = "buttons";
17*ca8dac3aSChristian Hewitt		keyup-threshold-microvolt = <1800000>;
18*ca8dac3aSChristian Hewitt
19*ca8dac3aSChristian Hewitt		button-sw3 {
20*ca8dac3aSChristian Hewitt			label = "SW3";
21*ca8dac3aSChristian Hewitt			linux,code = <BTN_3>;
22*ca8dac3aSChristian Hewitt			press-threshold-microvolt = <1700000>;
23*ca8dac3aSChristian Hewitt		};
24*ca8dac3aSChristian Hewitt	};
25*ca8dac3aSChristian Hewitt
26*ca8dac3aSChristian Hewitt	aliases {
27*ca8dac3aSChristian Hewitt		serial0 = &uart_AO;
28*ca8dac3aSChristian Hewitt		ethernet0 = &ethmac;
29*ca8dac3aSChristian Hewitt	};
30*ca8dac3aSChristian Hewitt
31*ca8dac3aSChristian Hewitt	chosen {
32*ca8dac3aSChristian Hewitt		stdout-path = "serial0:115200n8";
33*ca8dac3aSChristian Hewitt	};
34*ca8dac3aSChristian Hewitt
35*ca8dac3aSChristian Hewitt	emmc_pwrseq: emmc-pwrseq {
36*ca8dac3aSChristian Hewitt		compatible = "mmc-pwrseq-emmc";
37*ca8dac3aSChristian Hewitt		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
38*ca8dac3aSChristian Hewitt	};
39*ca8dac3aSChristian Hewitt
40*ca8dac3aSChristian Hewitt	gpio-keys {
41*ca8dac3aSChristian Hewitt		compatible = "gpio-keys";
42*ca8dac3aSChristian Hewitt
43*ca8dac3aSChristian Hewitt		key {
44*ca8dac3aSChristian Hewitt			label = "SW1";
45*ca8dac3aSChristian Hewitt			linux,code = <BTN_1>;
46*ca8dac3aSChristian Hewitt			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
47*ca8dac3aSChristian Hewitt			interrupt-parent = <&gpio_intc>;
48*ca8dac3aSChristian Hewitt			interrupts = <3 IRQ_TYPE_EDGE_BOTH>;
49*ca8dac3aSChristian Hewitt		};
50*ca8dac3aSChristian Hewitt	};
51*ca8dac3aSChristian Hewitt
52*ca8dac3aSChristian Hewitt	hdmi-connector {
53*ca8dac3aSChristian Hewitt		compatible = "hdmi-connector";
54*ca8dac3aSChristian Hewitt		type = "a";
55*ca8dac3aSChristian Hewitt
56*ca8dac3aSChristian Hewitt		port {
57*ca8dac3aSChristian Hewitt			hdmi_connector_in: endpoint {
58*ca8dac3aSChristian Hewitt				remote-endpoint = <&hdmi_tx_tmds_out>;
59*ca8dac3aSChristian Hewitt			};
60*ca8dac3aSChristian Hewitt		};
61*ca8dac3aSChristian Hewitt	};
62*ca8dac3aSChristian Hewitt
63*ca8dac3aSChristian Hewitt	leds {
64*ca8dac3aSChristian Hewitt		compatible = "gpio-leds";
65*ca8dac3aSChristian Hewitt
66*ca8dac3aSChristian Hewitt		led-green {
67*ca8dac3aSChristian Hewitt			color = <LED_COLOR_ID_GREEN>;
68*ca8dac3aSChristian Hewitt			function = LED_FUNCTION_STATUS;
69*ca8dac3aSChristian Hewitt			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
70*ca8dac3aSChristian Hewitt		};
71*ca8dac3aSChristian Hewitt
72*ca8dac3aSChristian Hewitt		led-blue {
73*ca8dac3aSChristian Hewitt			color = <LED_COLOR_ID_BLUE>;
74*ca8dac3aSChristian Hewitt			function = LED_FUNCTION_STATUS;
75*ca8dac3aSChristian Hewitt			gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>;
76*ca8dac3aSChristian Hewitt			linux,default-trigger = "heartbeat";
77*ca8dac3aSChristian Hewitt		};
78*ca8dac3aSChristian Hewitt	};
79*ca8dac3aSChristian Hewitt
80*ca8dac3aSChristian Hewitt	memory@0 {
81*ca8dac3aSChristian Hewitt		device_type = "memory";
82*ca8dac3aSChristian Hewitt		reg = <0x0 0x0 0x0 0x40000000>;
83*ca8dac3aSChristian Hewitt	};
84*ca8dac3aSChristian Hewitt
85*ca8dac3aSChristian Hewitt	emmc_1v8: regulator-emmc_1v8 {
86*ca8dac3aSChristian Hewitt		compatible = "regulator-fixed";
87*ca8dac3aSChristian Hewitt		regulator-name = "EMMC_1V8";
88*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <1800000>;
89*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <1800000>;
90*ca8dac3aSChristian Hewitt		vin-supply = <&vddao_3v3>;
91*ca8dac3aSChristian Hewitt		regulator-always-on;
92*ca8dac3aSChristian Hewitt	};
93*ca8dac3aSChristian Hewitt
94*ca8dac3aSChristian Hewitt	dc_in: regulator-dc_in {
95*ca8dac3aSChristian Hewitt		compatible = "regulator-fixed";
96*ca8dac3aSChristian Hewitt		regulator-name = "DC_IN";
97*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <5000000>;
98*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <5000000>;
99*ca8dac3aSChristian Hewitt		regulator-always-on;
100*ca8dac3aSChristian Hewitt	};
101*ca8dac3aSChristian Hewitt
102*ca8dac3aSChristian Hewitt	vddio_c: regulator-vddio_c {
103*ca8dac3aSChristian Hewitt		compatible = "regulator-gpio";
104*ca8dac3aSChristian Hewitt		regulator-name = "VDDIO_C";
105*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <1800000>;
106*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <3300000>;
107*ca8dac3aSChristian Hewitt
108*ca8dac3aSChristian Hewitt		enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
109*ca8dac3aSChristian Hewitt		enable-active-high;
110*ca8dac3aSChristian Hewitt		regulator-always-on;
111*ca8dac3aSChristian Hewitt
112*ca8dac3aSChristian Hewitt		gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>;
113*ca8dac3aSChristian Hewitt		gpios-states = <1>;
114*ca8dac3aSChristian Hewitt
115*ca8dac3aSChristian Hewitt		states = <1800000 0>,
116*ca8dac3aSChristian Hewitt			 <3300000 1>;
117*ca8dac3aSChristian Hewitt	};
118*ca8dac3aSChristian Hewitt
119*ca8dac3aSChristian Hewitt	tflash_vdd: regulator-tflash_vdd {
120*ca8dac3aSChristian Hewitt		compatible = "regulator-fixed";
121*ca8dac3aSChristian Hewitt		regulator-name = "TFLASH_VDD";
122*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <3300000>;
123*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <3300000>;
124*ca8dac3aSChristian Hewitt		vin-supply = <&dc_in>;
125*ca8dac3aSChristian Hewitt		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
126*ca8dac3aSChristian Hewitt		enable-active-high;
127*ca8dac3aSChristian Hewitt		regulator-always-on;
128*ca8dac3aSChristian Hewitt	};
129*ca8dac3aSChristian Hewitt
130*ca8dac3aSChristian Hewitt	vddao_1v8: regulator-vddao_1v8 {
131*ca8dac3aSChristian Hewitt		compatible = "regulator-fixed";
132*ca8dac3aSChristian Hewitt		regulator-name = "VDDAO_1V8";
133*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <1800000>;
134*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <1800000>;
135*ca8dac3aSChristian Hewitt		vin-supply = <&vddao_3v3>;
136*ca8dac3aSChristian Hewitt		regulator-always-on;
137*ca8dac3aSChristian Hewitt	};
138*ca8dac3aSChristian Hewitt
139*ca8dac3aSChristian Hewitt	vddao_3v3: regulator-vddao_3v3 {
140*ca8dac3aSChristian Hewitt		compatible = "regulator-fixed";
141*ca8dac3aSChristian Hewitt		regulator-name = "VDDAO_3V3";
142*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <3300000>;
143*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <3300000>;
144*ca8dac3aSChristian Hewitt		vin-supply = <&dc_in>;
145*ca8dac3aSChristian Hewitt		regulator-always-on;
146*ca8dac3aSChristian Hewitt	};
147*ca8dac3aSChristian Hewitt
148*ca8dac3aSChristian Hewitt	vddcpu: regulator-vddcpu {
149*ca8dac3aSChristian Hewitt		/*
150*ca8dac3aSChristian Hewitt		 * SY8120B1ABC DC/DC Regulator.
151*ca8dac3aSChristian Hewitt		 */
152*ca8dac3aSChristian Hewitt		compatible = "pwm-regulator";
153*ca8dac3aSChristian Hewitt
154*ca8dac3aSChristian Hewitt		regulator-name = "VDDCPU";
155*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <690000>;
156*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <1050000>;
157*ca8dac3aSChristian Hewitt
158*ca8dac3aSChristian Hewitt		pwm-supply = <&dc_in>;
159*ca8dac3aSChristian Hewitt
160*ca8dac3aSChristian Hewitt		pwms = <&pwm_AO_cd 1 1250 0>;
161*ca8dac3aSChristian Hewitt		pwm-dutycycle-range = <100 0>;
162*ca8dac3aSChristian Hewitt
163*ca8dac3aSChristian Hewitt		regulator-boot-on;
164*ca8dac3aSChristian Hewitt		regulator-always-on;
165*ca8dac3aSChristian Hewitt	};
166*ca8dac3aSChristian Hewitt
167*ca8dac3aSChristian Hewitt	/* USB Hub Power Enable */
168*ca8dac3aSChristian Hewitt	vl_pwr_en: regulator-vl_pwr_en {
169*ca8dac3aSChristian Hewitt		compatible = "regulator-fixed";
170*ca8dac3aSChristian Hewitt		regulator-name = "VL_PWR_EN";
171*ca8dac3aSChristian Hewitt		regulator-min-microvolt = <5000000>;
172*ca8dac3aSChristian Hewitt		regulator-max-microvolt = <5000000>;
173*ca8dac3aSChristian Hewitt		vin-supply = <&dc_in>;
174*ca8dac3aSChristian Hewitt
175*ca8dac3aSChristian Hewitt		gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
176*ca8dac3aSChristian Hewitt		enable-active-high;
177*ca8dac3aSChristian Hewitt	};
178*ca8dac3aSChristian Hewitt};
179*ca8dac3aSChristian Hewitt
180*ca8dac3aSChristian Hewitt&arb {
181*ca8dac3aSChristian Hewitt	status = "okay";
182*ca8dac3aSChristian Hewitt};
183*ca8dac3aSChristian Hewitt
184*ca8dac3aSChristian Hewitt&cpu0 {
185*ca8dac3aSChristian Hewitt	cpu-supply = <&vddcpu>;
186*ca8dac3aSChristian Hewitt	operating-points-v2 = <&cpu_opp_table>;
187*ca8dac3aSChristian Hewitt	clocks = <&clkc CLKID_CPU_CLK>;
188*ca8dac3aSChristian Hewitt	clock-latency = <50000>;
189*ca8dac3aSChristian Hewitt};
190*ca8dac3aSChristian Hewitt
191*ca8dac3aSChristian Hewitt&cpu1 {
192*ca8dac3aSChristian Hewitt	cpu-supply = <&vddcpu>;
193*ca8dac3aSChristian Hewitt	operating-points-v2 = <&cpu_opp_table>;
194*ca8dac3aSChristian Hewitt	clocks = <&clkc CLKID_CPU1_CLK>;
195*ca8dac3aSChristian Hewitt	clock-latency = <50000>;
196*ca8dac3aSChristian Hewitt};
197*ca8dac3aSChristian Hewitt
198*ca8dac3aSChristian Hewitt&cpu2 {
199*ca8dac3aSChristian Hewitt	cpu-supply = <&vddcpu>;
200*ca8dac3aSChristian Hewitt	operating-points-v2 = <&cpu_opp_table>;
201*ca8dac3aSChristian Hewitt	clocks = <&clkc CLKID_CPU2_CLK>;
202*ca8dac3aSChristian Hewitt	clock-latency = <50000>;
203*ca8dac3aSChristian Hewitt};
204*ca8dac3aSChristian Hewitt
205*ca8dac3aSChristian Hewitt&cpu3 {
206*ca8dac3aSChristian Hewitt	cpu-supply = <&vddcpu>;
207*ca8dac3aSChristian Hewitt	operating-points-v2 = <&cpu_opp_table>;
208*ca8dac3aSChristian Hewitt	clocks = <&clkc CLKID_CPU3_CLK>;
209*ca8dac3aSChristian Hewitt	clock-latency = <50000>;
210*ca8dac3aSChristian Hewitt};
211*ca8dac3aSChristian Hewitt
212*ca8dac3aSChristian Hewitt&ext_mdio {
213*ca8dac3aSChristian Hewitt	external_phy: ethernet-phy@0 {
214*ca8dac3aSChristian Hewitt		/* Realtek RTL8211F (0x001cc916) */
215*ca8dac3aSChristian Hewitt		reg = <0>;
216*ca8dac3aSChristian Hewitt		max-speed = <1000>;
217*ca8dac3aSChristian Hewitt
218*ca8dac3aSChristian Hewitt		interrupt-parent = <&gpio_intc>;
219*ca8dac3aSChristian Hewitt		/* MAC_INTR on GPIOZ_14 */
220*ca8dac3aSChristian Hewitt		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
221*ca8dac3aSChristian Hewitt	};
222*ca8dac3aSChristian Hewitt};
223*ca8dac3aSChristian Hewitt
224*ca8dac3aSChristian Hewitt&ethmac {
225*ca8dac3aSChristian Hewitt	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
226*ca8dac3aSChristian Hewitt	pinctrl-names = "default";
227*ca8dac3aSChristian Hewitt	status = "okay";
228*ca8dac3aSChristian Hewitt	phy-mode = "rgmii-txid";
229*ca8dac3aSChristian Hewitt	phy-handle = <&external_phy>;
230*ca8dac3aSChristian Hewitt};
231*ca8dac3aSChristian Hewitt
232*ca8dac3aSChristian Hewitt&gpio {
233*ca8dac3aSChristian Hewitt	gpio-line-names =
234*ca8dac3aSChristian Hewitt		/* GPIOZ */
235*ca8dac3aSChristian Hewitt		"ETH_MDIO", /* GPIOZ_0 */
236*ca8dac3aSChristian Hewitt		"ETH_MDC", /* GPIOZ_1 */
237*ca8dac3aSChristian Hewitt		"ETH_RXCLK", /* GPIOZ_2 */
238*ca8dac3aSChristian Hewitt		"ETH_RX_DV", /* GPIOZ_3 */
239*ca8dac3aSChristian Hewitt		"ETH_RXD0", /* GPIOZ_4 */
240*ca8dac3aSChristian Hewitt		"ETH_RXD1", /* GPIOZ_5 */
241*ca8dac3aSChristian Hewitt		"ETH_RXD2", /* GPIOZ_6 */
242*ca8dac3aSChristian Hewitt		"ETH_RXD3", /* GPIOZ_7 */
243*ca8dac3aSChristian Hewitt		"ETH_TXCLK", /* GPIOZ_8 */
244*ca8dac3aSChristian Hewitt		"ETH_TXEN", /* GPIOZ_9 */
245*ca8dac3aSChristian Hewitt		"ETH_TXD0", /* GPIOZ_10 */
246*ca8dac3aSChristian Hewitt		"ETH_TXD1", /* GPIOZ_11 */
247*ca8dac3aSChristian Hewitt		"ETH_TXD2", /* GPIOZ_12 */
248*ca8dac3aSChristian Hewitt		"ETH_TXD3", /* GPIOZ_13 */
249*ca8dac3aSChristian Hewitt		"ETH_INTR", /* GPIOZ_14 */
250*ca8dac3aSChristian Hewitt		"ETH_NRST", /* GPIOZ_15 */
251*ca8dac3aSChristian Hewitt		/* GPIOH */
252*ca8dac3aSChristian Hewitt		"HDMI_SDA", /* GPIOH_0 */
253*ca8dac3aSChristian Hewitt		"HDMI_SCL", /* GPIOH_1 */
254*ca8dac3aSChristian Hewitt		"HDMI_HPD", /* GPIOH_2 */
255*ca8dac3aSChristian Hewitt		"HDMI_CEC", /* GPIOH_3 */
256*ca8dac3aSChristian Hewitt		"VL-RST_N", /* GPIOH_4 */
257*ca8dac3aSChristian Hewitt		"CON1-P36", /* GPIOH_5 */
258*ca8dac3aSChristian Hewitt		"VL-PWREN", /* GPIOH_6 */
259*ca8dac3aSChristian Hewitt		"WiFi_3V3_1V8", /* GPIOH_7 */
260*ca8dac3aSChristian Hewitt		"TFLASH_VDD_EN", /* GPIOH_8 */
261*ca8dac3aSChristian Hewitt		/* BOOT */
262*ca8dac3aSChristian Hewitt		"eMMC_D0", /* BOOT_0 */
263*ca8dac3aSChristian Hewitt		"eMMC_D1", /* BOOT_1 */
264*ca8dac3aSChristian Hewitt		"eMMC_D2", /* BOOT_2 */
265*ca8dac3aSChristian Hewitt		"eMMC_D3", /* BOOT_3 */
266*ca8dac3aSChristian Hewitt		"eMMC_D4", /* BOOT_4 */
267*ca8dac3aSChristian Hewitt		"eMMC_D5", /* BOOT_5 */
268*ca8dac3aSChristian Hewitt		"eMMC_D6", /* BOOT_6 */
269*ca8dac3aSChristian Hewitt		"eMMC_D7", /* BOOT_7 */
270*ca8dac3aSChristian Hewitt		"eMMC_CLK", /* BOOT_8 */
271*ca8dac3aSChristian Hewitt		"",
272*ca8dac3aSChristian Hewitt		"eMMC_CMD", /* BOOT_10 */
273*ca8dac3aSChristian Hewitt		"",
274*ca8dac3aSChristian Hewitt		"eMMC_RST#", /* BOOT_12 */
275*ca8dac3aSChristian Hewitt		"eMMC_DS", /* BOOT_13 */
276*ca8dac3aSChristian Hewitt		"", "",
277*ca8dac3aSChristian Hewitt		/* GPIOC */
278*ca8dac3aSChristian Hewitt		"SD_D0_B", /* GPIOC_0 */
279*ca8dac3aSChristian Hewitt		"SD_D1_B", /* GPIOC_1 */
280*ca8dac3aSChristian Hewitt		"SD_D2_B", /* GPIOC_2 */
281*ca8dac3aSChristian Hewitt		"SD_D3_B", /* GPIOC_3 */
282*ca8dac3aSChristian Hewitt		"SD_CLK_B", /* GPIOC_4 */
283*ca8dac3aSChristian Hewitt		"SD_CMD_B", /* GPIOC_5 */
284*ca8dac3aSChristian Hewitt		"CARD_EN_DET", /* GPIOC_6 */
285*ca8dac3aSChristian Hewitt		"",
286*ca8dac3aSChristian Hewitt		/* GPIOA */
287*ca8dac3aSChristian Hewitt		"", "", "", "", "", "", "", "",
288*ca8dac3aSChristian Hewitt		"", "", "", "", "", "",
289*ca8dac3aSChristian Hewitt		"CON1-P27", /* GPIOA_14 */
290*ca8dac3aSChristian Hewitt		"CON1-P28", /* GPIOA_15 */
291*ca8dac3aSChristian Hewitt		/* GPIOX */
292*ca8dac3aSChristian Hewitt		"CON1-P16", /* GPIOX_0 */
293*ca8dac3aSChristian Hewitt		"CON1-P18", /* GPIOX_1 */
294*ca8dac3aSChristian Hewitt		"CON1-P22", /* GPIOX_2 */
295*ca8dac3aSChristian Hewitt		"CON1-P11", /* GPIOX_3 */
296*ca8dac3aSChristian Hewitt		"CON1-P13", /* GPIOX_4 */
297*ca8dac3aSChristian Hewitt		"CON1-P07", /* GPIOX_5 */
298*ca8dac3aSChristian Hewitt		"CON1-P33", /* GPIOX_6 */
299*ca8dac3aSChristian Hewitt		"CON1-P15", /* GPIOX_7 */
300*ca8dac3aSChristian Hewitt		"CON1-P19", /* GPIOX_8 */
301*ca8dac3aSChristian Hewitt		"CON1-P21", /* GPIOX_9 */
302*ca8dac3aSChristian Hewitt		"CON1-P24", /* GPIOX_10 */
303*ca8dac3aSChristian Hewitt		"CON1-P23", /* GPIOX_11 */
304*ca8dac3aSChristian Hewitt		"CON1-P08", /* GPIOX_12 */
305*ca8dac3aSChristian Hewitt		"CON1-P10", /* GPIOX_13 */
306*ca8dac3aSChristian Hewitt		"CON1-P29", /* GPIOX_14 */
307*ca8dac3aSChristian Hewitt		"CON1-P31", /* GPIOX_15 */
308*ca8dac3aSChristian Hewitt		"CON1-P26", /* GPIOX_16 */
309*ca8dac3aSChristian Hewitt		"CON1-P03", /* GPIOX_17 */
310*ca8dac3aSChristian Hewitt		"CON1-P05", /* GPIOX_18 */
311*ca8dac3aSChristian Hewitt		"CON1-P32"; /* GPIOX_19 */
312*ca8dac3aSChristian Hewitt
313*ca8dac3aSChristian Hewitt	/*
314*ca8dac3aSChristian Hewitt	 * WARNING: The USB Hub needs a reset signal to be turned high in
315*ca8dac3aSChristian Hewitt	 * order to be detected by the USB Controller. This signal should
316*ca8dac3aSChristian Hewitt	 * be handled by a USB specific power sequence to reset the Hub
317*ca8dac3aSChristian Hewitt	 * when the USB bus is powered down.
318*ca8dac3aSChristian Hewitt	 */
319*ca8dac3aSChristian Hewitt	usb-hub {
320*ca8dac3aSChristian Hewitt		gpio-hog;
321*ca8dac3aSChristian Hewitt		gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
322*ca8dac3aSChristian Hewitt		output-high;
323*ca8dac3aSChristian Hewitt		line-name = "usb-hub-reset";
324*ca8dac3aSChristian Hewitt	};
325*ca8dac3aSChristian Hewitt};
326*ca8dac3aSChristian Hewitt
327*ca8dac3aSChristian Hewitt&gpio_ao {
328*ca8dac3aSChristian Hewitt	gpio-line-names =
329*ca8dac3aSChristian Hewitt		/* GPIOAO */
330*ca8dac3aSChristian Hewitt		"DEBUG TX", /* GPIOAO_0 */
331*ca8dac3aSChristian Hewitt		"DEBUG RX", /* GPIOAO_1 */
332*ca8dac3aSChristian Hewitt		"SYS_LED2", /* GPIOAO_2 */
333*ca8dac3aSChristian Hewitt		"UPDATE_KEY", /* GPIOAO_3 */
334*ca8dac3aSChristian Hewitt		"CON1-P40", /* GPIOAO_4 */
335*ca8dac3aSChristian Hewitt		"IR_IN", /* GPIOAO_5 */
336*ca8dac3aSChristian Hewitt		"TF_3V3N_1V8_EN", /* GPIOAO_6 */
337*ca8dac3aSChristian Hewitt		"CON1-P35", /* GPIOAO_7 */
338*ca8dac3aSChristian Hewitt		"CON1-P12", /* GPIOAO_8 */
339*ca8dac3aSChristian Hewitt		"CON1-P37", /* GPIOAO_9 */
340*ca8dac3aSChristian Hewitt		"CON1-P38", /* GPIOAO_10 */
341*ca8dac3aSChristian Hewitt		"SYS_LED", /* GPIOAO_11 */
342*ca8dac3aSChristian Hewitt		/* GPIOE */
343*ca8dac3aSChristian Hewitt		"VDDEE_PWM", /* GPIOE_0 */
344*ca8dac3aSChristian Hewitt		"VDDCPU_PWM", /* GPIOE_1 */
345*ca8dac3aSChristian Hewitt		"TF_PWR_EN"; /* GPIOE_2 */
346*ca8dac3aSChristian Hewitt};
347*ca8dac3aSChristian Hewitt
348*ca8dac3aSChristian Hewitt&hdmi_tx {
349*ca8dac3aSChristian Hewitt	status = "okay";
350*ca8dac3aSChristian Hewitt	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
351*ca8dac3aSChristian Hewitt	pinctrl-names = "default";
352*ca8dac3aSChristian Hewitt	hdmi-supply = <&dc_in>;
353*ca8dac3aSChristian Hewitt};
354*ca8dac3aSChristian Hewitt
355*ca8dac3aSChristian Hewitt&hdmi_tx_tmds_port {
356*ca8dac3aSChristian Hewitt	hdmi_tx_tmds_out: endpoint {
357*ca8dac3aSChristian Hewitt		remote-endpoint = <&hdmi_connector_in>;
358*ca8dac3aSChristian Hewitt	};
359*ca8dac3aSChristian Hewitt};
360*ca8dac3aSChristian Hewitt
361*ca8dac3aSChristian Hewitt&ir {
362*ca8dac3aSChristian Hewitt	status = "okay";
363*ca8dac3aSChristian Hewitt	pinctrl-0 = <&remote_input_ao_pins>;
364*ca8dac3aSChristian Hewitt	pinctrl-names = "default";
365*ca8dac3aSChristian Hewitt};
366*ca8dac3aSChristian Hewitt
367*ca8dac3aSChristian Hewitt&pwm_AO_cd {
368*ca8dac3aSChristian Hewitt	pinctrl-0 = <&pwm_ao_d_e_pins>;
369*ca8dac3aSChristian Hewitt	pinctrl-names = "default";
370*ca8dac3aSChristian Hewitt	clocks = <&xtal>;
371*ca8dac3aSChristian Hewitt	clock-names = "clkin1";
372*ca8dac3aSChristian Hewitt	status = "okay";
373*ca8dac3aSChristian Hewitt};
374*ca8dac3aSChristian Hewitt
375*ca8dac3aSChristian Hewitt&saradc {
376*ca8dac3aSChristian Hewitt	status = "okay";
377*ca8dac3aSChristian Hewitt	vref-supply = <&vddao_1v8>;
378*ca8dac3aSChristian Hewitt};
379*ca8dac3aSChristian Hewitt
380*ca8dac3aSChristian Hewitt/* SD card */
381*ca8dac3aSChristian Hewitt&sd_emmc_b {
382*ca8dac3aSChristian Hewitt	status = "okay";
383*ca8dac3aSChristian Hewitt	pinctrl-0 = <&sdcard_c_pins>;
384*ca8dac3aSChristian Hewitt	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
385*ca8dac3aSChristian Hewitt	pinctrl-names = "default", "clk-gate";
386*ca8dac3aSChristian Hewitt
387*ca8dac3aSChristian Hewitt	bus-width = <4>;
388*ca8dac3aSChristian Hewitt	cap-sd-highspeed;
389*ca8dac3aSChristian Hewitt	max-frequency = <50000000>;
390*ca8dac3aSChristian Hewitt	disable-wp;
391*ca8dac3aSChristian Hewitt
392*ca8dac3aSChristian Hewitt	/* TOFIX: SD card is barely usable in SDR modes */
393*ca8dac3aSChristian Hewitt
394*ca8dac3aSChristian Hewitt	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
395*ca8dac3aSChristian Hewitt	vmmc-supply = <&tflash_vdd>;
396*ca8dac3aSChristian Hewitt	vqmmc-supply = <&vddio_c>;
397*ca8dac3aSChristian Hewitt};
398*ca8dac3aSChristian Hewitt
399*ca8dac3aSChristian Hewitt/* eMMC */
400*ca8dac3aSChristian Hewitt&sd_emmc_c {
401*ca8dac3aSChristian Hewitt	status = "okay";
402*ca8dac3aSChristian Hewitt	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
403*ca8dac3aSChristian Hewitt	pinctrl-1 = <&emmc_clk_gate_pins>;
404*ca8dac3aSChristian Hewitt	pinctrl-names = "default", "clk-gate";
405*ca8dac3aSChristian Hewitt
406*ca8dac3aSChristian Hewitt	bus-width = <8>;
407*ca8dac3aSChristian Hewitt	cap-mmc-highspeed;
408*ca8dac3aSChristian Hewitt	mmc-ddr-1_8v;
409*ca8dac3aSChristian Hewitt	mmc-hs200-1_8v;
410*ca8dac3aSChristian Hewitt	max-frequency = <200000000>;
411*ca8dac3aSChristian Hewitt	disable-wp;
412*ca8dac3aSChristian Hewitt
413*ca8dac3aSChristian Hewitt	mmc-pwrseq = <&emmc_pwrseq>;
414*ca8dac3aSChristian Hewitt	vmmc-supply = <&vddao_3v3>;
415*ca8dac3aSChristian Hewitt	vqmmc-supply = <&emmc_1v8>;
416*ca8dac3aSChristian Hewitt};
417*ca8dac3aSChristian Hewitt
418*ca8dac3aSChristian Hewitt&uart_AO {
419*ca8dac3aSChristian Hewitt	status = "okay";
420*ca8dac3aSChristian Hewitt	pinctrl-0 = <&uart_ao_a_pins>;
421*ca8dac3aSChristian Hewitt	pinctrl-names = "default";
422*ca8dac3aSChristian Hewitt};
423*ca8dac3aSChristian Hewitt
424*ca8dac3aSChristian Hewitt&usb {
425*ca8dac3aSChristian Hewitt	status = "okay";
426*ca8dac3aSChristian Hewitt};
427*ca8dac3aSChristian Hewitt
428*ca8dac3aSChristian Hewitt&usb2_phy0 {
429*ca8dac3aSChristian Hewitt	phy-supply = <&dc_in>;
430*ca8dac3aSChristian Hewitt};
431*ca8dac3aSChristian Hewitt
432*ca8dac3aSChristian Hewitt&usb2_phy1 {
433*ca8dac3aSChristian Hewitt	/* Enable the hub which is connected to this port */
434*ca8dac3aSChristian Hewitt	phy-supply = <&vl_pwr_en>;
435*ca8dac3aSChristian Hewitt};
436