blob: cb44bfa5981fd41778b2edac5e4827f7a50dad90 [file] [log] [blame]
Chen-Yu Tsaib5fe5232020-01-12 23:36:13 +08001// 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.
Jagan Teki868e3712017-05-24 19:18:08 +00005
6/dts-v1/;
Jagan Teki868e3712017-05-24 19:18:08 +00007#include "sun50i-h5.dtsi"
8
9#include <dt-bindings/gpio/gpio.h>
Andre Przywara1caeae32018-07-04 14:16:37 +010010#include <dt-bindings/input/input.h>
Jagan Teki868e3712017-05-24 19:18:08 +000011
12/ {
Andre Przywara1caeae32018-07-04 14:16:37 +010013 model = "Xunlong Orange Pi Prime";
Jagan Teki868e3712017-05-24 19:18:08 +000014 compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5";
15
16 aliases {
Andre Przywara1caeae32018-07-04 14:16:37 +010017 ethernet0 = &emac;
Jagan Teki868e3712017-05-24 19:18:08 +000018 serial0 = &uart0;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
Andre Przywara1caeae32018-07-04 14:16:37 +010025 connector {
26 compatible = "hdmi-connector";
27 type = "a";
Jagan Teki868e3712017-05-24 19:18:08 +000028
Andre Przywara1caeae32018-07-04 14:16:37 +010029 port {
30 hdmi_con_in: endpoint {
31 remote-endpoint = <&hdmi_out_con>;
32 };
Jagan Teki868e3712017-05-24 19:18:08 +000033 };
34 };
Andre Przywara1caeae32018-07-04 14:16:37 +010035
36 leds {
37 compatible = "gpio-leds";
38
39 pwr {
40 label = "orangepi:green:pwr";
41 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
42 default-state = "on";
43 };
44
45 status {
46 label = "orangepi:red:status";
47 gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
48 };
49 };
50
51 r-gpio-keys {
52 compatible = "gpio-keys";
53
54 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";
Jagan Teki868e3712017-05-24 19:18:08 +0000104};
105
Jagan Teki82843d82018-05-07 13:03:50 +0530106&ehci0 {
107 status = "okay";
108};
109
Jagan Teki23cd00a2017-11-29 13:14:23 +0530110&ehci1 {
111 status = "okay";
112};
113
Andre Przywara1caeae32018-07-04 14:16:37 +0100114&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";
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";
Chen-Yu Tsaib5fe5232020-01-12 23:36:13 +0800150 pinctrl-0 = <&r_ir_rx_pin>;
Andre Przywara1caeae32018-07-04 14:16:37 +0100151 status = "okay";
152};
153
Jagan Teki868e3712017-05-24 19:18:08 +0000154&mmc0 {
Jagan Teki868e3712017-05-24 19:18:08 +0000155 vmmc-supply = <&reg_vcc3v3>;
156 bus-width = <4>;
Andre Przywara1caeae32018-07-04 14:16:37 +0100157 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;
Jagan Teki868e3712017-05-24 19:18:08 +0000166 status = "okay";
167};
168
Jagan Teki82843d82018-05-07 13:03:50 +0530169&ohci0 {
170 status = "okay";
171};
172
Jagan Teki23cd00a2017-11-29 13:14:23 +0530173&ohci1 {
174 status = "okay";
175};
176
Andre Przywara1caeae32018-07-04 14:16:37 +0100177&ohci2 {
178 status = "okay";
179};
180
181&ohci3 {
182 status = "okay";
183};
184
Jagan Teki868e3712017-05-24 19:18:08 +0000185&uart0 {
186 pinctrl-names = "default";
Chen-Yu Tsaib5fe5232020-01-12 23:36:13 +0800187 pinctrl-0 = <&uart0_pa_pins>;
Jagan Teki868e3712017-05-24 19:18:08 +0000188 status = "okay";
189};
190
Andre Przywara1caeae32018-07-04 14:16:37 +0100191&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
Jagan Teki82843d82018-05-07 13:03:50 +0530203&usb_otg {
204 dr_mode = "otg";
205 status = "okay";
206};
207
Jagan Teki868e3712017-05-24 19:18:08 +0000208&usbphy {
Andre Przywara1caeae32018-07-04 14:16:37 +0100209 /* 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>;
Jagan Teki868e3712017-05-24 19:18:08 +0000212 status = "okay";
213};