12b1a3321SJagan Teki/*
22b1a3321SJagan Teki * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
32b1a3321SJagan Teki *
42b1a3321SJagan Teki * This file is dual-licensed: you can use it either under the terms
52b1a3321SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual
62b1a3321SJagan Teki * licensing only applies to this file, and not this project as a
72b1a3321SJagan Teki * whole.
82b1a3321SJagan Teki *
9*1caeae37SAndre Przywara *  a) This file is free software; you can redistribute it and/or
102b1a3321SJagan Teki *     modify it under the terms of the GNU General Public License as
112b1a3321SJagan Teki *     published by the Free Software Foundation; either version 2 of the
122b1a3321SJagan Teki *     License, or (at your option) any later version.
132b1a3321SJagan Teki *
14*1caeae37SAndre Przywara *     This file is distributed in the hope that it will be useful,
152b1a3321SJagan Teki *     but WITHOUT ANY WARRANTY; without even the implied warranty of
162b1a3321SJagan Teki *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
172b1a3321SJagan Teki *     GNU General Public License for more details.
182b1a3321SJagan Teki *
192b1a3321SJagan Teki * Or, alternatively,
202b1a3321SJagan Teki *
212b1a3321SJagan Teki *  b) Permission is hereby granted, free of charge, to any person
222b1a3321SJagan Teki *     obtaining a copy of this software and associated documentation
232b1a3321SJagan Teki *     files (the "Software"), to deal in the Software without
242b1a3321SJagan Teki *     restriction, including without limitation the rights to use,
252b1a3321SJagan Teki *     copy, modify, merge, publish, distribute, sublicense, and/or
262b1a3321SJagan Teki *     sell copies of the Software, and to permit persons to whom the
272b1a3321SJagan Teki *     Software is furnished to do so, subject to the following
282b1a3321SJagan Teki *     conditions:
292b1a3321SJagan Teki *
302b1a3321SJagan Teki *     The above copyright notice and this permission notice shall be
312b1a3321SJagan Teki *     included in all copies or substantial portions of the Software.
322b1a3321SJagan Teki *
332b1a3321SJagan Teki *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
342b1a3321SJagan Teki *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
352b1a3321SJagan Teki *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
362b1a3321SJagan Teki *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
372b1a3321SJagan Teki *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
382b1a3321SJagan Teki *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
392b1a3321SJagan Teki *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
402b1a3321SJagan Teki *     OTHER DEALINGS IN THE SOFTWARE.
412b1a3321SJagan Teki */
422b1a3321SJagan Teki
432b1a3321SJagan Teki/dts-v1/;
442b1a3321SJagan Teki#include "sun50i-h5.dtsi"
452b1a3321SJagan Teki
462b1a3321SJagan Teki#include <dt-bindings/gpio/gpio.h>
472b1a3321SJagan Teki
482b1a3321SJagan Teki/ {
492b1a3321SJagan Teki	model = "FriendlyARM NanoPi NEO 2";
502b1a3321SJagan Teki	compatible = "friendlyarm,nanopi-neo2", "allwinner,sun50i-h5";
512b1a3321SJagan Teki
522b1a3321SJagan Teki	aliases {
53*1caeae37SAndre Przywara		ethernet0 = &emac;
542b1a3321SJagan Teki		serial0 = &uart0;
552b1a3321SJagan Teki	};
562b1a3321SJagan Teki
572b1a3321SJagan Teki	chosen {
582b1a3321SJagan Teki		stdout-path = "serial0:115200n8";
592b1a3321SJagan Teki	};
602b1a3321SJagan Teki
61*1caeae37SAndre Przywara	leds {
62*1caeae37SAndre Przywara		compatible = "gpio-leds";
63*1caeae37SAndre Przywara
64*1caeae37SAndre Przywara		pwr {
65*1caeae37SAndre Przywara			label = "nanopi:green:pwr";
66*1caeae37SAndre Przywara			gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
67*1caeae37SAndre Przywara			default-state = "on";
68*1caeae37SAndre Przywara		};
69*1caeae37SAndre Przywara
70*1caeae37SAndre Przywara		status {
71*1caeae37SAndre Przywara			label = "nanopi:blue:status";
72*1caeae37SAndre Przywara			gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>;
73*1caeae37SAndre Przywara		};
74*1caeae37SAndre Przywara	};
75*1caeae37SAndre Przywara
76*1caeae37SAndre Przywara	reg_gmac_3v3: gmac-3v3 {
77*1caeae37SAndre Przywara		compatible = "regulator-fixed";
78*1caeae37SAndre Przywara		regulator-name = "gmac-3v3";
79*1caeae37SAndre Przywara		regulator-min-microvolt = <3300000>;
80*1caeae37SAndre Przywara		regulator-max-microvolt = <3300000>;
81*1caeae37SAndre Przywara		startup-delay-us = <100000>;
82*1caeae37SAndre Przywara		enable-active-high;
83*1caeae37SAndre Przywara		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
84*1caeae37SAndre Przywara	};
85*1caeae37SAndre Przywara
862b1a3321SJagan Teki	reg_vcc3v3: vcc3v3 {
872b1a3321SJagan Teki		compatible = "regulator-fixed";
882b1a3321SJagan Teki		regulator-name = "vcc3v3";
892b1a3321SJagan Teki		regulator-min-microvolt = <3300000>;
902b1a3321SJagan Teki		regulator-max-microvolt = <3300000>;
912b1a3321SJagan Teki	};
92*1caeae37SAndre Przywara
93*1caeae37SAndre Przywara	reg_usb0_vbus: usb0-vbus {
94*1caeae37SAndre Przywara		compatible = "regulator-fixed";
95*1caeae37SAndre Przywara		regulator-name = "usb0-vbus";
96*1caeae37SAndre Przywara		regulator-min-microvolt = <5000000>;
97*1caeae37SAndre Przywara		regulator-max-microvolt = <5000000>;
98*1caeae37SAndre Przywara		enable-active-high;
99*1caeae37SAndre Przywara		gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
100*1caeae37SAndre Przywara		status = "okay";
101*1caeae37SAndre Przywara	};
102*1caeae37SAndre Przywara};
103*1caeae37SAndre Przywara
104*1caeae37SAndre Przywara&ehci0 {
105*1caeae37SAndre Przywara	status = "okay";
106*1caeae37SAndre Przywara};
107*1caeae37SAndre Przywara
108*1caeae37SAndre Przywara&ehci3 {
109*1caeae37SAndre Przywara	status = "okay";
110*1caeae37SAndre Przywara};
111*1caeae37SAndre Przywara
112*1caeae37SAndre Przywara&emac {
113*1caeae37SAndre Przywara	pinctrl-names = "default";
114*1caeae37SAndre Przywara	pinctrl-0 = <&emac_rgmii_pins>;
115*1caeae37SAndre Przywara	phy-supply = <&reg_gmac_3v3>;
116*1caeae37SAndre Przywara	phy-handle = <&ext_rgmii_phy>;
117*1caeae37SAndre Przywara	phy-mode = "rgmii";
118*1caeae37SAndre Przywara	status = "okay";
119*1caeae37SAndre Przywara};
120*1caeae37SAndre Przywara
121*1caeae37SAndre Przywara&external_mdio {
122*1caeae37SAndre Przywara	ext_rgmii_phy: ethernet-phy@7 {
123*1caeae37SAndre Przywara		compatible = "ethernet-phy-ieee802.3-c22";
124*1caeae37SAndre Przywara		reg = <7>;
125*1caeae37SAndre Przywara	};
1262b1a3321SJagan Teki};
1272b1a3321SJagan Teki
1282b1a3321SJagan Teki&mmc0 {
1292b1a3321SJagan Teki	vmmc-supply = <&reg_vcc3v3>;
1302b1a3321SJagan Teki	bus-width = <4>;
1312b1a3321SJagan Teki	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
1322b1a3321SJagan Teki	status = "okay";
1332b1a3321SJagan Teki};
1342b1a3321SJagan Teki
135*1caeae37SAndre Przywara&ohci0 {
136*1caeae37SAndre Przywara	status = "okay";
137*1caeae37SAndre Przywara};
138*1caeae37SAndre Przywara
139*1caeae37SAndre Przywara&ohci3 {
140*1caeae37SAndre Przywara	status = "okay";
141*1caeae37SAndre Przywara};
142*1caeae37SAndre Przywara
1432b1a3321SJagan Teki&uart0 {
1442b1a3321SJagan Teki	pinctrl-names = "default";
1452b1a3321SJagan Teki	pinctrl-0 = <&uart0_pins_a>;
1462b1a3321SJagan Teki	status = "okay";
1472b1a3321SJagan Teki};
148*1caeae37SAndre Przywara
149*1caeae37SAndre Przywara&usb_otg {
150*1caeae37SAndre Przywara	dr_mode = "otg";
151*1caeae37SAndre Przywara	status = "okay";
152*1caeae37SAndre Przywara};
153*1caeae37SAndre Przywara
154*1caeae37SAndre Przywara&usbphy {
155*1caeae37SAndre Przywara	/* USB Type-A port's VBUS is always on */
156*1caeae37SAndre Przywara	usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
157*1caeae37SAndre Przywara	usb0_vbus-supply = <&reg_usb0_vbus>;
158*1caeae37SAndre Przywara	status = "okay";
159*1caeae37SAndre Przywara};
160