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