1012af553SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2cabbaed7SClément Péron// Copyright (C) 2018 Amarula Solutions
3cabbaed7SClément Péron// Author: Jagan Teki <jagan@amarulasolutions.com>
4f0c083b8SJagan Teki
5f0c083b8SJagan Teki/dts-v1/;
6f0c083b8SJagan Teki
7f0c083b8SJagan Teki#include "sun50i-h6.dtsi"
8f0c083b8SJagan Teki
9f0c083b8SJagan Teki#include <dt-bindings/gpio/gpio.h>
10f0c083b8SJagan Teki
11f0c083b8SJagan Teki/ {
12f0c083b8SJagan Teki	model = "OrangePi One Plus";
13f0c083b8SJagan Teki	compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6";
14f0c083b8SJagan Teki
15f0c083b8SJagan Teki	aliases {
16f0c083b8SJagan Teki		serial0 = &uart0;
17f0c083b8SJagan Teki	};
18f0c083b8SJagan Teki
19f0c083b8SJagan Teki	chosen {
20f0c083b8SJagan Teki		stdout-path = "serial0:115200n8";
21f0c083b8SJagan Teki	};
22919d2514SChen-Yu Tsai
2332507b86SJernej Skrabec	ext_osc32k: ext_osc32k_clk {
2432507b86SJernej Skrabec		#clock-cells = <0>;
2532507b86SJernej Skrabec		compatible = "fixed-clock";
2632507b86SJernej Skrabec		clock-frequency = <32768>;
2732507b86SJernej Skrabec		clock-output-names = "ext_osc32k";
2832507b86SJernej Skrabec	};
2932507b86SJernej Skrabec
301e33e0dbSChen-Yu Tsai	leds {
311e33e0dbSChen-Yu Tsai		compatible = "gpio-leds";
321e33e0dbSChen-Yu Tsai
331e33e0dbSChen-Yu Tsai		power {
341e33e0dbSChen-Yu Tsai			label = "orangepi:red:power";
351e33e0dbSChen-Yu Tsai			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
361e33e0dbSChen-Yu Tsai			default-state = "on";
371e33e0dbSChen-Yu Tsai		};
381e33e0dbSChen-Yu Tsai
391e33e0dbSChen-Yu Tsai		status {
401e33e0dbSChen-Yu Tsai			label = "orangepi:green:status";
411e33e0dbSChen-Yu Tsai			gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
421e33e0dbSChen-Yu Tsai		};
431e33e0dbSChen-Yu Tsai	};
441e33e0dbSChen-Yu Tsai
45919d2514SChen-Yu Tsai	reg_vcc5v: vcc5v {
46919d2514SChen-Yu Tsai		/* board wide 5V supply directly from the DC jack */
47919d2514SChen-Yu Tsai		compatible = "regulator-fixed";
48919d2514SChen-Yu Tsai		regulator-name = "vcc-5v";
49919d2514SChen-Yu Tsai		regulator-min-microvolt = <5000000>;
50919d2514SChen-Yu Tsai		regulator-max-microvolt = <5000000>;
51919d2514SChen-Yu Tsai		regulator-always-on;
52919d2514SChen-Yu Tsai	};
53f0c083b8SJagan Teki};
54f0c083b8SJagan Teki
559b8d1ccdSChen-Yu Tsai&ehci0 {
569b8d1ccdSChen-Yu Tsai	status = "okay";
579b8d1ccdSChen-Yu Tsai};
589b8d1ccdSChen-Yu Tsai
599b8d1ccdSChen-Yu Tsai&ehci3 {
609b8d1ccdSChen-Yu Tsai	status = "okay";
619b8d1ccdSChen-Yu Tsai};
629b8d1ccdSChen-Yu Tsai
638abc4c4aSClément Péron&gpu {
648abc4c4aSClément Péron	mali-supply = <&reg_dcdcc>;
658abc4c4aSClément Péron	status = "okay";
668abc4c4aSClément Péron};
678abc4c4aSClément Péron
68f0c083b8SJagan Teki&mmc0 {
69f0c083b8SJagan Teki	vmmc-supply = <&reg_cldo1>;
70f0c083b8SJagan Teki	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
71f0c083b8SJagan Teki	bus-width = <4>;
72f0c083b8SJagan Teki	status = "okay";
73f0c083b8SJagan Teki};
74f0c083b8SJagan Teki
759b8d1ccdSChen-Yu Tsai&ohci0 {
769b8d1ccdSChen-Yu Tsai	status = "okay";
779b8d1ccdSChen-Yu Tsai};
789b8d1ccdSChen-Yu Tsai
799b8d1ccdSChen-Yu Tsai&ohci3 {
809b8d1ccdSChen-Yu Tsai	status = "okay";
819b8d1ccdSChen-Yu Tsai};
829b8d1ccdSChen-Yu Tsai
83f0c083b8SJagan Teki&r_i2c {
84f0c083b8SJagan Teki	status = "okay";
85f0c083b8SJagan Teki
86f0c083b8SJagan Teki	axp805: pmic@36 {
87f0c083b8SJagan Teki		compatible = "x-powers,axp805", "x-powers,axp806";
88f0c083b8SJagan Teki		reg = <0x36>;
89f0c083b8SJagan Teki		interrupt-parent = <&r_intc>;
90f0c083b8SJagan Teki		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
91f0c083b8SJagan Teki		interrupt-controller;
92f0c083b8SJagan Teki		#interrupt-cells = <1>;
93f0c083b8SJagan Teki		x-powers,self-working-mode;
94919d2514SChen-Yu Tsai		vina-supply = <&reg_vcc5v>;
95919d2514SChen-Yu Tsai		vinb-supply = <&reg_vcc5v>;
96919d2514SChen-Yu Tsai		vinc-supply = <&reg_vcc5v>;
97919d2514SChen-Yu Tsai		vind-supply = <&reg_vcc5v>;
98919d2514SChen-Yu Tsai		vine-supply = <&reg_vcc5v>;
99919d2514SChen-Yu Tsai		aldoin-supply = <&reg_vcc5v>;
100919d2514SChen-Yu Tsai		bldoin-supply = <&reg_vcc5v>;
101919d2514SChen-Yu Tsai		cldoin-supply = <&reg_vcc5v>;
102f0c083b8SJagan Teki
103f0c083b8SJagan Teki		regulators {
104f0c083b8SJagan Teki			reg_aldo1: aldo1 {
105f0c083b8SJagan Teki				regulator-always-on;
106f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
107f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
108f0c083b8SJagan Teki				regulator-name = "vcc-pl";
109f0c083b8SJagan Teki			};
110f0c083b8SJagan Teki
111f0c083b8SJagan Teki			reg_aldo2: aldo2 {
112f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
113f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
114f0c083b8SJagan Teki				regulator-name = "vcc-ac200";
115f0c083b8SJagan Teki			};
116f0c083b8SJagan Teki
117f0c083b8SJagan Teki			reg_aldo3: aldo3 {
118f0c083b8SJagan Teki				regulator-always-on;
119f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
120f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
121f0c083b8SJagan Teki				regulator-name = "vcc25-dram";
122f0c083b8SJagan Teki			};
123f0c083b8SJagan Teki
124f0c083b8SJagan Teki			reg_bldo1: bldo1 {
125f0c083b8SJagan Teki				regulator-always-on;
126f0c083b8SJagan Teki				regulator-min-microvolt = <1800000>;
127f0c083b8SJagan Teki				regulator-max-microvolt = <1800000>;
128f0c083b8SJagan Teki				regulator-name = "vcc-bias-pll";
129f0c083b8SJagan Teki			};
130f0c083b8SJagan Teki
131f0c083b8SJagan Teki			reg_bldo2: bldo2 {
132f0c083b8SJagan Teki				regulator-always-on;
133f0c083b8SJagan Teki				regulator-min-microvolt = <1800000>;
134f0c083b8SJagan Teki				regulator-max-microvolt = <1800000>;
135f0c083b8SJagan Teki				regulator-name = "vcc-efuse-pcie-hdmi-io";
136f0c083b8SJagan Teki			};
137f0c083b8SJagan Teki
138f0c083b8SJagan Teki			reg_bldo3: bldo3 {
139f0c083b8SJagan Teki				regulator-always-on;
140f0c083b8SJagan Teki				regulator-min-microvolt = <1800000>;
141f0c083b8SJagan Teki				regulator-max-microvolt = <1800000>;
142f0c083b8SJagan Teki				regulator-name = "vcc-dcxoio";
143f0c083b8SJagan Teki			};
144f0c083b8SJagan Teki
145f0c083b8SJagan Teki			bldo4 {
146f0c083b8SJagan Teki				/* unused */
147f0c083b8SJagan Teki			};
148f0c083b8SJagan Teki
149f0c083b8SJagan Teki			reg_cldo1: cldo1 {
150f0c083b8SJagan Teki				regulator-always-on;
151f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
152f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
153f0c083b8SJagan Teki				regulator-name = "vcc-3v3";
154f0c083b8SJagan Teki			};
155f0c083b8SJagan Teki
156f0c083b8SJagan Teki			reg_cldo2: cldo2 {
157f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
158f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
159f0c083b8SJagan Teki				regulator-name = "vcc-wifi-1";
160f0c083b8SJagan Teki			};
161f0c083b8SJagan Teki
162f0c083b8SJagan Teki			reg_cldo3: cldo3 {
163f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
164f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
165f0c083b8SJagan Teki				regulator-name = "vcc-wifi-2";
166f0c083b8SJagan Teki			};
167f0c083b8SJagan Teki
168f0c083b8SJagan Teki			reg_dcdca: dcdca {
169f0c083b8SJagan Teki				regulator-always-on;
170f0c083b8SJagan Teki				regulator-min-microvolt = <810000>;
171f0c083b8SJagan Teki				regulator-max-microvolt = <1080000>;
172f0c083b8SJagan Teki				regulator-name = "vdd-cpu";
173f0c083b8SJagan Teki			};
174f0c083b8SJagan Teki
175f0c083b8SJagan Teki			reg_dcdcc: dcdcc {
1768abc4c4aSClément Péron				regulator-enable-ramp-delay = <32000>;
177f0c083b8SJagan Teki				regulator-min-microvolt = <810000>;
178f0c083b8SJagan Teki				regulator-max-microvolt = <1080000>;
179f0c083b8SJagan Teki				regulator-name = "vdd-gpu";
180f0c083b8SJagan Teki			};
181f0c083b8SJagan Teki
182f0c083b8SJagan Teki			reg_dcdcd: dcdcd {
183f0c083b8SJagan Teki				regulator-always-on;
184f0c083b8SJagan Teki				regulator-min-microvolt = <960000>;
185f0c083b8SJagan Teki				regulator-max-microvolt = <960000>;
186f0c083b8SJagan Teki				regulator-name = "vdd-sys";
187f0c083b8SJagan Teki			};
188f0c083b8SJagan Teki
189f0c083b8SJagan Teki			reg_dcdce: dcdce {
190f0c083b8SJagan Teki				regulator-always-on;
191f0c083b8SJagan Teki				regulator-min-microvolt = <1200000>;
192f0c083b8SJagan Teki				regulator-max-microvolt = <1200000>;
193f0c083b8SJagan Teki				regulator-name = "vcc-dram";
194f0c083b8SJagan Teki			};
195f0c083b8SJagan Teki
196f0c083b8SJagan Teki			sw {
197f0c083b8SJagan Teki				/* unused */
198f0c083b8SJagan Teki			};
199f0c083b8SJagan Teki		};
200f0c083b8SJagan Teki	};
201f0c083b8SJagan Teki};
202f0c083b8SJagan Teki
20386be7408SClément Péron&r_ir {
20486be7408SClément Péron	status = "okay";
20586be7408SClément Péron};
20686be7408SClément Péron
20732507b86SJernej Skrabec&rtc {
20832507b86SJernej Skrabec	clocks = <&ext_osc32k>;
20932507b86SJernej Skrabec};
21032507b86SJernej Skrabec
211f0c083b8SJagan Teki&uart0 {
212f0c083b8SJagan Teki	pinctrl-names = "default";
213f0c083b8SJagan Teki	pinctrl-0 = <&uart0_ph_pins>;
214f0c083b8SJagan Teki	status = "okay";
215f0c083b8SJagan Teki};
2169b8d1ccdSChen-Yu Tsai
2179b8d1ccdSChen-Yu Tsai&usb2otg {
2189b8d1ccdSChen-Yu Tsai	dr_mode = "otg";
2199b8d1ccdSChen-Yu Tsai	status = "okay";
2209b8d1ccdSChen-Yu Tsai};
2219b8d1ccdSChen-Yu Tsai
2229b8d1ccdSChen-Yu Tsai&usb2phy {
2239b8d1ccdSChen-Yu Tsai	usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
2249b8d1ccdSChen-Yu Tsai	usb0_vbus-supply = <&reg_vcc5v>;
2259b8d1ccdSChen-Yu Tsai	usb3_vbus-supply = <&reg_vcc5v>;
2269b8d1ccdSChen-Yu Tsai	status = "okay";
2279b8d1ccdSChen-Yu Tsai};
228