Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / allwinner / sun50i-h5-orangepi-prime.dts
1 // 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         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";
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 };