1*8ff8d693SJernej Skrabec// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*8ff8d693SJernej Skrabec// Copyright (c) 2019 Jernej Skrabec <jernej.skrabec@siol.net>
3*8ff8d693SJernej Skrabec
4*8ff8d693SJernej Skrabec/dts-v1/;
5*8ff8d693SJernej Skrabec
6*8ff8d693SJernej Skrabec#include "sun50i-h6.dtsi"
7*8ff8d693SJernej Skrabec#include "sun50i-h6-cpu-opp.dtsi"
8*8ff8d693SJernej Skrabec
9*8ff8d693SJernej Skrabec#include <dt-bindings/gpio/gpio.h>
10*8ff8d693SJernej Skrabec
11*8ff8d693SJernej Skrabec/ {
12*8ff8d693SJernej Skrabec	aliases {
13*8ff8d693SJernej Skrabec		serial0 = &uart0;
14*8ff8d693SJernej Skrabec	};
15*8ff8d693SJernej Skrabec
16*8ff8d693SJernej Skrabec	chosen {
17*8ff8d693SJernej Skrabec		stdout-path = "serial0:115200n8";
18*8ff8d693SJernej Skrabec	};
19*8ff8d693SJernej Skrabec
20*8ff8d693SJernej Skrabec	connector {
21*8ff8d693SJernej Skrabec		compatible = "hdmi-connector";
22*8ff8d693SJernej Skrabec		ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
23*8ff8d693SJernej Skrabec		type = "a";
24*8ff8d693SJernej Skrabec
25*8ff8d693SJernej Skrabec		port {
26*8ff8d693SJernej Skrabec			hdmi_con_in: endpoint {
27*8ff8d693SJernej Skrabec				remote-endpoint = <&hdmi_out_con>;
28*8ff8d693SJernej Skrabec			};
29*8ff8d693SJernej Skrabec		};
30*8ff8d693SJernej Skrabec	};
31*8ff8d693SJernej Skrabec
32*8ff8d693SJernej Skrabec	/* used for FD650 LED display driver */
33*8ff8d693SJernej Skrabec	i2c {
34*8ff8d693SJernej Skrabec		compatible = "i2c-gpio";
35*8ff8d693SJernej Skrabec		sda-gpios = <&pio 7 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH6 */
36*8ff8d693SJernej Skrabec		scl-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH5 */
37*8ff8d693SJernej Skrabec		i2c-gpio,delay-us = <5>;
38*8ff8d693SJernej Skrabec	};
39*8ff8d693SJernej Skrabec
40*8ff8d693SJernej Skrabec	reg_vcc1v8: regulator-vcc1v8 {
41*8ff8d693SJernej Skrabec		compatible = "regulator-fixed";
42*8ff8d693SJernej Skrabec		regulator-name = "vcc1v8";
43*8ff8d693SJernej Skrabec		regulator-min-microvolt = <1800000>;
44*8ff8d693SJernej Skrabec		regulator-max-microvolt = <1800000>;
45*8ff8d693SJernej Skrabec	};
46*8ff8d693SJernej Skrabec
47*8ff8d693SJernej Skrabec	reg_vcc3v3: regulator-vcc3v3 {
48*8ff8d693SJernej Skrabec		compatible = "regulator-fixed";
49*8ff8d693SJernej Skrabec		regulator-name = "vcc3v3";
50*8ff8d693SJernej Skrabec		regulator-min-microvolt = <3300000>;
51*8ff8d693SJernej Skrabec		regulator-max-microvolt = <3300000>;
52*8ff8d693SJernej Skrabec	};
53*8ff8d693SJernej Skrabec
54*8ff8d693SJernej Skrabec	reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu {
55*8ff8d693SJernej Skrabec		compatible = "regulator-fixed";
56*8ff8d693SJernej Skrabec		regulator-name = "vdd-cpu-gpu";
57*8ff8d693SJernej Skrabec		regulator-min-microvolt = <1135000>;
58*8ff8d693SJernej Skrabec		regulator-max-microvolt = <1135000>;
59*8ff8d693SJernej Skrabec	};
60*8ff8d693SJernej Skrabec
61*8ff8d693SJernej Skrabec	sound-spdif {
62*8ff8d693SJernej Skrabec		compatible = "simple-audio-card";
63*8ff8d693SJernej Skrabec		simple-audio-card,name = "sun50i-h6-spdif";
64*8ff8d693SJernej Skrabec
65*8ff8d693SJernej Skrabec		simple-audio-card,cpu {
66*8ff8d693SJernej Skrabec			sound-dai = <&spdif>;
67*8ff8d693SJernej Skrabec		};
68*8ff8d693SJernej Skrabec
69*8ff8d693SJernej Skrabec		simple-audio-card,codec {
70*8ff8d693SJernej Skrabec			sound-dai = <&spdif_out>;
71*8ff8d693SJernej Skrabec		};
72*8ff8d693SJernej Skrabec	};
73*8ff8d693SJernej Skrabec
74*8ff8d693SJernej Skrabec	spdif_out: spdif-out {
75*8ff8d693SJernej Skrabec		#sound-dai-cells = <0>;
76*8ff8d693SJernej Skrabec		compatible = "linux,spdif-dit";
77*8ff8d693SJernej Skrabec	};
78*8ff8d693SJernej Skrabec};
79*8ff8d693SJernej Skrabec
80*8ff8d693SJernej Skrabec&cpu0 {
81*8ff8d693SJernej Skrabec	cpu-supply = <&reg_vdd_cpu_gpu>;
82*8ff8d693SJernej Skrabec};
83*8ff8d693SJernej Skrabec
84*8ff8d693SJernej Skrabec&de {
85*8ff8d693SJernej Skrabec	status = "okay";
86*8ff8d693SJernej Skrabec};
87*8ff8d693SJernej Skrabec
88*8ff8d693SJernej Skrabec&dwc3 {
89*8ff8d693SJernej Skrabec	status = "okay";
90*8ff8d693SJernej Skrabec};
91*8ff8d693SJernej Skrabec
92*8ff8d693SJernej Skrabec&ehci0 {
93*8ff8d693SJernej Skrabec	status = "okay";
94*8ff8d693SJernej Skrabec};
95*8ff8d693SJernej Skrabec
96*8ff8d693SJernej Skrabec&ehci3 {
97*8ff8d693SJernej Skrabec	status = "okay";
98*8ff8d693SJernej Skrabec};
99*8ff8d693SJernej Skrabec
100*8ff8d693SJernej Skrabec&gpu {
101*8ff8d693SJernej Skrabec	mali-supply = <&reg_vdd_cpu_gpu>;
102*8ff8d693SJernej Skrabec	status = "okay";
103*8ff8d693SJernej Skrabec};
104*8ff8d693SJernej Skrabec
105*8ff8d693SJernej Skrabec&hdmi {
106*8ff8d693SJernej Skrabec	status = "okay";
107*8ff8d693SJernej Skrabec};
108*8ff8d693SJernej Skrabec
109*8ff8d693SJernej Skrabec&hdmi_out {
110*8ff8d693SJernej Skrabec	hdmi_out_con: endpoint {
111*8ff8d693SJernej Skrabec		remote-endpoint = <&hdmi_con_in>;
112*8ff8d693SJernej Skrabec	};
113*8ff8d693SJernej Skrabec};
114*8ff8d693SJernej Skrabec
115*8ff8d693SJernej Skrabec&mmc0 {
116*8ff8d693SJernej Skrabec	pinctrl-names = "default";
117*8ff8d693SJernej Skrabec	pinctrl-0 = <&mmc0_pins>;
118*8ff8d693SJernej Skrabec	vmmc-supply = <&reg_vcc3v3>;
119*8ff8d693SJernej Skrabec	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
120*8ff8d693SJernej Skrabec	bus-width = <4>;
121*8ff8d693SJernej Skrabec	status = "okay";
122*8ff8d693SJernej Skrabec};
123*8ff8d693SJernej Skrabec
124*8ff8d693SJernej Skrabec&mmc2 {
125*8ff8d693SJernej Skrabec	vmmc-supply = <&reg_vcc3v3>;
126*8ff8d693SJernej Skrabec	vqmmc-supply = <&reg_vcc1v8>;
127*8ff8d693SJernej Skrabec	bus-width = <8>;
128*8ff8d693SJernej Skrabec	non-removable;
129*8ff8d693SJernej Skrabec	cap-mmc-hw-reset;
130*8ff8d693SJernej Skrabec	mmc-hs200-1_8v;
131*8ff8d693SJernej Skrabec	status = "okay";
132*8ff8d693SJernej Skrabec};
133*8ff8d693SJernej Skrabec
134*8ff8d693SJernej Skrabec&ohci0 {
135*8ff8d693SJernej Skrabec	status = "okay";
136*8ff8d693SJernej Skrabec};
137*8ff8d693SJernej Skrabec
138*8ff8d693SJernej Skrabec&ohci3 {
139*8ff8d693SJernej Skrabec	status = "okay";
140*8ff8d693SJernej Skrabec};
141*8ff8d693SJernej Skrabec
142*8ff8d693SJernej Skrabec&pio {
143*8ff8d693SJernej Skrabec	vcc-pc-supply = <&reg_vcc1v8>;
144*8ff8d693SJernej Skrabec	vcc-pd-supply = <&reg_vcc3v3>;
145*8ff8d693SJernej Skrabec	vcc-pg-supply = <&reg_vcc1v8>;
146*8ff8d693SJernej Skrabec};
147*8ff8d693SJernej Skrabec
148*8ff8d693SJernej Skrabec&r_ir {
149*8ff8d693SJernej Skrabec	status = "okay";
150*8ff8d693SJernej Skrabec};
151*8ff8d693SJernej Skrabec
152*8ff8d693SJernej Skrabec&spdif {
153*8ff8d693SJernej Skrabec	status = "okay";
154*8ff8d693SJernej Skrabec};
155*8ff8d693SJernej Skrabec
156*8ff8d693SJernej Skrabec&uart0 {
157*8ff8d693SJernej Skrabec	pinctrl-names = "default";
158*8ff8d693SJernej Skrabec	pinctrl-0 = <&uart0_ph_pins>;
159*8ff8d693SJernej Skrabec	status = "okay";
160*8ff8d693SJernej Skrabec};
161*8ff8d693SJernej Skrabec
162*8ff8d693SJernej Skrabec&usb2otg {
163*8ff8d693SJernej Skrabec	dr_mode = "host";
164*8ff8d693SJernej Skrabec	status = "okay";
165*8ff8d693SJernej Skrabec};
166*8ff8d693SJernej Skrabec
167*8ff8d693SJernej Skrabec&usb2phy {
168*8ff8d693SJernej Skrabec	status = "okay";
169*8ff8d693SJernej Skrabec};
170*8ff8d693SJernej Skrabec
171*8ff8d693SJernej Skrabec&usb3phy {
172*8ff8d693SJernej Skrabec	status = "okay";
173*8ff8d693SJernej Skrabec};
174