blob: d7f8bad6bb9809eb9941b0ac6f1a6d56f4db5a9c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
3// Based on sun50i-h5-orangepi-pc2.dts, which is:
4// Copyright (C) 2016 ARM Ltd.
5
6/dts-v1/;
7#include "sun50i-h5.dtsi"
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11
12/ {
13 model = "Xunlong Orange Pi Prime";
14 compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5";
15
16 aliases {
17 ethernet0 = &emac;
18 serial0 = &uart0;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 connector {
26 compatible = "hdmi-connector";
27 type = "a";
28
29 port {
30 hdmi_con_in: endpoint {
31 remote-endpoint = <&hdmi_out_con>;
32 };
33 };
34 };
35
36 leds {
37 compatible = "gpio-leds";
38
39 led-0 {
40 label = "orangepi:green:pwr";
41 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
42 default-state = "on";
43 };
44
45 led-1 {
46 label = "orangepi:red:status";
47 gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
48 };
49 };
50
51 gpio-keys {
52 compatible = "gpio-keys";
53
54 key-sw4 {
55 label = "sw4";
56 linux,code = <BTN_0>;
57 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
58 };
59 };
60
61 reg_gmac_3v3: gmac-3v3 {
62 compatible = "regulator-fixed";
63 regulator-name = "gmac-3v3";
64 regulator-min-microvolt = <3300000>;
65 regulator-max-microvolt = <3300000>;
66 startup-delay-us = <100000>;
67 enable-active-high;
68 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
69 };
70
71 reg_vcc3v3: vcc3v3 {
72 compatible = "regulator-fixed";
73 regulator-name = "vcc3v3";
74 regulator-min-microvolt = <3300000>;
75 regulator-max-microvolt = <3300000>;
76 };
77
78 reg_usb0_vbus: usb0-vbus {
79 compatible = "regulator-fixed";
80 regulator-name = "usb0-vbus";
81 regulator-min-microvolt = <5000000>;
82 regulator-max-microvolt = <5000000>;
83 enable-active-high;
84 gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
85 status = "okay";
86 };
87
88 wifi_pwrseq: wifi_pwrseq {
89 compatible = "mmc-pwrseq-simple";
90 reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */
91 };
92};
93
94&codec {
95 allwinner,audio-routing =
96 "Line Out", "LINEOUT",
97 "MIC1", "Mic",
98 "Mic", "MBIAS";
99 status = "okay";
100};
101
102&de {
103 status = "okay";
104};
105
106&ehci0 {
107 status = "okay";
108};
109
110&ehci1 {
111 status = "okay";
112};
113
114&ehci2 {
115 status = "okay";
116};
117
118&ehci3 {
119 status = "okay";
120};
121
122&emac {
123 pinctrl-names = "default";
124 pinctrl-0 = <&emac_rgmii_pins>;
125 phy-supply = <&reg_gmac_3v3>;
126 phy-handle = <&ext_rgmii_phy>;
127 phy-mode = "rgmii-id";
128 status = "okay";
129};
130
131&external_mdio {
132 ext_rgmii_phy: ethernet-phy@1 {
133 compatible = "ethernet-phy-ieee802.3-c22";
134 reg = <1>;
135 };
136};
137
138&hdmi {
139 status = "okay";
140};
141
142&hdmi_out {
143 hdmi_out_con: endpoint {
144 remote-endpoint = <&hdmi_con_in>;
145 };
146};
147
148&ir {
149 pinctrl-names = "default";
150 pinctrl-0 = <&r_ir_rx_pin>;
151 status = "okay";
152};
153
154&mmc0 {
155 vmmc-supply = <&reg_vcc3v3>;
156 bus-width = <4>;
157 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
158 status = "okay";
159};
160
161&mmc1 {
162 vmmc-supply = <&reg_vcc3v3>;
163 mmc-pwrseq = <&wifi_pwrseq>;
164 bus-width = <4>;
165 non-removable;
166 status = "okay";
167};
168
169&ohci0 {
170 status = "okay";
171};
172
173&ohci1 {
174 status = "okay";
175};
176
177&ohci2 {
178 status = "okay";
179};
180
181&ohci3 {
182 status = "okay";
183};
184
185&uart0 {
186 pinctrl-names = "default";
187 pinctrl-0 = <&uart0_pa_pins>;
188 status = "okay";
189};
190
191&uart1 {
192 pinctrl-names = "default";
193 pinctrl-0 = <&uart1_pins>;
194 status = "disabled";
195};
196
197&uart2 {
198 pinctrl-names = "default";
199 pinctrl-0 = <&uart2_pins>;
200 status = "disabled";
201};
202
203&usb_otg {
204 dr_mode = "otg";
205 status = "okay";
206};
207
208&usbphy {
209 /* USB Type-A ports' VBUS is always on */
210 usb0_id_det-gpios = <&pio 0 21 GPIO_ACTIVE_HIGH>; /* PA21 */
211 usb0_vbus-supply = <&reg_usb0_vbus>;
212 status = "okay";
213};