11541Srgrimes/*
21541Srgrimes * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
31541Srgrimes *
41541Srgrimes * This file is dual-licensed: you can use it either under the terms
51541Srgrimes * of the GPL or the X11 license, at your option. Note that this dual
61541Srgrimes * licensing only applies to this file, and not this project as a
71541Srgrimes * whole.
81541Srgrimes *
987218Srwatson *  a) This file is free software; you can redistribute it and/or
101541Srgrimes *     modify it under the terms of the GNU General Public License as
111541Srgrimes *     published by the Free Software Foundation; either version 2 of the
121541Srgrimes *     License, or (at your option) any later version.
131541Srgrimes *
141541Srgrimes *     This file is distributed in the hope that it will be useful,
151541Srgrimes *     but WITHOUT ANY WARRANTY; without even the implied warranty of
161541Srgrimes *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
171541Srgrimes *     GNU General Public License for more details.
181541Srgrimes *
191541Srgrimes * Or, alternatively,
201541Srgrimes *
211541Srgrimes *  b) Permission is hereby granted, free of charge, to any person
221541Srgrimes *     obtaining a copy of this software and associated documentation
231541Srgrimes *     files (the "Software"), to deal in the Software without
241541Srgrimes *     restriction, including without limitation the rights to use,
251541Srgrimes *     copy, modify, merge, publish, distribute, sublicense, and/or
261541Srgrimes *     sell copies of the Software, and to permit persons to whom the
271541Srgrimes *     Software is furnished to do so, subject to the following
281541Srgrimes *     conditions:
291541Srgrimes *
301541Srgrimes *     The above copyright notice and this permission notice shall be
311541Srgrimes *     included in all copies or substantial portions of the Software.
321541Srgrimes *
331541Srgrimes *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
341541Srgrimes *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
351541Srgrimes *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
361541Srgrimes *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
371541Srgrimes *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
381541Srgrimes *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
391541Srgrimes *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4050477Speter *     OTHER DEALINGS IN THE SOFTWARE.
411541Srgrimes */
421541Srgrimes
431541Srgrimes#include "sun8i-h3-nanopi.dtsi"
441541Srgrimes
451541Srgrimes/ {
461541Srgrimes	model = "FriendlyArm NanoPi M1 Plus";
4731778Seivind	compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3";
4831778Seivind
491541Srgrimes	aliases {
5076166Smarkm		serial1 = &uart3;
511541Srgrimes		ethernet0 = &emac;
5241059Speter		ethernet1 = &sdio_wifi;
5370317Sjake	};
5491140Stanimura
5576166Smarkm	reg_gmac_3v3: gmac-3v3 {
5691140Stanimura		compatible = "regulator-fixed";
571541Srgrimes		regulator-name = "gmac-3v3";
5876166Smarkm		regulator-min-microvolt = <3300000>;
5987218Srwatson		regulator-max-microvolt = <3300000>;
6031891Ssef		startup-delay-us = <100000>;
6165495Struckman		enable-active-high;
6292976Srwatson		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
6392976Srwatson	};
6461287Srwatson
651541Srgrimes	wifi_pwrseq: pwrseq {
6630354Sphk		compatible = "mmc-pwrseq-simple";
6730354Sphk		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
6889414Sarr	};
6989414Sarr
7087138Srwatson	connector {
7187138Srwatson		compatible = "hdmi-connector";
7212221Sbde		type = "a";
7311332Sswallace
741541Srgrimes		port {
751541Srgrimes			hdmi_con_in: endpoint {
7612221Sbde				remote-endpoint = <&hdmi_out_con>;
7758717Sdillon			};
7882749Sdillon		};
7982749Sdillon	};
801541Srgrimes};
811549Srgrimes
8293580Sjhb&de {
831541Srgrimes	status = "okay";
8483366Sjulian};
8585564Sdillon
861541Srgrimes&ehci1 {
8785564Sdillon	status = "okay";
8883366Sjulian};
891541Srgrimes
9074728Sjhb&ehci2 {
9183366Sjulian	status = "okay";
9274728Sjhb};
931541Srgrimes
9485564Sdillon&emac {
951541Srgrimes	pinctrl-names = "default";
961541Srgrimes	pinctrl-0 = <&emac_rgmii_pins>;
971541Srgrimes	phy-supply = <&reg_gmac_3v3>;
9812221Sbde	phy-handle = <&ext_rgmii_phy>;
9911332Sswallace	phy-mode = "rgmii";
10011332Sswallace
10111332Sswallace	status = "okay";
10212221Sbde};
10382749Sdillon
10482749Sdillon&external_mdio {
10582749Sdillon	ext_rgmii_phy: ethernet-phy@1 {
1061541Srgrimes		compatible = "ethernet-phy-ieee802.3-c22";
1071549Srgrimes		reg = <7>;
10893580Sjhb	};
1091541Srgrimes};
11083366Sjulian
11185564Sdillon&hdmi {
1121541Srgrimes	status = "okay";
11385564Sdillon};
11474728Sjhb
11583366Sjulian&hdmi_out {
11674728Sjhb	hdmi_out_con: endpoint {
11785564Sdillon		remote-endpoint = <&hdmi_con_in>;
1181541Srgrimes	};
1191541Srgrimes};
1201541Srgrimes
12187466Srwatson&ir {
12287218Srwatson	pinctrl-names = "default";
12358717Sdillon	pinctrl-0 = <&r_ir_rx_pin>;
12412221Sbde	status = "okay";
12511332Sswallace};
12611332Sswallace
12711332Sswallace&mmc1 {
12812221Sbde	vmmc-supply = <&reg_vcc3v3>;
12982749Sdillon	vqmmc-supply = <&reg_vcc3v3>;
13082749Sdillon	mmc-pwrseq = <&wifi_pwrseq>;
13182749Sdillon	bus-width = <4>;
1321549Srgrimes	non-removable;
13393580Sjhb	status = "okay";
1341541Srgrimes
13583366Sjulian	sdio_wifi: wifi@1 {
13691140Stanimura		reg = <1>;
1371541Srgrimes		compatible = "brcm,bcm4329-fmac";
13891140Stanimura		interrupt-parent = <&pio>;
13991140Stanimura		interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
14083366Sjulian		interrupt-names = "host-wake";
14191140Stanimura	};
14291140Stanimura};
1431541Srgrimes
1441541Srgrimes&mmc2 {
1451541Srgrimes	pinctrl-names = "default";
14628401Speter	pinctrl-0 = <&mmc2_8bit_pins>;
14712221Sbde	vmmc-supply = <&reg_vcc3v3>;
14828401Speter	vqmmc-supply = <&reg_vcc3v3>;
14928401Speter	bus-width = <8>;
15028401Speter	non-removable;
15128401Speter	status = "okay";
15282749Sdillon};
15382749Sdillon
15482749Sdillon&ohci1 {
15528401Speter	status = "okay";
15693580Sjhb};
15728401Speter
15883366Sjulian&ohci2 {
15941726Struckman	status = "okay";
16092985Sjhb};
16141726Struckman
16292985Sjhb&uart3 {
16387218Srwatson	pinctrl-names = "default";
16491140Stanimura	pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>;
16591140Stanimura	status = "okay";
16683366Sjulian};
16791140Stanimura