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	ext_osc32k: ext_osc32k_clk {
24		#clock-cells = <0>;
25		compatible = "fixed-clock";
26		clock-frequency = <32768>;
27		clock-output-names = "ext_osc32k";
28	};
29
30	leds {
31		compatible = "gpio-leds";
32
33		power {
34			label = "orangepi:red:power";
35			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
36			default-state = "on";
37		};
38
39		status {
40			label = "orangepi:green:status";
41			gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
42		};
43	};
44
45	reg_vcc5v: vcc5v {
46		/* board wide 5V supply directly from the DC jack */
47		compatible = "regulator-fixed";
48		regulator-name = "vcc-5v";
49		regulator-min-microvolt = <5000000>;
50		regulator-max-microvolt = <5000000>;
51		regulator-always-on;
52	};
53};
54
55&ehci0 {
56	status = "okay";
57};
58
59&ehci3 {
60	status = "okay";
61};
62
63&gpu {
64	mali-supply = <&reg_dcdcc>;
65	status = "okay";
66};
67
68&mmc0 {
69	vmmc-supply = <&reg_cldo1>;
70	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
71	bus-width = <4>;
72	status = "okay";
73};
74
75&ohci0 {
76	status = "okay";
77};
78
79&ohci3 {
80	status = "okay";
81};
82
83&r_i2c {
84	status = "okay";
85
86	axp805: pmic@36 {
87		compatible = "x-powers,axp805", "x-powers,axp806";
88		reg = <0x36>;
89		interrupt-parent = <&r_intc>;
90		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
91		interrupt-controller;
92		#interrupt-cells = <1>;
93		x-powers,self-working-mode;
94		vina-supply = <&reg_vcc5v>;
95		vinb-supply = <&reg_vcc5v>;
96		vinc-supply = <&reg_vcc5v>;
97		vind-supply = <&reg_vcc5v>;
98		vine-supply = <&reg_vcc5v>;
99		aldoin-supply = <&reg_vcc5v>;
100		bldoin-supply = <&reg_vcc5v>;
101		cldoin-supply = <&reg_vcc5v>;
102
103		regulators {
104			reg_aldo1: aldo1 {
105				regulator-always-on;
106				regulator-min-microvolt = <3300000>;
107				regulator-max-microvolt = <3300000>;
108				regulator-name = "vcc-pl";
109			};
110
111			reg_aldo2: aldo2 {
112				regulator-min-microvolt = <3300000>;
113				regulator-max-microvolt = <3300000>;
114				regulator-name = "vcc-ac200";
115			};
116
117			reg_aldo3: aldo3 {
118				regulator-always-on;
119				regulator-min-microvolt = <3300000>;
120				regulator-max-microvolt = <3300000>;
121				regulator-name = "vcc25-dram";
122			};
123
124			reg_bldo1: bldo1 {
125				regulator-always-on;
126				regulator-min-microvolt = <1800000>;
127				regulator-max-microvolt = <1800000>;
128				regulator-name = "vcc-bias-pll";
129			};
130
131			reg_bldo2: bldo2 {
132				regulator-always-on;
133				regulator-min-microvolt = <1800000>;
134				regulator-max-microvolt = <1800000>;
135				regulator-name = "vcc-efuse-pcie-hdmi-io";
136			};
137
138			reg_bldo3: bldo3 {
139				regulator-always-on;
140				regulator-min-microvolt = <1800000>;
141				regulator-max-microvolt = <1800000>;
142				regulator-name = "vcc-dcxoio";
143			};
144
145			bldo4 {
146				/* unused */
147			};
148
149			reg_cldo1: cldo1 {
150				regulator-always-on;
151				regulator-min-microvolt = <3300000>;
152				regulator-max-microvolt = <3300000>;
153				regulator-name = "vcc-3v3";
154			};
155
156			reg_cldo2: cldo2 {
157				regulator-min-microvolt = <3300000>;
158				regulator-max-microvolt = <3300000>;
159				regulator-name = "vcc-wifi-1";
160			};
161
162			reg_cldo3: cldo3 {
163				regulator-min-microvolt = <3300000>;
164				regulator-max-microvolt = <3300000>;
165				regulator-name = "vcc-wifi-2";
166			};
167
168			reg_dcdca: dcdca {
169				regulator-always-on;
170				regulator-min-microvolt = <810000>;
171				regulator-max-microvolt = <1080000>;
172				regulator-name = "vdd-cpu";
173			};
174
175			reg_dcdcc: dcdcc {
176				regulator-enable-ramp-delay = <32000>;
177				regulator-min-microvolt = <810000>;
178				regulator-max-microvolt = <1080000>;
179				regulator-name = "vdd-gpu";
180			};
181
182			reg_dcdcd: dcdcd {
183				regulator-always-on;
184				regulator-min-microvolt = <960000>;
185				regulator-max-microvolt = <960000>;
186				regulator-name = "vdd-sys";
187			};
188
189			reg_dcdce: dcdce {
190				regulator-always-on;
191				regulator-min-microvolt = <1200000>;
192				regulator-max-microvolt = <1200000>;
193				regulator-name = "vcc-dram";
194			};
195
196			sw {
197				/* unused */
198			};
199		};
200	};
201};
202
203&r_ir {
204	status = "okay";
205};
206
207&rtc {
208	clocks = <&ext_osc32k>;
209};
210
211&uart0 {
212	pinctrl-names = "default";
213	pinctrl-0 = <&uart0_ph_pins>;
214	status = "okay";
215};
216
217&usb2otg {
218	dr_mode = "otg";
219	status = "okay";
220};
221
222&usb2phy {
223	usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
224	usb0_vbus-supply = <&reg_vcc5v>;
225	usb3_vbus-supply = <&reg_vcc5v>;
226	status = "okay";
227};
228