1b0174c39SJagan Teki/*
2b0174c39SJagan Teki * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
3b0174c39SJagan Teki *
4b0174c39SJagan Teki * This file is dual-licensed: you can use it either under the terms
5b0174c39SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual
6b0174c39SJagan Teki * licensing only applies to this file, and not this project as a
7b0174c39SJagan Teki * whole.
8b0174c39SJagan Teki *
9b0174c39SJagan Teki *  a) This file is free software; you can redistribute it and/or
10b0174c39SJagan Teki *     modify it under the terms of the GNU General Public License as
11b0174c39SJagan Teki *     published by the Free Software Foundation; either version 2 of the
12b0174c39SJagan Teki *     License, or (at your option) any later version.
13b0174c39SJagan Teki *
14b0174c39SJagan Teki *     This file is distributed in the hope that it will be useful,
15b0174c39SJagan Teki *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16b0174c39SJagan Teki *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17b0174c39SJagan Teki *     GNU General Public License for more details.
18b0174c39SJagan Teki *
19b0174c39SJagan Teki * Or, alternatively,
20b0174c39SJagan Teki *
21b0174c39SJagan Teki *  b) Permission is hereby granted, free of charge, to any person
22b0174c39SJagan Teki *     obtaining a copy of this software and associated documentation
23b0174c39SJagan Teki *     files (the "Software"), to deal in the Software without
24b0174c39SJagan Teki *     restriction, including without limitation the rights to use,
25b0174c39SJagan Teki *     copy, modify, merge, publish, distribute, sublicense, and/or
26b0174c39SJagan Teki *     sell copies of the Software, and to permit persons to whom the
27b0174c39SJagan Teki *     Software is furnished to do so, subject to the following
28b0174c39SJagan Teki *     conditions:
29b0174c39SJagan Teki *
30b0174c39SJagan Teki *     The above copyright notice and this permission notice shall be
31b0174c39SJagan Teki *     included in all copies or substantial portions of the Software.
32b0174c39SJagan Teki *
33b0174c39SJagan Teki *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34b0174c39SJagan Teki *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35b0174c39SJagan Teki *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36b0174c39SJagan Teki *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37b0174c39SJagan Teki *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38b0174c39SJagan Teki *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39b0174c39SJagan Teki *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40b0174c39SJagan Teki *     OTHER DEALINGS IN THE SOFTWARE.
41b0174c39SJagan Teki */
42b0174c39SJagan Teki
43b0174c39SJagan Teki#include "sun8i-h3-nanopi.dtsi"
44b0174c39SJagan Teki
45b0174c39SJagan Teki/ {
46b0174c39SJagan Teki	model = "FriendlyArm NanoPi M1 Plus";
47b0174c39SJagan Teki	compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3";
48*2d0c3d6bSAndre Przywara
49*2d0c3d6bSAndre Przywara	aliases {
50*2d0c3d6bSAndre Przywara		serial1 = &uart3;
51*2d0c3d6bSAndre Przywara		ethernet0 = &emac;
52*2d0c3d6bSAndre Przywara		ethernet1 = &sdio_wifi;
53*2d0c3d6bSAndre Przywara	};
54*2d0c3d6bSAndre Przywara
55*2d0c3d6bSAndre Przywara	reg_gmac_3v3: gmac-3v3 {
56*2d0c3d6bSAndre Przywara		compatible = "regulator-fixed";
57*2d0c3d6bSAndre Przywara		regulator-name = "gmac-3v3";
58*2d0c3d6bSAndre Przywara		regulator-min-microvolt = <3300000>;
59*2d0c3d6bSAndre Przywara		regulator-max-microvolt = <3300000>;
60*2d0c3d6bSAndre Przywara		startup-delay-us = <100000>;
61*2d0c3d6bSAndre Przywara		enable-active-high;
62*2d0c3d6bSAndre Przywara		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
63*2d0c3d6bSAndre Przywara	};
64*2d0c3d6bSAndre Przywara
65*2d0c3d6bSAndre Przywara	wifi_pwrseq: wifi_pwrseq {
66*2d0c3d6bSAndre Przywara		compatible = "mmc-pwrseq-simple";
67*2d0c3d6bSAndre Przywara		pinctrl-names = "default";
68*2d0c3d6bSAndre Przywara		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
69*2d0c3d6bSAndre Przywara	};
70b0174c39SJagan Teki};
71b0174c39SJagan Teki
72b0174c39SJagan Teki&ehci1 {
73b0174c39SJagan Teki	status = "okay";
74b0174c39SJagan Teki};
75b0174c39SJagan Teki
76b0174c39SJagan Teki&ehci2 {
77b0174c39SJagan Teki	status = "okay";
78b0174c39SJagan Teki};
79b0174c39SJagan Teki
80*2d0c3d6bSAndre Przywara&emac {
81*2d0c3d6bSAndre Przywara	pinctrl-names = "default";
82*2d0c3d6bSAndre Przywara	pinctrl-0 = <&emac_rgmii_pins>;
83*2d0c3d6bSAndre Przywara	phy-supply = <&reg_gmac_3v3>;
84*2d0c3d6bSAndre Przywara	phy-handle = <&ext_rgmii_phy>;
85*2d0c3d6bSAndre Przywara	phy-mode = "rgmii";
86*2d0c3d6bSAndre Przywara
87*2d0c3d6bSAndre Przywara	status = "okay";
88*2d0c3d6bSAndre Przywara};
89*2d0c3d6bSAndre Przywara
90*2d0c3d6bSAndre Przywara&external_mdio {
91*2d0c3d6bSAndre Przywara	ext_rgmii_phy: ethernet-phy@1 {
92*2d0c3d6bSAndre Przywara		compatible = "ethernet-phy-ieee802.3-c22";
93*2d0c3d6bSAndre Przywara		reg = <7>;
94*2d0c3d6bSAndre Przywara	};
95*2d0c3d6bSAndre Przywara};
96*2d0c3d6bSAndre Przywara
97*2d0c3d6bSAndre Przywara&ir {
98*2d0c3d6bSAndre Przywara	pinctrl-names = "default";
99*2d0c3d6bSAndre Przywara	pinctrl-0 = <&ir_pins_a>;
100*2d0c3d6bSAndre Przywara	status = "okay";
101*2d0c3d6bSAndre Przywara};
102*2d0c3d6bSAndre Przywara
103*2d0c3d6bSAndre Przywara&mmc1 {
104*2d0c3d6bSAndre Przywara	vmmc-supply = <&reg_vcc3v3>;
105*2d0c3d6bSAndre Przywara	vqmmc-supply = <&reg_vcc3v3>;
106*2d0c3d6bSAndre Przywara	mmc-pwrseq = <&wifi_pwrseq>;
107*2d0c3d6bSAndre Przywara	bus-width = <4>;
108*2d0c3d6bSAndre Przywara	non-removable;
109*2d0c3d6bSAndre Przywara	status = "okay";
110*2d0c3d6bSAndre Przywara
111*2d0c3d6bSAndre Przywara	sdio_wifi: sdio_wifi@1 {
112*2d0c3d6bSAndre Przywara		reg = <1>;
113*2d0c3d6bSAndre Przywara		compatible = "brcm,bcm4329-fmac";
114*2d0c3d6bSAndre Przywara		interrupt-parent = <&pio>;
115*2d0c3d6bSAndre Przywara		interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
116*2d0c3d6bSAndre Przywara		interrupt-names = "host-wake";
117*2d0c3d6bSAndre Przywara	};
118*2d0c3d6bSAndre Przywara};
119*2d0c3d6bSAndre Przywara
120*2d0c3d6bSAndre Przywara&mmc2 {
121*2d0c3d6bSAndre Przywara	pinctrl-names = "default";
122*2d0c3d6bSAndre Przywara	pinctrl-0 = <&mmc2_8bit_pins>;
123*2d0c3d6bSAndre Przywara	vmmc-supply = <&reg_vcc3v3>;
124*2d0c3d6bSAndre Przywara	vqmmc-supply = <&reg_vcc3v3>;
125*2d0c3d6bSAndre Przywara	bus-width = <8>;
126*2d0c3d6bSAndre Przywara	non-removable;
127*2d0c3d6bSAndre Przywara	status = "okay";
128*2d0c3d6bSAndre Przywara};
129*2d0c3d6bSAndre Przywara
130b0174c39SJagan Teki&ohci1 {
131b0174c39SJagan Teki	status = "okay";
132b0174c39SJagan Teki};
133b0174c39SJagan Teki
134b0174c39SJagan Teki&ohci2 {
135b0174c39SJagan Teki	status = "okay";
136b0174c39SJagan Teki};
137*2d0c3d6bSAndre Przywara
138*2d0c3d6bSAndre Przywara&uart3 {
139*2d0c3d6bSAndre Przywara	pinctrl-names = "default";
140*2d0c3d6bSAndre Przywara	pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>;
141*2d0c3d6bSAndre Przywara	status = "okay";
142*2d0c3d6bSAndre Przywara};
143