xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3566-quartz64-a.dts (revision 4664a4ddb9211a3513aa769453e3a1095fc806d0)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/pinctrl/rockchip.h>
7#include <dt-bindings/soc/rockchip,vop2.h>
8#include "rk3566.dtsi"
9
10/ {
11	model = "Pine64 Quartz64 Model A";
12	compatible = "pine64,quartz64-a", "rockchip,rk3566";
13
14	aliases {
15		ethernet0 = &gmac1;
16		mmc0 = &sdmmc0;
17		mmc1 = &sdhci;
18	};
19
20	chosen: chosen {
21		stdout-path = "serial2:1500000n8";
22	};
23
24	gmac1_clkin: external-gmac1-clock {
25		compatible = "fixed-clock";
26		clock-frequency = <125000000>;
27		clock-output-names = "gmac1_clkin";
28		#clock-cells = <0>;
29	};
30
31	fan: gpio_fan {
32		compatible = "gpio-fan";
33		fan-supply = <&vcc12v_dcin>;
34		gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
35		gpio-fan,speed-map =
36				<   0 0>,
37				<4500 1>;
38		pinctrl-names = "default";
39		pinctrl-0 = <&fan_en_h>;
40		#cooling-cells = <2>;
41	};
42
43	hdmi-con {
44		compatible = "hdmi-connector";
45		type = "a";
46
47		port {
48			hdmi_con_in: endpoint {
49				remote-endpoint = <&hdmi_out_con>;
50			};
51		};
52	};
53
54	leds {
55		compatible = "gpio-leds";
56
57		led-work {
58			label = "work-led";
59			default-state = "off";
60			gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
61			pinctrl-names = "default";
62			pinctrl-0 = <&work_led_enable_h>;
63			retain-state-suspended;
64		};
65
66		led-diy {
67			label = "diy-led";
68			default-state = "on";
69			gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
70			linux,default-trigger = "heartbeat";
71			pinctrl-names = "default";
72			pinctrl-0 = <&diy_led_enable_h>;
73			retain-state-suspended;
74		};
75	};
76
77	rk817-sound {
78		compatible = "simple-audio-card";
79		simple-audio-card,format = "i2s";
80		simple-audio-card,name = "Analog RK817";
81		simple-audio-card,mclk-fs = <256>;
82
83		simple-audio-card,cpu {
84			sound-dai = <&i2s1_8ch>;
85		};
86
87		simple-audio-card,codec {
88			sound-dai = <&rk817>;
89		};
90	};
91
92	sdio_pwrseq: sdio-pwrseq {
93		compatible = "mmc-pwrseq-simple";
94		clocks = <&rk817 1>;
95		clock-names = "ext_clock";
96		pinctrl-names = "default";
97		pinctrl-0 = <&wifi_enable_h>;
98		post-power-on-delay-ms = <100>;
99		power-off-delay-us = <5000000>;
100		reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
101	};
102
103	spdif_dit: spdif-dit {
104		compatible = "linux,spdif-dit";
105		#sound-dai-cells = <0>;
106	};
107
108	spdif_sound: spdif-sound {
109		compatible = "simple-audio-card";
110		simple-audio-card,name = "SPDIF";
111
112		simple-audio-card,cpu {
113			sound-dai = <&spdif>;
114		};
115
116		simple-audio-card,codec {
117			sound-dai = <&spdif_dit>;
118		};
119	};
120
121	vcc12v_dcin: regulator-vcc12v-dcin {
122		compatible = "regulator-fixed";
123		regulator-name = "vcc12v_dcin";
124		regulator-always-on;
125		regulator-boot-on;
126		regulator-min-microvolt = <12000000>;
127		regulator-max-microvolt = <12000000>;
128	};
129
130	/* vbus feeds the rk817 usb input.
131	 * With no battery attached, also feeds vcc_bat+
132	 * via ON/OFF_BAT jumper
133	 */
134	vbus: regulator-vbus {
135		compatible = "regulator-fixed";
136		regulator-name = "vbus";
137		regulator-always-on;
138		regulator-boot-on;
139		regulator-min-microvolt = <5000000>;
140		regulator-max-microvolt = <5000000>;
141		vin-supply = <&vcc12v_dcin>;
142	};
143
144	vcc3v3_pcie_p: regulator-vcc3v3-pcie-p {
145		compatible = "regulator-fixed";
146		enable-active-high;
147		gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
148		pinctrl-names = "default";
149		pinctrl-0 = <&pcie_enable_h>;
150		regulator-name = "vcc3v3_pcie_p";
151		regulator-min-microvolt = <3300000>;
152		regulator-max-microvolt = <3300000>;
153		vin-supply = <&vcc_3v3>;
154	};
155
156	vcc5v0_usb: regulator-vcc5v0-usb {
157		compatible = "regulator-fixed";
158		regulator-name = "vcc5v0_usb";
159		regulator-always-on;
160		regulator-boot-on;
161		regulator-min-microvolt = <5000000>;
162		regulator-max-microvolt = <5000000>;
163		vin-supply = <&vcc12v_dcin>;
164	};
165
166	/* all four ports are controlled by one gpio
167	 * the host ports are sourced from vcc5v0_usb
168	 * the otg port is sourced from vcc5v0_midu
169	 */
170	vcc5v0_usb20_host: regulator-vcc5v0-usb20-host {
171		compatible = "regulator-fixed";
172		enable-active-high;
173		gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
174		pinctrl-names = "default";
175		pinctrl-0 = <&vcc5v0_usb20_host_en>;
176		regulator-name = "vcc5v0_usb20_host";
177		regulator-min-microvolt = <5000000>;
178		regulator-max-microvolt = <5000000>;
179		vin-supply = <&vcc5v0_usb>;
180	};
181
182	vcc5v0_usb20_otg: regulator-vcc5v0-usb20-otg {
183		compatible = "regulator-fixed";
184		enable-active-high;
185		gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
186		regulator-name = "vcc5v0_usb20_otg";
187		regulator-min-microvolt = <5000000>;
188		regulator-max-microvolt = <5000000>;
189		vin-supply = <&dcdc_boost>;
190	};
191
192	vcc3v3_sd: regulator-vcc3v3-sd {
193		compatible = "regulator-fixed";
194		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
195		pinctrl-names = "default";
196		pinctrl-0 = <&vcc_sd_h>;
197		regulator-boot-on;
198		regulator-name = "vcc3v3_sd";
199		regulator-min-microvolt = <3300000>;
200		regulator-max-microvolt = <3300000>;
201		vin-supply = <&vcc_3v3>;
202	};
203
204	/* sourced from vbus and vcc_bat+ via rk817 sw5 */
205	vcc_sys: regulator-vcc-sys {
206		compatible = "regulator-fixed";
207		regulator-name = "vcc_sys";
208		regulator-always-on;
209		regulator-boot-on;
210		regulator-min-microvolt = <4400000>;
211		regulator-max-microvolt = <4400000>;
212		vin-supply = <&vbus>;
213	};
214
215	/* sourced from vcc_sys, sdio module operates internally at 3.3v */
216	vcc_wl: regulator-vcc-wl {
217		compatible = "regulator-fixed";
218		regulator-name = "vcc_wl";
219		regulator-always-on;
220		regulator-boot-on;
221		regulator-min-microvolt = <3300000>;
222		regulator-max-microvolt = <3300000>;
223		vin-supply = <&vcc_sys>;
224	};
225};
226
227&combphy1 {
228	status = "okay";
229};
230
231&combphy2 {
232	status = "okay";
233};
234
235&cpu0 {
236	cpu-supply = <&vdd_cpu>;
237};
238
239&cpu1 {
240	cpu-supply = <&vdd_cpu>;
241};
242
243&cpu2 {
244	cpu-supply = <&vdd_cpu>;
245};
246
247&cpu3 {
248	cpu-supply = <&vdd_cpu>;
249};
250
251&cpu_thermal {
252	trips {
253		cpu_hot: cpu_hot {
254			temperature = <55000>;
255			hysteresis = <2000>;
256			type = "active";
257		};
258	};
259
260	cooling-maps {
261		map1 {
262			trip = <&cpu_hot>;
263			cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
264		};
265	};
266};
267
268&gmac1 {
269	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>,
270			  <&cru SCLK_GMAC1_RGMII_SPEED>,
271			  <&cru SCLK_GMAC1>;
272	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>,
273				 <&cru SCLK_GMAC1>,
274				 <&gmac1_clkin>;
275	clock_in_out = "input";
276	phy-supply = <&vcc_3v3>;
277	phy-mode = "rgmii";
278	pinctrl-names = "default";
279	pinctrl-0 = <&gmac1m0_miim
280		     &gmac1m0_tx_bus2
281		     &gmac1m0_rx_bus2
282		     &gmac1m0_rgmii_clk
283		     &gmac1m0_clkinout
284		     &gmac1m0_rgmii_bus>;
285	snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
286	snps,reset-active-low;
287	/* Reset time is 20ms, 100ms for rtl8211f */
288	snps,reset-delays-us = <0 20000 100000>;
289	tx_delay = <0x30>;
290	rx_delay = <0x10>;
291	phy-handle = <&rgmii_phy1>;
292	status = "okay";
293};
294
295&gpu {
296	mali-supply = <&vdd_gpu>;
297	status = "okay";
298};
299
300&hdmi {
301	avdd-0v9-supply = <&vdda_0v9>;
302	avdd-1v8-supply = <&vcc_1v8>;
303	status = "okay";
304};
305
306&hdmi_in {
307	hdmi_in_vp0: endpoint {
308		remote-endpoint = <&vp0_out_hdmi>;
309	};
310};
311
312&hdmi_out {
313	hdmi_out_con: endpoint {
314		remote-endpoint = <&hdmi_con_in>;
315	};
316};
317
318&hdmi_sound {
319	status = "okay";
320};
321
322&i2c0 {
323	status = "okay";
324
325	vdd_cpu: regulator@1c {
326		compatible = "tcs,tcs4525";
327		reg = <0x1c>;
328		fcs,suspend-voltage-selector = <1>;
329		regulator-name = "vdd_cpu";
330		regulator-min-microvolt = <800000>;
331		regulator-max-microvolt = <1150000>;
332		regulator-ramp-delay = <2300>;
333		regulator-always-on;
334		regulator-boot-on;
335		vin-supply = <&vcc_sys>;
336
337		regulator-state-mem {
338			regulator-off-in-suspend;
339		};
340	};
341
342	rk817: pmic@20 {
343		compatible = "rockchip,rk817";
344		reg = <0x20>;
345		interrupt-parent = <&gpio0>;
346		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
347		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
348		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
349		clock-names = "mclk";
350		clocks = <&cru I2S1_MCLKOUT_TX>;
351		clock-output-names = "rk808-clkout1", "rk808-clkout2";
352		#clock-cells = <1>;
353		pinctrl-names = "default";
354		pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
355		system-power-controller;
356		#sound-dai-cells = <0>;
357		wakeup-source;
358
359		vcc1-supply = <&vcc_sys>;
360		vcc2-supply = <&vcc_sys>;
361		vcc3-supply = <&vcc_sys>;
362		vcc4-supply = <&vcc_sys>;
363		vcc5-supply = <&vcc_sys>;
364		vcc6-supply = <&vcc_sys>;
365		vcc7-supply = <&vcc_sys>;
366		vcc8-supply = <&vcc_sys>;
367		vcc9-supply = <&dcdc_boost>;
368
369		regulators {
370			vdd_logic: DCDC_REG1 {
371				regulator-always-on;
372				regulator-boot-on;
373				regulator-min-microvolt = <500000>;
374				regulator-max-microvolt = <1350000>;
375				regulator-ramp-delay = <6001>;
376				regulator-initial-mode = <0x2>;
377				regulator-name = "vdd_logic";
378				regulator-state-mem {
379					regulator-on-in-suspend;
380					regulator-suspend-microvolt = <900000>;
381				};
382			};
383
384			vdd_gpu: DCDC_REG2 {
385				regulator-always-on;
386				regulator-boot-on;
387				regulator-min-microvolt = <500000>;
388				regulator-max-microvolt = <1350000>;
389				regulator-ramp-delay = <6001>;
390				regulator-initial-mode = <0x2>;
391				regulator-name = "vdd_gpu";
392					regulator-state-mem {
393					regulator-off-in-suspend;
394				};
395			};
396
397			vcc_ddr: DCDC_REG3 {
398				regulator-always-on;
399				regulator-boot-on;
400				regulator-initial-mode = <0x2>;
401				regulator-name = "vcc_ddr";
402				regulator-state-mem {
403					regulator-on-in-suspend;
404				};
405			};
406
407			vcc_3v3: DCDC_REG4 {
408				regulator-always-on;
409				regulator-boot-on;
410				regulator-min-microvolt = <3300000>;
411				regulator-max-microvolt = <3300000>;
412				regulator-initial-mode = <0x2>;
413				regulator-name = "vcc_3v3";
414				regulator-state-mem {
415					regulator-off-in-suspend;
416				};
417			};
418
419			vcca1v8_pmu: LDO_REG1 {
420				regulator-always-on;
421				regulator-boot-on;
422				regulator-min-microvolt = <1800000>;
423				regulator-max-microvolt = <1800000>;
424				regulator-name = "vcca1v8_pmu";
425				regulator-state-mem {
426					regulator-on-in-suspend;
427					regulator-suspend-microvolt = <1800000>;
428				};
429			};
430
431			vdda_0v9: LDO_REG2 {
432				regulator-always-on;
433				regulator-boot-on;
434				regulator-min-microvolt = <900000>;
435				regulator-max-microvolt = <900000>;
436				regulator-name = "vdda_0v9";
437				regulator-state-mem {
438					regulator-off-in-suspend;
439				};
440			};
441
442			vdda0v9_pmu: LDO_REG3 {
443				regulator-always-on;
444				regulator-boot-on;
445				regulator-min-microvolt = <900000>;
446				regulator-max-microvolt = <900000>;
447				regulator-name = "vdda0v9_pmu";
448				regulator-state-mem {
449					regulator-on-in-suspend;
450					regulator-suspend-microvolt = <900000>;
451				};
452			};
453
454			vccio_acodec: LDO_REG4 {
455				regulator-always-on;
456				regulator-boot-on;
457				regulator-min-microvolt = <3300000>;
458				regulator-max-microvolt = <3300000>;
459				regulator-name = "vccio_acodec";
460				regulator-state-mem {
461					regulator-off-in-suspend;
462				};
463			};
464
465			vccio_sd: LDO_REG5 {
466				regulator-always-on;
467				regulator-boot-on;
468				regulator-min-microvolt = <1800000>;
469				regulator-max-microvolt = <3300000>;
470				regulator-name = "vccio_sd";
471				regulator-state-mem {
472					regulator-off-in-suspend;
473				};
474			};
475
476			vcc3v3_pmu: LDO_REG6 {
477				regulator-always-on;
478				regulator-boot-on;
479				regulator-min-microvolt = <3300000>;
480				regulator-max-microvolt = <3300000>;
481				regulator-name = "vcc3v3_pmu";
482				regulator-state-mem {
483					regulator-on-in-suspend;
484					regulator-suspend-microvolt = <3300000>;
485				};
486			};
487
488			vcc_1v8: LDO_REG7 {
489				regulator-always-on;
490				regulator-boot-on;
491				regulator-min-microvolt = <1800000>;
492				regulator-max-microvolt = <1800000>;
493				regulator-name = "vcc_1v8";
494				regulator-state-mem {
495					regulator-off-in-suspend;
496				};
497			};
498
499			vcc1v8_dvp: LDO_REG8 {
500				regulator-always-on;
501				regulator-boot-on;
502				regulator-min-microvolt = <1800000>;
503				regulator-max-microvolt = <1800000>;
504				regulator-name = "vcc1v8_dvp";
505				regulator-state-mem {
506					regulator-off-in-suspend;
507				};
508			};
509
510			vcc2v8_dvp: LDO_REG9 {
511				regulator-always-on;
512				regulator-boot-on;
513				regulator-min-microvolt = <2800000>;
514				regulator-max-microvolt = <2800000>;
515				regulator-name = "vcc2v8_dvp";
516				regulator-state-mem {
517					regulator-off-in-suspend;
518				};
519			};
520
521			dcdc_boost: BOOST {
522				regulator-always-on;
523				regulator-boot-on;
524				regulator-min-microvolt = <5000000>;
525				regulator-max-microvolt = <5000000>;
526				regulator-name = "boost";
527				regulator-state-mem {
528					regulator-off-in-suspend;
529				};
530			};
531
532			otg_switch: OTG_SWITCH {
533				regulator-name = "otg_switch";
534				regulator-state-mem {
535					regulator-off-in-suspend;
536				};
537			};
538		};
539	};
540};
541
542/* i2c3 is exposed on con40
543 * pin 3 - i2c3_sda_m0, pullup to vcc_3v3
544 * pin 5 - i2c3_scl_m0, pullup to vcc_3v3
545 */
546&i2c3 {
547	status = "okay";
548};
549
550&i2s0_8ch {
551	status = "okay";
552};
553
554&i2s1_8ch {
555	pinctrl-names = "default";
556	pinctrl-0 = <&i2s1m0_sclktx
557		     &i2s1m0_lrcktx
558		     &i2s1m0_sdi0
559		     &i2s1m0_sdo0>;
560	rockchip,trcm-sync-tx-only;
561	status = "okay";
562};
563
564&mdio1 {
565	rgmii_phy1: ethernet-phy@0 {
566		compatible = "ethernet-phy-ieee802.3-c22";
567		reg = <0>;
568	};
569};
570
571&pcie2x1 {
572	pinctrl-names = "default";
573	pinctrl-0 = <&pcie_reset_h>;
574	reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
575	vpcie3v3-supply = <&vcc3v3_pcie_p>;
576	status = "okay";
577};
578
579&pinctrl {
580	bt {
581		bt_enable_h: bt-enable-h {
582			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
583		};
584
585		bt_host_wake_l: bt-host-wake-l {
586			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
587		};
588
589		bt_wake_l: bt-wake-l {
590			rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
591		};
592	};
593
594	fan {
595		fan_en_h: fan-en-h {
596			rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
597		};
598	};
599
600	leds {
601		work_led_enable_h: work-led-enable-h {
602			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
603		};
604
605		diy_led_enable_h: diy-led-enable-h {
606			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
607		};
608	};
609
610	pcie {
611		pcie_enable_h: pcie-enable-h {
612			rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
613		};
614
615		pcie_reset_h: pcie-reset-h {
616			rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
617		};
618	};
619
620	pmic {
621		pmic_int_l: pmic-int-l {
622			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
623		};
624	};
625
626	usb2 {
627		vcc5v0_usb20_host_en: vcc5v0-usb20-host-en {
628			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
629		};
630	};
631
632	sdio-pwrseq {
633		wifi_enable_h: wifi-enable-h {
634			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
635		};
636	};
637
638	vcc_sd {
639		vcc_sd_h: vcc-sd-h {
640			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
641		};
642	};
643};
644
645&pmu_io_domains {
646	pmuio1-supply = <&vcc3v3_pmu>;
647	pmuio2-supply = <&vcc3v3_pmu>;
648	vccio1-supply = <&vccio_acodec>;
649	vccio2-supply = <&vcc_1v8>;
650	vccio3-supply = <&vccio_sd>;
651	vccio4-supply = <&vcc_1v8>;
652	vccio5-supply = <&vcc_3v3>;
653	vccio6-supply = <&vcc1v8_dvp>;
654	vccio7-supply = <&vcc_3v3>;
655	status = "okay";
656};
657
658&sdhci {
659	bus-width = <8>;
660	mmc-hs200-1_8v;
661	non-removable;
662	vmmc-supply = <&vcc_3v3>;
663	vqmmc-supply = <&vcc_1v8>;
664	status = "okay";
665};
666
667&sdmmc0 {
668	bus-width = <4>;
669	cap-sd-highspeed;
670	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
671	disable-wp;
672	pinctrl-names = "default";
673	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
674	sd-uhs-sdr104;
675	vmmc-supply = <&vcc3v3_sd>;
676	vqmmc-supply = <&vccio_sd>;
677	status = "okay";
678};
679
680&sdmmc1 {
681	bus-width = <4>;
682	cap-sd-highspeed;
683	cap-sdio-irq;
684	keep-power-in-suspend;
685	mmc-pwrseq = <&sdio_pwrseq>;
686	non-removable;
687	pinctrl-names = "default";
688	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
689	sd-uhs-sdr104;
690	vmmc-supply = <&vcc_wl>;
691	vqmmc-supply = <&vcc_1v8>;
692	status = "okay";
693};
694
695&sfc {
696	pinctrl-0 = <&fspi_pins>;
697	pinctrl-names = "default";
698	#address-cells = <1>;
699	#size-cells = <0>;
700	status = "disabled";
701
702	flash@0 {
703		compatible = "jedec,spi-nor";
704		reg = <0>;
705		spi-max-frequency = <24000000>;
706		spi-rx-bus-width = <4>;
707		spi-tx-bus-width = <1>;
708	};
709};
710
711/* spdif is exposed on con40 pin 18 */
712&spdif {
713	status = "okay";
714};
715
716/* spi1 is exposed on con40
717 * pin 11 - spi1_mosi_m1
718 * pin 13 - spi1_miso_m1
719 * pin 15 - spi1_clk_m1
720 * pin 17 - spi1_cs0_m1
721 */
722&spi1 {
723	pinctrl-names = "default";
724	pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>;
725};
726
727&tsadc {
728	/* tshut mode 0:CRU 1:GPIO */
729	rockchip,hw-tshut-mode = <1>;
730	/* tshut polarity 0:LOW 1:HIGH */
731	rockchip,hw-tshut-polarity = <0>;
732	status = "okay";
733};
734
735/* uart0 is exposed on con40
736 * pin 12 - uart0_tx
737 * pin 14 - uart0_rx
738 */
739&uart0 {
740	pinctrl-names = "default";
741	pinctrl-0 = <&uart0_xfer>;
742	status = "okay";
743};
744
745&uart1 {
746	dma-names = "tx", "rx";
747	pinctrl-names = "default";
748	pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
749	status = "okay";
750	uart-has-rtscts;
751
752	bluetooth {
753		compatible = "brcm,bcm43438-bt";
754		clocks = <&rk817 1>;
755		clock-names = "lpo";
756		host-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
757		device-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
758		shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
759		pinctrl-names = "default";
760		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
761		vbat-supply = <&vcc_sys>;
762		vddio-supply = <&vcca1v8_pmu>;
763		max-speed = <3000000>;
764	};
765};
766
767/* uart2 is exposed on con40
768 * pin 8 - uart2_tx_m0_debug
769 * pin 10 - uart2_rx_m0_debug
770 */
771&uart2 {
772	status = "okay";
773};
774
775&usb_host0_ehci {
776	status = "okay";
777};
778
779&usb_host0_ohci {
780	status = "okay";
781};
782
783&usb_host1_ehci {
784	status = "okay";
785};
786
787&usb_host1_ohci {
788	status = "okay";
789};
790
791&usb_host0_xhci {
792	dr_mode = "host";
793	status = "okay";
794};
795
796/* usb3 controller is muxed with sata1 */
797&usb_host1_xhci {
798	status = "okay";
799};
800
801&usb2phy0 {
802	status = "okay";
803};
804
805&usb2phy0_host {
806	phy-supply = <&vcc5v0_usb20_host>;
807	status = "okay";
808};
809
810&usb2phy0_otg {
811	phy-supply = <&vcc5v0_usb20_otg>;
812	status = "okay";
813};
814
815&usb2phy1 {
816	status = "okay";
817};
818
819&usb2phy1_host {
820	phy-supply = <&vcc5v0_usb20_host>;
821	status = "okay";
822};
823
824&usb2phy1_otg {
825	phy-supply = <&vcc5v0_usb20_host>;
826	status = "okay";
827};
828
829&vop {
830	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
831	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
832	status = "okay";
833};
834
835&vop_mmu {
836	status = "okay";
837};
838
839&vp0 {
840	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
841		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
842		remote-endpoint = <&hdmi_in_vp0>;
843	};
844};
845