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-nanopi-neo-plus2.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 // Copyright (C) 2017 Antony Antony <antony@phenome.org>
3 // Copyright (C) 2016 ARM Ltd.
4
5 /dts-v1/;
6 #include "sun50i-h5.dtsi"
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/pinctrl/sun4i-a10.h>
11
12 / {
13         model = "FriendlyARM NanoPi NEO Plus2";
14         compatible = "friendlyarm,nanopi-neo-plus2", "allwinner,sun50i-h5";
15
16         aliases {
17                 ethernet0 = &emac;
18                 serial0 = &uart0;
19         };
20
21         chosen {
22                 stdout-path = "serial0:115200n8";
23         };
24
25         leds {
26                 compatible = "gpio-leds";
27
28                 led-0 {
29                         label = "nanopi:green:pwr";
30                         gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
31                         default-state = "on";
32                 };
33
34                 led-1 {
35                         label = "nanopi:red:status";
36                         gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
37                 };
38         };
39
40         reg_gmac_3v3: gmac-3v3 {
41                 compatible = "regulator-fixed";
42                 regulator-name = "gmac-3v3";
43                 regulator-min-microvolt = <3300000>;
44                 regulator-max-microvolt = <3300000>;
45                 startup-delay-us = <100000>;
46                 enable-active-high;
47                 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
48         };
49
50         reg_vcc3v3: vcc3v3 {
51                 compatible = "regulator-fixed";
52                 regulator-name = "vcc3v3";
53                 regulator-min-microvolt = <3300000>;
54                 regulator-max-microvolt = <3300000>;
55         };
56
57         vdd_cpux: gpio-regulator {
58                 compatible = "regulator-gpio";
59                 regulator-name = "vdd-cpux";
60                 regulator-type = "voltage";
61                 regulator-boot-on;
62                 regulator-always-on;
63                 regulator-min-microvolt = <1100000>;
64                 regulator-max-microvolt = <1300000>;
65                 regulator-ramp-delay = <50>; /* 4ms */
66                 gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>;
67                 gpios-states = <0x1>;
68                 states = <1100000 0>, <1300000 1>;
69         };
70
71         wifi_pwrseq: wifi_pwrseq {
72                 compatible = "mmc-pwrseq-simple";
73                 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
74                 post-power-on-delay-ms = <200>;
75         };
76 };
77
78 &codec {
79         allwinner,audio-routing =
80                 "Line Out", "LINEOUT",
81                 "MIC1", "Mic",
82                 "Mic",  "MBIAS";
83         status = "okay";
84 };
85
86 &ehci0 {
87         status = "okay";
88 };
89
90 &ehci3 {
91         status = "okay";
92 };
93
94 &emac {
95         pinctrl-names = "default";
96         pinctrl-0 = <&emac_rgmii_pins>;
97         phy-supply = <&reg_gmac_3v3>;
98         phy-handle = <&ext_rgmii_phy>;
99         phy-mode = "rgmii-id";
100         status = "okay";
101 };
102
103 &external_mdio {
104         ext_rgmii_phy: ethernet-phy@7 {
105                 compatible = "ethernet-phy-ieee802.3-c22";
106                 reg = <7>;
107         };
108 };
109
110 &mmc0 {
111         vmmc-supply = <&reg_vcc3v3>;
112         bus-width = <4>;
113         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
114         status = "okay";
115 };
116
117 &mmc1 {
118         vmmc-supply = <&reg_vcc3v3>;
119         vqmmc-supply = <&reg_vcc3v3>;
120         mmc-pwrseq = <&wifi_pwrseq>;
121         bus-width = <4>;
122         non-removable;
123         status = "okay";
124
125         brcmf: wifi@1 {
126                 reg = <1>;
127                 compatible = "brcm,bcm4329-fmac";
128         };
129 };
130
131 &mmc2 {
132         pinctrl-names = "default";
133         pinctrl-0 = <&mmc2_8bit_pins>;
134         vmmc-supply = <&reg_vcc3v3>;
135         bus-width = <8>;
136         non-removable;
137         cap-mmc-hw-reset;
138         status = "okay";
139 };
140
141 &ohci0 {
142         status = "okay";
143 };
144
145 &ohci3 {
146         status = "okay";
147 };
148
149 &uart0 {
150         pinctrl-names = "default";
151         pinctrl-0 = <&uart0_pa_pins>;
152         status = "okay";
153 };
154
155 &usb_otg {
156         dr_mode = "host";
157         status = "okay";
158 };
159
160 &usbphy {
161         /* USB Type-A ports' VBUS is always on */
162         status = "okay";
163 };