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