xref: /linux/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi (revision 90d32e92011eaae8e70a9169b4e7acf4ca8f9d3a)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2018 Amarula Solutions
3// Author: Jagan Teki <jagan@amarulasolutions.com>
4
5/dts-v1/;
6
7#include "sun50i-h6.dtsi"
8
9#include <dt-bindings/gpio/gpio.h>
10
11/ {
12	model = "OrangePi One Plus";
13	compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6";
14
15	aliases {
16		serial0 = &uart0;
17	};
18
19	chosen {
20		stdout-path = "serial0:115200n8";
21	};
22
23	connector {
24		compatible = "hdmi-connector";
25		type = "a";
26		ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
27
28		port {
29			hdmi_con_in: endpoint {
30				remote-endpoint = <&hdmi_out_con>;
31			};
32		};
33	};
34
35	ext_osc32k: ext-osc32k-clk {
36		#clock-cells = <0>;
37		compatible = "fixed-clock";
38		clock-frequency = <32768>;
39		clock-output-names = "ext_osc32k";
40	};
41
42	leds {
43		compatible = "gpio-leds";
44
45		led-0 {
46			label = "orangepi:red:power";
47			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
48			default-state = "on";
49		};
50
51		led-1 {
52			label = "orangepi:green:status";
53			gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
54		};
55	};
56
57	reg_vcc5v: vcc5v {
58		/* board wide 5V supply directly from the DC jack */
59		compatible = "regulator-fixed";
60		regulator-name = "vcc-5v";
61		regulator-min-microvolt = <5000000>;
62		regulator-max-microvolt = <5000000>;
63		regulator-always-on;
64	};
65};
66
67&de {
68	status = "okay";
69};
70
71&ehci0 {
72	status = "okay";
73};
74
75&ehci3 {
76	status = "okay";
77};
78
79&gpu {
80	mali-supply = <&reg_dcdcc>;
81	status = "okay";
82};
83
84&hdmi {
85	status = "okay";
86};
87
88&hdmi_out {
89	hdmi_out_con: endpoint {
90		remote-endpoint = <&hdmi_con_in>;
91	};
92};
93
94&mmc0 {
95	vmmc-supply = <&reg_cldo1>;
96	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
97	bus-width = <4>;
98	status = "okay";
99};
100
101&ohci0 {
102	status = "okay";
103};
104
105&ohci3 {
106	status = "okay";
107};
108
109&pio {
110	vcc-pc-supply = <&reg_bldo2>;
111	vcc-pd-supply = <&reg_cldo1>;
112	vcc-pg-supply = <&reg_aldo1>;
113};
114
115&r_ir {
116	status = "okay";
117};
118
119&r_pio {
120	vcc-pm-supply = <&reg_bldo3>;
121};
122
123&r_rsb {
124	status = "okay";
125
126	axp805: pmic@745 {
127		compatible = "x-powers,axp805", "x-powers,axp806";
128		reg = <0x745>;
129		interrupt-parent = <&r_intc>;
130		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
131		interrupt-controller;
132		#interrupt-cells = <1>;
133		x-powers,self-working-mode;
134		vina-supply = <&reg_vcc5v>;
135		vinb-supply = <&reg_vcc5v>;
136		vinc-supply = <&reg_vcc5v>;
137		vind-supply = <&reg_vcc5v>;
138		vine-supply = <&reg_vcc5v>;
139		aldoin-supply = <&reg_vcc5v>;
140		bldoin-supply = <&reg_vcc5v>;
141		cldoin-supply = <&reg_vcc5v>;
142
143		regulators {
144			reg_aldo1: aldo1 {
145				regulator-always-on;
146				regulator-min-microvolt = <3300000>;
147				regulator-max-microvolt = <3300000>;
148				regulator-name = "vcc-pl";
149			};
150
151			reg_aldo2: aldo2 {
152				regulator-min-microvolt = <3300000>;
153				regulator-max-microvolt = <3300000>;
154				regulator-name = "vcc-ac200";
155			};
156
157			reg_aldo3: aldo3 {
158				regulator-always-on;
159				regulator-min-microvolt = <3300000>;
160				regulator-max-microvolt = <3300000>;
161				regulator-name = "vcc25-dram";
162			};
163
164			reg_bldo1: bldo1 {
165				regulator-always-on;
166				regulator-min-microvolt = <1800000>;
167				regulator-max-microvolt = <1800000>;
168				regulator-name = "vcc-bias-pll";
169			};
170
171			reg_bldo2: bldo2 {
172				regulator-always-on;
173				regulator-min-microvolt = <1800000>;
174				regulator-max-microvolt = <1800000>;
175				regulator-name = "vcc-efuse-pcie-hdmi-io";
176			};
177
178			reg_bldo3: bldo3 {
179				regulator-always-on;
180				regulator-min-microvolt = <1800000>;
181				regulator-max-microvolt = <1800000>;
182				regulator-name = "vcc-dcxoio";
183			};
184
185			bldo4 {
186				/* unused */
187			};
188
189			reg_cldo1: cldo1 {
190				regulator-always-on;
191				regulator-min-microvolt = <3300000>;
192				regulator-max-microvolt = <3300000>;
193				regulator-name = "vcc-3v3";
194			};
195
196			reg_cldo2: cldo2 {
197				regulator-min-microvolt = <3300000>;
198				regulator-max-microvolt = <3300000>;
199				regulator-name = "vcc-wifi-1";
200			};
201
202			reg_cldo3: cldo3 {
203				regulator-min-microvolt = <3300000>;
204				regulator-max-microvolt = <3300000>;
205				regulator-name = "vcc-wifi-2";
206			};
207
208			reg_dcdca: dcdca {
209				regulator-always-on;
210				regulator-min-microvolt = <810000>;
211				regulator-max-microvolt = <1080000>;
212				regulator-name = "vdd-cpu";
213			};
214
215			reg_dcdcc: dcdcc {
216				regulator-enable-ramp-delay = <32000>;
217				regulator-min-microvolt = <810000>;
218				regulator-max-microvolt = <1080000>;
219				regulator-name = "vdd-gpu";
220			};
221
222			reg_dcdcd: dcdcd {
223				regulator-always-on;
224				regulator-min-microvolt = <960000>;
225				regulator-max-microvolt = <960000>;
226				regulator-name = "vdd-sys";
227			};
228
229			reg_dcdce: dcdce {
230				regulator-always-on;
231				regulator-min-microvolt = <1200000>;
232				regulator-max-microvolt = <1200000>;
233				regulator-name = "vcc-dram";
234			};
235
236			sw {
237				/* unused */
238			};
239		};
240	};
241};
242
243&rtc {
244	clocks = <&ext_osc32k>;
245};
246
247&uart0 {
248	pinctrl-names = "default";
249	pinctrl-0 = <&uart0_ph_pins>;
250	status = "okay";
251};
252
253&usb2otg {
254	/*
255	 * OrangePi Lite 2 and One Plus, where this DT is used, don't
256	 * have a controllable VBUS even though they do have an ID pin.
257	 * Using it as anything but a USB host is unsafe.
258	 */
259	dr_mode = "host";
260	status = "okay";
261};
262
263&usb2phy {
264	usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
265	usb0_vbus-supply = <&reg_vcc5v>;
266	usb3_vbus-supply = <&reg_vcc5v>;
267	status = "okay";
268};
269