xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2019 BayLibre SAS.
4*4882a593Smuzhiyun * Author: Jerome Brunet <jbrunet@baylibre.com>
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/* Libretech Amlogic GX PC form factor - AKA: Tartiflette */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
10*4882a593Smuzhiyun#include <dt-bindings/leds/common.h>
11*4882a593Smuzhiyun#include <dt-bindings/sound/meson-aiu.h>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun/ {
14*4882a593Smuzhiyun	adc-keys {
15*4882a593Smuzhiyun		compatible = "adc-keys";
16*4882a593Smuzhiyun		io-channels = <&saradc 0>;
17*4882a593Smuzhiyun		io-channel-names = "buttons";
18*4882a593Smuzhiyun		keyup-threshold-microvolt = <1800000>;
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun		update-button {
21*4882a593Smuzhiyun			label = "update";
22*4882a593Smuzhiyun			linux,code = <KEY_VENDOR>;
23*4882a593Smuzhiyun			press-threshold-microvolt = <1300000>;
24*4882a593Smuzhiyun		};
25*4882a593Smuzhiyun	};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	aliases {
28*4882a593Smuzhiyun		serial0 = &uart_AO;
29*4882a593Smuzhiyun		ethernet0 = &ethmac;
30*4882a593Smuzhiyun		spi0 = &spifc;
31*4882a593Smuzhiyun	};
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	dio2133: analog-amplifier {
34*4882a593Smuzhiyun		compatible = "simple-audio-amplifier";
35*4882a593Smuzhiyun		sound-name-prefix = "AU2";
36*4882a593Smuzhiyun		VCC-supply = <&vcc5v>;
37*4882a593Smuzhiyun		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
38*4882a593Smuzhiyun	};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	chosen {
41*4882a593Smuzhiyun		stdout-path = "serial0:115200n8";
42*4882a593Smuzhiyun	};
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	cvbs-connector {
45*4882a593Smuzhiyun		compatible = "composite-video-connector";
46*4882a593Smuzhiyun		status = "disabled";
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		port {
49*4882a593Smuzhiyun			cvbs_connector_in: endpoint {
50*4882a593Smuzhiyun				remote-endpoint = <&cvbs_vdac_out>;
51*4882a593Smuzhiyun			};
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	emmc_pwrseq: emmc-pwrseq {
56*4882a593Smuzhiyun		compatible = "mmc-pwrseq-emmc";
57*4882a593Smuzhiyun		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
58*4882a593Smuzhiyun	};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun	hdmi-connector {
61*4882a593Smuzhiyun		compatible = "hdmi-connector";
62*4882a593Smuzhiyun		type = "a";
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun		port {
65*4882a593Smuzhiyun			hdmi_connector_in: endpoint {
66*4882a593Smuzhiyun				remote-endpoint = <&hdmi_tx_tmds_out>;
67*4882a593Smuzhiyun			};
68*4882a593Smuzhiyun		};
69*4882a593Smuzhiyun	};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	gpio-keys-polled {
72*4882a593Smuzhiyun		compatible = "gpio-keys-polled";
73*4882a593Smuzhiyun		poll-interval = <100>;
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun		power-button {
76*4882a593Smuzhiyun			label = "power";
77*4882a593Smuzhiyun			linux,code = <KEY_POWER>;
78*4882a593Smuzhiyun			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
79*4882a593Smuzhiyun		};
80*4882a593Smuzhiyun	};
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	memory@0 {
83*4882a593Smuzhiyun		device_type = "memory";
84*4882a593Smuzhiyun		reg = <0x0 0x0 0x0 0x80000000>;
85*4882a593Smuzhiyun	};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	ao_5v: regulator-ao_5v {
88*4882a593Smuzhiyun		compatible = "regulator-fixed";
89*4882a593Smuzhiyun		regulator-name = "AO_5V";
90*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
91*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
92*4882a593Smuzhiyun		vin-supply = <&dc_in>;
93*4882a593Smuzhiyun		regulator-always-on;
94*4882a593Smuzhiyun	};
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	dc_in: regulator-dc_in {
97*4882a593Smuzhiyun		compatible = "regulator-fixed";
98*4882a593Smuzhiyun		regulator-name = "DC_IN";
99*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
100*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
101*4882a593Smuzhiyun		regulator-always-on;
102*4882a593Smuzhiyun	};
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun	leds {
105*4882a593Smuzhiyun		compatible = "gpio-leds";
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun		led-green {
108*4882a593Smuzhiyun			color = <LED_COLOR_ID_GREEN>;
109*4882a593Smuzhiyun			function = LED_FUNCTION_DISK_ACTIVITY;
110*4882a593Smuzhiyun			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
111*4882a593Smuzhiyun			linux,default-trigger = "disk-activity";
112*4882a593Smuzhiyun		};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun		led-blue {
115*4882a593Smuzhiyun			color = <LED_COLOR_ID_BLUE>;
116*4882a593Smuzhiyun			function = LED_FUNCTION_STATUS;
117*4882a593Smuzhiyun			gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
118*4882a593Smuzhiyun			linux,default-trigger = "heartbeat";
119*4882a593Smuzhiyun			panic-indicator;
120*4882a593Smuzhiyun		};
121*4882a593Smuzhiyun	};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun	vcc_card: regulator-vcc_card {
124*4882a593Smuzhiyun		compatible = "regulator-fixed";
125*4882a593Smuzhiyun		regulator-name = "VCC_CARD";
126*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
127*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
128*4882a593Smuzhiyun		vin-supply = <&vddio_ao3v3>;
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun		gpio = <&gpio GPIODV_4 GPIO_ACTIVE_HIGH>;
131*4882a593Smuzhiyun		enable-active-high;
132*4882a593Smuzhiyun	};
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun	vcc5v: regulator-vcc5v {
135*4882a593Smuzhiyun		compatible = "regulator-fixed";
136*4882a593Smuzhiyun		regulator-name = "VCC5V";
137*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
138*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
139*4882a593Smuzhiyun		vin-supply = <&ao_5v>;
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun		gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
142*4882a593Smuzhiyun	};
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun	vddio_ao18: regulator-vddio_ao18 {
145*4882a593Smuzhiyun		compatible = "regulator-fixed";
146*4882a593Smuzhiyun		regulator-name = "VDDIO_AO18";
147*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
148*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
149*4882a593Smuzhiyun		vin-supply = <&ao_5v>;
150*4882a593Smuzhiyun		regulator-always-on;
151*4882a593Smuzhiyun	};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun	vddio_ao3v3: regulator-vddio_ao3v3 {
154*4882a593Smuzhiyun		compatible = "regulator-fixed";
155*4882a593Smuzhiyun		regulator-name = "VDDIO_AO3V3";
156*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
157*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
158*4882a593Smuzhiyun		vin-supply = <&ao_5v>;
159*4882a593Smuzhiyun		regulator-always-on;
160*4882a593Smuzhiyun	};
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun	vddio_boot: regulator-vddio_boot {
163*4882a593Smuzhiyun		compatible = "regulator-fixed";
164*4882a593Smuzhiyun		regulator-name = "VDDIO_BOOT";
165*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
166*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
167*4882a593Smuzhiyun		vin-supply = <&vddio_ao3v3>;
168*4882a593Smuzhiyun		regulator-always-on;
169*4882a593Smuzhiyun	};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun	vddio_card: regulator-vddio-card {
172*4882a593Smuzhiyun		compatible = "regulator-gpio";
173*4882a593Smuzhiyun		regulator-name = "VDDIO_CARD";
174*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
175*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun		gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>;
178*4882a593Smuzhiyun		gpios-states = <0>;
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun		states = <3300000 0>,
181*4882a593Smuzhiyun			 <1800000 1>;
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun		regulator-settling-time-up-us = <200>;
184*4882a593Smuzhiyun		regulator-settling-time-down-us = <50000>;
185*4882a593Smuzhiyun	};
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun	sound {
188*4882a593Smuzhiyun		compatible = "amlogic,gx-sound-card";
189*4882a593Smuzhiyun		model = "GXL-LIBRETECH-S9XX-PC";
190*4882a593Smuzhiyun		audio-aux-devs = <&dio2133>;
191*4882a593Smuzhiyun		audio-widgets = "Speaker", "7J4-14 LEFT",
192*4882a593Smuzhiyun				"Speaker", "7J4-11 RIGHT";
193*4882a593Smuzhiyun		audio-routing = "AU2 INL", "ACODEC LOLN",
194*4882a593Smuzhiyun				"AU2 INR", "ACODEC LORN",
195*4882a593Smuzhiyun				"7J4-14 LEFT", "AU2 OUTL",
196*4882a593Smuzhiyun				"7J4-11 RIGHT", "AU2 OUTR";
197*4882a593Smuzhiyun		assigned-clocks = <&clkc CLKID_MPLL0>,
198*4882a593Smuzhiyun				  <&clkc CLKID_MPLL1>,
199*4882a593Smuzhiyun				  <&clkc CLKID_MPLL2>;
200*4882a593Smuzhiyun		assigned-clock-parents = <0>, <0>, <0>;
201*4882a593Smuzhiyun		assigned-clock-rates = <294912000>,
202*4882a593Smuzhiyun				       <270950400>,
203*4882a593Smuzhiyun				       <393216000>;
204*4882a593Smuzhiyun		status = "okay";
205*4882a593Smuzhiyun
206*4882a593Smuzhiyun		dai-link-0 {
207*4882a593Smuzhiyun			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
208*4882a593Smuzhiyun		};
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun		dai-link-1 {
211*4882a593Smuzhiyun			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
212*4882a593Smuzhiyun			dai-format = "i2s";
213*4882a593Smuzhiyun			mclk-fs = <256>;
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun			codec-0 {
216*4882a593Smuzhiyun				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
217*4882a593Smuzhiyun			};
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun			codec-1 {
220*4882a593Smuzhiyun				sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
221*4882a593Smuzhiyun			};
222*4882a593Smuzhiyun		};
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun		dai-link-2 {
225*4882a593Smuzhiyun			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun			codec-0 {
228*4882a593Smuzhiyun				sound-dai = <&hdmi_tx>;
229*4882a593Smuzhiyun			};
230*4882a593Smuzhiyun		};
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun		dai-link-3 {
233*4882a593Smuzhiyun			sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun			codec-0 {
236*4882a593Smuzhiyun				sound-dai = <&acodec>;
237*4882a593Smuzhiyun			};
238*4882a593Smuzhiyun		};
239*4882a593Smuzhiyun	};
240*4882a593Smuzhiyun};
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun&acodec {
243*4882a593Smuzhiyun	AVDD-supply = <&vddio_ao18>;
244*4882a593Smuzhiyun	status = "okay";
245*4882a593Smuzhiyun};
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun&aiu {
248*4882a593Smuzhiyun	status = "okay";
249*4882a593Smuzhiyun};
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun&cec_AO {
252*4882a593Smuzhiyun	pinctrl-0 = <&ao_cec_pins>;
253*4882a593Smuzhiyun	pinctrl-names = "default";
254*4882a593Smuzhiyun	hdmi-phandle = <&hdmi_tx>;
255*4882a593Smuzhiyun	status = "okay";
256*4882a593Smuzhiyun};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun&cvbs_vdac_port {
259*4882a593Smuzhiyun	cvbs_vdac_out: endpoint {
260*4882a593Smuzhiyun		remote-endpoint = <&cvbs_connector_in>;
261*4882a593Smuzhiyun	};
262*4882a593Smuzhiyun};
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun&ethmac {
265*4882a593Smuzhiyun	pinctrl-0 = <&eth_pins>, <&eth_phy_irq_pins>;
266*4882a593Smuzhiyun	pinctrl-names = "default";
267*4882a593Smuzhiyun	phy-handle = <&external_phy>;
268*4882a593Smuzhiyun	amlogic,tx-delay-ns = <2>;
269*4882a593Smuzhiyun	phy-mode = "rgmii";
270*4882a593Smuzhiyun	status = "okay";
271*4882a593Smuzhiyun};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun&external_mdio {
274*4882a593Smuzhiyun	external_phy: ethernet-phy@0 {
275*4882a593Smuzhiyun		reg = <0>;
276*4882a593Smuzhiyun		max-speed = <1000>;
277*4882a593Smuzhiyun		reset-assert-us = <10000>;
278*4882a593Smuzhiyun		reset-deassert-us = <30000>;
279*4882a593Smuzhiyun		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
280*4882a593Smuzhiyun		interrupt-parent = <&gpio_intc>;
281*4882a593Smuzhiyun		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
282*4882a593Smuzhiyun	};
283*4882a593Smuzhiyun};
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun&pinctrl_periphs {
286*4882a593Smuzhiyun	/*
287*4882a593Smuzhiyun	 * Make sure the reset pin of the usb HUB is driven high to take
288*4882a593Smuzhiyun	 * it out of reset.
289*4882a593Smuzhiyun	 */
290*4882a593Smuzhiyun	usb1_rst_pins: usb1_rst_irq {
291*4882a593Smuzhiyun		mux {
292*4882a593Smuzhiyun			groups = "GPIODV_3";
293*4882a593Smuzhiyun			function = "gpio_periphs";
294*4882a593Smuzhiyun			bias-disable;
295*4882a593Smuzhiyun			output-high;
296*4882a593Smuzhiyun		};
297*4882a593Smuzhiyun	};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun	/* Make sure the phy irq pin is properly configured as input */
300*4882a593Smuzhiyun	eth_phy_irq_pins: eth_phy_irq {
301*4882a593Smuzhiyun		mux {
302*4882a593Smuzhiyun			groups = "GPIOZ_15";
303*4882a593Smuzhiyun			function = "gpio_periphs";
304*4882a593Smuzhiyun			bias-disable;
305*4882a593Smuzhiyun			output-disable;
306*4882a593Smuzhiyun		};
307*4882a593Smuzhiyun	};
308*4882a593Smuzhiyun};
309*4882a593Smuzhiyun
310*4882a593Smuzhiyun&hdmi_tx {
311*4882a593Smuzhiyun	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
312*4882a593Smuzhiyun	pinctrl-names = "default";
313*4882a593Smuzhiyun	hdmi-supply = <&vcc5v>;
314*4882a593Smuzhiyun	status = "okay";
315*4882a593Smuzhiyun};
316*4882a593Smuzhiyun
317*4882a593Smuzhiyun&hdmi_tx_tmds_port {
318*4882a593Smuzhiyun	hdmi_tx_tmds_out: endpoint {
319*4882a593Smuzhiyun		remote-endpoint = <&hdmi_connector_in>;
320*4882a593Smuzhiyun	};
321*4882a593Smuzhiyun};
322*4882a593Smuzhiyun
323*4882a593Smuzhiyun&ir {
324*4882a593Smuzhiyun	pinctrl-0 = <&remote_input_ao_pins>;
325*4882a593Smuzhiyun	pinctrl-names = "default";
326*4882a593Smuzhiyun	status = "okay";
327*4882a593Smuzhiyun};
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun&i2c_C {
330*4882a593Smuzhiyun	pinctrl-0 = <&i2c_c_dv18_pins>;
331*4882a593Smuzhiyun	pinctrl-names = "default";
332*4882a593Smuzhiyun	status = "okay";
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun	rtc: rtc@51 {
335*4882a593Smuzhiyun		reg = <0x51>;
336*4882a593Smuzhiyun		compatible = "nxp,pcf8563";
337*4882a593Smuzhiyun		#clock-cells = <0>;
338*4882a593Smuzhiyun		clock-output-names = "rtc_clkout";
339*4882a593Smuzhiyun	};
340*4882a593Smuzhiyun};
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun&pwm_AO_ab {
343*4882a593Smuzhiyun	pinctrl-0 = <&pwm_ao_a_3_pins>;
344*4882a593Smuzhiyun	pinctrl-names = "default";
345*4882a593Smuzhiyun	clocks = <&clkc CLKID_FCLK_DIV4>;
346*4882a593Smuzhiyun	clock-names = "clkin0";
347*4882a593Smuzhiyun	status = "okay";
348*4882a593Smuzhiyun};
349*4882a593Smuzhiyun
350*4882a593Smuzhiyun&pwm_ab {
351*4882a593Smuzhiyun	pinctrl-0 = <&pwm_b_pins>;
352*4882a593Smuzhiyun	pinctrl-names = "default";
353*4882a593Smuzhiyun	clocks = <&clkc CLKID_FCLK_DIV4>;
354*4882a593Smuzhiyun	clock-names = "clkin0";
355*4882a593Smuzhiyun	status = "okay";
356*4882a593Smuzhiyun};
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun&pwm_ef {
359*4882a593Smuzhiyun	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
360*4882a593Smuzhiyun	pinctrl-names = "default";
361*4882a593Smuzhiyun	clocks = <&clkc CLKID_FCLK_DIV4>;
362*4882a593Smuzhiyun	clock-names = "clkin0";
363*4882a593Smuzhiyun	status = "okay";
364*4882a593Smuzhiyun};
365*4882a593Smuzhiyun
366*4882a593Smuzhiyun&saradc {
367*4882a593Smuzhiyun	vref-supply = <&vddio_ao18>;
368*4882a593Smuzhiyun	status = "okay";
369*4882a593Smuzhiyun};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun/* SD card */
372*4882a593Smuzhiyun&sd_emmc_b {
373*4882a593Smuzhiyun	pinctrl-0 = <&sdcard_pins>;
374*4882a593Smuzhiyun	pinctrl-1 = <&sdcard_clk_gate_pins>;
375*4882a593Smuzhiyun	pinctrl-names = "default", "clk-gate";
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun	bus-width = <4>;
378*4882a593Smuzhiyun	cap-sd-highspeed;
379*4882a593Smuzhiyun	sd-uhs-sdr12;
380*4882a593Smuzhiyun	sd-uhs-sdr25;
381*4882a593Smuzhiyun	sd-uhs-sdr50;
382*4882a593Smuzhiyun	sd-uhs-ddr50;
383*4882a593Smuzhiyun	max-frequency = <200000000>;
384*4882a593Smuzhiyun	disable-wp;
385*4882a593Smuzhiyun
386*4882a593Smuzhiyun	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun	vmmc-supply = <&vcc_card>;
389*4882a593Smuzhiyun	vqmmc-supply = <&vddio_card>;
390*4882a593Smuzhiyun
391*4882a593Smuzhiyun	status = "okay";
392*4882a593Smuzhiyun};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun/* eMMC */
395*4882a593Smuzhiyun&sd_emmc_c {
396*4882a593Smuzhiyun	pinctrl-0 = <&emmc_pins>;
397*4882a593Smuzhiyun	pinctrl-1 = <&emmc_clk_gate_pins>;
398*4882a593Smuzhiyun	pinctrl-names = "default", "clk-gate";
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun	bus-width = <8>;
401*4882a593Smuzhiyun	cap-mmc-highspeed;
402*4882a593Smuzhiyun	mmc-ddr-1_8v;
403*4882a593Smuzhiyun	mmc-hs200-1_8v;
404*4882a593Smuzhiyun	max-frequency = <200000000>;
405*4882a593Smuzhiyun	disable-wp;
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun	mmc-pwrseq = <&emmc_pwrseq>;
408*4882a593Smuzhiyun	vmmc-supply = <&vddio_ao3v3>;
409*4882a593Smuzhiyun	vqmmc-supply = <&vddio_boot>;
410*4882a593Smuzhiyun
411*4882a593Smuzhiyun	status = "okay";
412*4882a593Smuzhiyun};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun&spifc {
415*4882a593Smuzhiyun	pinctrl-0 = <&nor_pins>;
416*4882a593Smuzhiyun	pinctrl-names = "default";
417*4882a593Smuzhiyun	status = "okay";
418*4882a593Smuzhiyun
419*4882a593Smuzhiyun	gd25lq128: spi-flash@0 {
420*4882a593Smuzhiyun		compatible = "jedec,spi-nor";
421*4882a593Smuzhiyun		#address-cells = <1>;
422*4882a593Smuzhiyun		#size-cells = <1>;
423*4882a593Smuzhiyun		reg = <0>;
424*4882a593Smuzhiyun		spi-max-frequency = <12000000>;
425*4882a593Smuzhiyun	};
426*4882a593Smuzhiyun};
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun&uart_AO {
429*4882a593Smuzhiyun	pinctrl-0 = <&uart_ao_a_pins>;
430*4882a593Smuzhiyun	pinctrl-names = "default";
431*4882a593Smuzhiyun	status = "okay";
432*4882a593Smuzhiyun};
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun&usb {
435*4882a593Smuzhiyun	status = "okay";
436*4882a593Smuzhiyun	dr_mode = "host";
437*4882a593Smuzhiyun};
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun&usb2_phy0 {
440*4882a593Smuzhiyun	pinctrl-0 = <&usb1_rst_pins>;
441*4882a593Smuzhiyun	pinctrl-names = "default";
442*4882a593Smuzhiyun	phy-supply = <&vcc5v>;
443*4882a593Smuzhiyun};
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun&usb2_phy1 {
446*4882a593Smuzhiyun	phy-supply = <&vcc5v>;
447*4882a593Smuzhiyun};
448