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
232345b744SMarcus Cooper	connector {
242345b744SMarcus Cooper		compatible = "hdmi-connector";
252345b744SMarcus Cooper		type = "a";
262345b744SMarcus Cooper		ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
272345b744SMarcus Cooper
282345b744SMarcus Cooper		port {
292345b744SMarcus Cooper			hdmi_con_in: endpoint {
302345b744SMarcus Cooper				remote-endpoint = <&hdmi_out_con>;
312345b744SMarcus Cooper			};
322345b744SMarcus Cooper		};
332345b744SMarcus Cooper	};
342345b744SMarcus Cooper
3532507b86SJernej Skrabec	ext_osc32k: ext_osc32k_clk {
3632507b86SJernej Skrabec		#clock-cells = <0>;
3732507b86SJernej Skrabec		compatible = "fixed-clock";
3832507b86SJernej Skrabec		clock-frequency = <32768>;
3932507b86SJernej Skrabec		clock-output-names = "ext_osc32k";
4032507b86SJernej Skrabec	};
4132507b86SJernej Skrabec
421e33e0dbSChen-Yu Tsai	leds {
431e33e0dbSChen-Yu Tsai		compatible = "gpio-leds";
441e33e0dbSChen-Yu Tsai
451e33e0dbSChen-Yu Tsai		power {
461e33e0dbSChen-Yu Tsai			label = "orangepi:red:power";
471e33e0dbSChen-Yu Tsai			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
481e33e0dbSChen-Yu Tsai			default-state = "on";
491e33e0dbSChen-Yu Tsai		};
501e33e0dbSChen-Yu Tsai
511e33e0dbSChen-Yu Tsai		status {
521e33e0dbSChen-Yu Tsai			label = "orangepi:green:status";
531e33e0dbSChen-Yu Tsai			gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
541e33e0dbSChen-Yu Tsai		};
551e33e0dbSChen-Yu Tsai	};
561e33e0dbSChen-Yu Tsai
57919d2514SChen-Yu Tsai	reg_vcc5v: vcc5v {
58919d2514SChen-Yu Tsai		/* board wide 5V supply directly from the DC jack */
59919d2514SChen-Yu Tsai		compatible = "regulator-fixed";
60919d2514SChen-Yu Tsai		regulator-name = "vcc-5v";
61919d2514SChen-Yu Tsai		regulator-min-microvolt = <5000000>;
62919d2514SChen-Yu Tsai		regulator-max-microvolt = <5000000>;
63919d2514SChen-Yu Tsai		regulator-always-on;
64919d2514SChen-Yu Tsai	};
65f0c083b8SJagan Teki};
66f0c083b8SJagan Teki
672345b744SMarcus Cooper&de {
682345b744SMarcus Cooper	status = "okay";
692345b744SMarcus Cooper};
702345b744SMarcus Cooper
719b8d1ccdSChen-Yu Tsai&ehci0 {
729b8d1ccdSChen-Yu Tsai	status = "okay";
739b8d1ccdSChen-Yu Tsai};
749b8d1ccdSChen-Yu Tsai
759b8d1ccdSChen-Yu Tsai&ehci3 {
769b8d1ccdSChen-Yu Tsai	status = "okay";
779b8d1ccdSChen-Yu Tsai};
789b8d1ccdSChen-Yu Tsai
798abc4c4aSClément Péron&gpu {
808abc4c4aSClément Péron	mali-supply = <&reg_dcdcc>;
818abc4c4aSClément Péron	status = "okay";
828abc4c4aSClément Péron};
838abc4c4aSClément Péron
842345b744SMarcus Cooper&hdmi {
852345b744SMarcus Cooper	status = "okay";
862345b744SMarcus Cooper};
872345b744SMarcus Cooper
882345b744SMarcus Cooper&hdmi_out {
892345b744SMarcus Cooper	hdmi_out_con: endpoint {
902345b744SMarcus Cooper		remote-endpoint = <&hdmi_con_in>;
912345b744SMarcus Cooper	};
922345b744SMarcus Cooper};
932345b744SMarcus Cooper
94f0c083b8SJagan Teki&mmc0 {
95f0c083b8SJagan Teki	vmmc-supply = <&reg_cldo1>;
96f0c083b8SJagan Teki	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
97f0c083b8SJagan Teki	bus-width = <4>;
98f0c083b8SJagan Teki	status = "okay";
99f0c083b8SJagan Teki};
100f0c083b8SJagan Teki
1019b8d1ccdSChen-Yu Tsai&ohci0 {
1029b8d1ccdSChen-Yu Tsai	status = "okay";
1039b8d1ccdSChen-Yu Tsai};
1049b8d1ccdSChen-Yu Tsai
1059b8d1ccdSChen-Yu Tsai&ohci3 {
1069b8d1ccdSChen-Yu Tsai	status = "okay";
1079b8d1ccdSChen-Yu Tsai};
1089b8d1ccdSChen-Yu Tsai
109f0c083b8SJagan Teki&r_i2c {
110f0c083b8SJagan Teki	status = "okay";
111f0c083b8SJagan Teki
112f0c083b8SJagan Teki	axp805: pmic@36 {
113f0c083b8SJagan Teki		compatible = "x-powers,axp805", "x-powers,axp806";
114f0c083b8SJagan Teki		reg = <0x36>;
115f0c083b8SJagan Teki		interrupt-parent = <&r_intc>;
116f0c083b8SJagan Teki		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
117f0c083b8SJagan Teki		interrupt-controller;
118f0c083b8SJagan Teki		#interrupt-cells = <1>;
119f0c083b8SJagan Teki		x-powers,self-working-mode;
120919d2514SChen-Yu Tsai		vina-supply = <&reg_vcc5v>;
121919d2514SChen-Yu Tsai		vinb-supply = <&reg_vcc5v>;
122919d2514SChen-Yu Tsai		vinc-supply = <&reg_vcc5v>;
123919d2514SChen-Yu Tsai		vind-supply = <&reg_vcc5v>;
124919d2514SChen-Yu Tsai		vine-supply = <&reg_vcc5v>;
125919d2514SChen-Yu Tsai		aldoin-supply = <&reg_vcc5v>;
126919d2514SChen-Yu Tsai		bldoin-supply = <&reg_vcc5v>;
127919d2514SChen-Yu Tsai		cldoin-supply = <&reg_vcc5v>;
128f0c083b8SJagan Teki
129f0c083b8SJagan Teki		regulators {
130f0c083b8SJagan Teki			reg_aldo1: aldo1 {
131f0c083b8SJagan Teki				regulator-always-on;
132f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
133f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
134f0c083b8SJagan Teki				regulator-name = "vcc-pl";
135f0c083b8SJagan Teki			};
136f0c083b8SJagan Teki
137f0c083b8SJagan Teki			reg_aldo2: aldo2 {
138f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
139f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
140f0c083b8SJagan Teki				regulator-name = "vcc-ac200";
141f0c083b8SJagan Teki			};
142f0c083b8SJagan Teki
143f0c083b8SJagan Teki			reg_aldo3: aldo3 {
144f0c083b8SJagan Teki				regulator-always-on;
145f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
146f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
147f0c083b8SJagan Teki				regulator-name = "vcc25-dram";
148f0c083b8SJagan Teki			};
149f0c083b8SJagan Teki
150f0c083b8SJagan Teki			reg_bldo1: bldo1 {
151f0c083b8SJagan Teki				regulator-always-on;
152f0c083b8SJagan Teki				regulator-min-microvolt = <1800000>;
153f0c083b8SJagan Teki				regulator-max-microvolt = <1800000>;
154f0c083b8SJagan Teki				regulator-name = "vcc-bias-pll";
155f0c083b8SJagan Teki			};
156f0c083b8SJagan Teki
157f0c083b8SJagan Teki			reg_bldo2: bldo2 {
158f0c083b8SJagan Teki				regulator-always-on;
159f0c083b8SJagan Teki				regulator-min-microvolt = <1800000>;
160f0c083b8SJagan Teki				regulator-max-microvolt = <1800000>;
161f0c083b8SJagan Teki				regulator-name = "vcc-efuse-pcie-hdmi-io";
162f0c083b8SJagan Teki			};
163f0c083b8SJagan Teki
164f0c083b8SJagan Teki			reg_bldo3: bldo3 {
165f0c083b8SJagan Teki				regulator-always-on;
166f0c083b8SJagan Teki				regulator-min-microvolt = <1800000>;
167f0c083b8SJagan Teki				regulator-max-microvolt = <1800000>;
168f0c083b8SJagan Teki				regulator-name = "vcc-dcxoio";
169f0c083b8SJagan Teki			};
170f0c083b8SJagan Teki
171f0c083b8SJagan Teki			bldo4 {
172f0c083b8SJagan Teki				/* unused */
173f0c083b8SJagan Teki			};
174f0c083b8SJagan Teki
175f0c083b8SJagan Teki			reg_cldo1: cldo1 {
176f0c083b8SJagan Teki				regulator-always-on;
177f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
178f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
179f0c083b8SJagan Teki				regulator-name = "vcc-3v3";
180f0c083b8SJagan Teki			};
181f0c083b8SJagan Teki
182f0c083b8SJagan Teki			reg_cldo2: cldo2 {
183f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
184f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
185f0c083b8SJagan Teki				regulator-name = "vcc-wifi-1";
186f0c083b8SJagan Teki			};
187f0c083b8SJagan Teki
188f0c083b8SJagan Teki			reg_cldo3: cldo3 {
189f0c083b8SJagan Teki				regulator-min-microvolt = <3300000>;
190f0c083b8SJagan Teki				regulator-max-microvolt = <3300000>;
191f0c083b8SJagan Teki				regulator-name = "vcc-wifi-2";
192f0c083b8SJagan Teki			};
193f0c083b8SJagan Teki
194f0c083b8SJagan Teki			reg_dcdca: dcdca {
195f0c083b8SJagan Teki				regulator-always-on;
196f0c083b8SJagan Teki				regulator-min-microvolt = <810000>;
197f0c083b8SJagan Teki				regulator-max-microvolt = <1080000>;
198f0c083b8SJagan Teki				regulator-name = "vdd-cpu";
199f0c083b8SJagan Teki			};
200f0c083b8SJagan Teki
201f0c083b8SJagan Teki			reg_dcdcc: dcdcc {
2028abc4c4aSClément Péron				regulator-enable-ramp-delay = <32000>;
203f0c083b8SJagan Teki				regulator-min-microvolt = <810000>;
204f0c083b8SJagan Teki				regulator-max-microvolt = <1080000>;
205f0c083b8SJagan Teki				regulator-name = "vdd-gpu";
206f0c083b8SJagan Teki			};
207f0c083b8SJagan Teki
208f0c083b8SJagan Teki			reg_dcdcd: dcdcd {
209f0c083b8SJagan Teki				regulator-always-on;
210f0c083b8SJagan Teki				regulator-min-microvolt = <960000>;
211f0c083b8SJagan Teki				regulator-max-microvolt = <960000>;
212f0c083b8SJagan Teki				regulator-name = "vdd-sys";
213f0c083b8SJagan Teki			};
214f0c083b8SJagan Teki
215f0c083b8SJagan Teki			reg_dcdce: dcdce {
216f0c083b8SJagan Teki				regulator-always-on;
217f0c083b8SJagan Teki				regulator-min-microvolt = <1200000>;
218f0c083b8SJagan Teki				regulator-max-microvolt = <1200000>;
219f0c083b8SJagan Teki				regulator-name = "vcc-dram";
220f0c083b8SJagan Teki			};
221f0c083b8SJagan Teki
222f0c083b8SJagan Teki			sw {
223f0c083b8SJagan Teki				/* unused */
224f0c083b8SJagan Teki			};
225f0c083b8SJagan Teki		};
226f0c083b8SJagan Teki	};
227f0c083b8SJagan Teki};
228f0c083b8SJagan Teki
22986be7408SClément Péron&r_ir {
23086be7408SClément Péron	status = "okay";
23186be7408SClément Péron};
23286be7408SClément Péron
23332507b86SJernej Skrabec&rtc {
23432507b86SJernej Skrabec	clocks = <&ext_osc32k>;
23532507b86SJernej Skrabec};
23632507b86SJernej Skrabec
237f0c083b8SJagan Teki&uart0 {
238f0c083b8SJagan Teki	pinctrl-names = "default";
239f0c083b8SJagan Teki	pinctrl-0 = <&uart0_ph_pins>;
240f0c083b8SJagan Teki	status = "okay";
241f0c083b8SJagan Teki};
2429b8d1ccdSChen-Yu Tsai
2439b8d1ccdSChen-Yu Tsai&usb2otg {
2449b8d1ccdSChen-Yu Tsai	dr_mode = "otg";
2459b8d1ccdSChen-Yu Tsai	status = "okay";
2469b8d1ccdSChen-Yu Tsai};
2479b8d1ccdSChen-Yu Tsai
2489b8d1ccdSChen-Yu Tsai&usb2phy {
2499b8d1ccdSChen-Yu Tsai	usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
2509b8d1ccdSChen-Yu Tsai	usb0_vbus-supply = <&reg_vcc5v>;
2519b8d1ccdSChen-Yu Tsai	usb3_vbus-supply = <&reg_vcc5v>;
2529b8d1ccdSChen-Yu Tsai	status = "okay";
2539b8d1ccdSChen-Yu Tsai};
254