1d6b1d7d8SJagan Teki/* 2d6b1d7d8SJagan Teki * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3d6b1d7d8SJagan Teki * 4d6b1d7d8SJagan Teki * This file is dual-licensed: you can use it either under the terms 5d6b1d7d8SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual 6d6b1d7d8SJagan Teki * licensing only applies to this file, and not this project as a 7d6b1d7d8SJagan Teki * whole. 8d6b1d7d8SJagan Teki * 9d6b1d7d8SJagan Teki * a) This library is free software; you can redistribute it and/or 10d6b1d7d8SJagan Teki * modify it under the terms of the GNU General Public License as 11d6b1d7d8SJagan Teki * published by the Free Software Foundation; either version 2 of the 12d6b1d7d8SJagan Teki * License, or (at your option) any later version. 13d6b1d7d8SJagan Teki * 14d6b1d7d8SJagan Teki * This library is distributed in the hope that it will be useful, 15d6b1d7d8SJagan Teki * but WITHOUT ANY WARRANTY; without even the implied warranty of 16d6b1d7d8SJagan Teki * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17d6b1d7d8SJagan Teki * GNU General Public License for more details. 18d6b1d7d8SJagan Teki * 19d6b1d7d8SJagan Teki * Or, alternatively, 20d6b1d7d8SJagan Teki * 21d6b1d7d8SJagan Teki * b) Permission is hereby granted, free of charge, to any person 22d6b1d7d8SJagan Teki * obtaining a copy of this software and associated documentation 23d6b1d7d8SJagan Teki * files (the "Software"), to deal in the Software without 24d6b1d7d8SJagan Teki * restriction, including without limitation the rights to use, 25d6b1d7d8SJagan Teki * copy, modify, merge, publish, distribute, sublicense, and/or 26d6b1d7d8SJagan Teki * sell copies of the Software, and to permit persons to whom the 27d6b1d7d8SJagan Teki * Software is furnished to do so, subject to the following 28d6b1d7d8SJagan Teki * conditions: 29d6b1d7d8SJagan Teki * 30d6b1d7d8SJagan Teki * The above copyright notice and this permission notice shall be 31d6b1d7d8SJagan Teki * included in all copies or substantial portions of the Software. 32d6b1d7d8SJagan Teki * 33d6b1d7d8SJagan Teki * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34d6b1d7d8SJagan Teki * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35d6b1d7d8SJagan Teki * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36d6b1d7d8SJagan Teki * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37d6b1d7d8SJagan Teki * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38d6b1d7d8SJagan Teki * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39d6b1d7d8SJagan Teki * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40d6b1d7d8SJagan Teki * OTHER DEALINGS IN THE SOFTWARE. 41d6b1d7d8SJagan Teki */ 42d6b1d7d8SJagan Teki 43d6b1d7d8SJagan Teki/dts-v1/; 44d6b1d7d8SJagan Teki 45d6b1d7d8SJagan Teki#include "sun50i-h5.dtsi" 46d6b1d7d8SJagan Teki 47d6b1d7d8SJagan Teki#include <dt-bindings/gpio/gpio.h> 48d6b1d7d8SJagan Teki 49d6b1d7d8SJagan Teki/ { 50d6b1d7d8SJagan Teki model = "OrangePi Zero Plus2"; 51d6b1d7d8SJagan Teki compatible = "xunlong,orangepi-zero-plus2", "allwinner,sun50i-h5"; 52d6b1d7d8SJagan Teki 53d6b1d7d8SJagan Teki aliases { 54d6b1d7d8SJagan Teki serial0 = &uart0; 55d6b1d7d8SJagan Teki }; 56d6b1d7d8SJagan Teki 57d6b1d7d8SJagan Teki chosen { 58d6b1d7d8SJagan Teki stdout-path = "serial0:115200n8"; 59d6b1d7d8SJagan Teki }; 60d6b1d7d8SJagan Teki 61*1caeae37SAndre Przywara connector { 62*1caeae37SAndre Przywara compatible = "hdmi-connector"; 63*1caeae37SAndre Przywara type = "a"; 64*1caeae37SAndre Przywara 65*1caeae37SAndre Przywara port { 66*1caeae37SAndre Przywara hdmi_con_in: endpoint { 67*1caeae37SAndre Przywara remote-endpoint = <&hdmi_out_con>; 68*1caeae37SAndre Przywara }; 69*1caeae37SAndre Przywara }; 70*1caeae37SAndre Przywara }; 71*1caeae37SAndre Przywara 72d6b1d7d8SJagan Teki reg_vcc3v3: vcc3v3 { 73d6b1d7d8SJagan Teki compatible = "regulator-fixed"; 74d6b1d7d8SJagan Teki regulator-name = "vcc3v3"; 75d6b1d7d8SJagan Teki regulator-min-microvolt = <3300000>; 76d6b1d7d8SJagan Teki regulator-max-microvolt = <3300000>; 77d6b1d7d8SJagan Teki }; 78*1caeae37SAndre Przywara 79*1caeae37SAndre Przywara wifi_pwrseq: wifi_pwrseq { 80*1caeae37SAndre Przywara compatible = "mmc-pwrseq-simple"; 81*1caeae37SAndre Przywara pinctrl-names = "default"; 82*1caeae37SAndre Przywara reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */ 83*1caeae37SAndre Przywara post-power-on-delay-ms = <200>; 84*1caeae37SAndre Przywara }; 85*1caeae37SAndre Przywara}; 86*1caeae37SAndre Przywara 87*1caeae37SAndre Przywara&de { 88*1caeae37SAndre Przywara status = "okay"; 89*1caeae37SAndre Przywara}; 90*1caeae37SAndre Przywara 91*1caeae37SAndre Przywara&hdmi { 92*1caeae37SAndre Przywara status = "okay"; 93*1caeae37SAndre Przywara}; 94*1caeae37SAndre Przywara 95*1caeae37SAndre Przywara&hdmi_out { 96*1caeae37SAndre Przywara hdmi_out_con: endpoint { 97*1caeae37SAndre Przywara remote-endpoint = <&hdmi_con_in>; 98*1caeae37SAndre Przywara }; 99d6b1d7d8SJagan Teki}; 100d6b1d7d8SJagan Teki 101d6b1d7d8SJagan Teki&mmc0 { 102d6b1d7d8SJagan Teki vmmc-supply = <®_vcc3v3>; 103d6b1d7d8SJagan Teki bus-width = <4>; 104*1caeae37SAndre Przywara cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 105d6b1d7d8SJagan Teki status = "okay"; 106d6b1d7d8SJagan Teki}; 107d6b1d7d8SJagan Teki 108*1caeae37SAndre Przywara&mmc1 { 109*1caeae37SAndre Przywara vmmc-supply = <®_vcc3v3>; 110*1caeae37SAndre Przywara vqmmc-supply = <®_vcc3v3>; 111*1caeae37SAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 112*1caeae37SAndre Przywara bus-width = <4>; 113*1caeae37SAndre Przywara non-removable; 114*1caeae37SAndre Przywara status = "okay"; 115*1caeae37SAndre Przywara 116*1caeae37SAndre Przywara brcmf: wifi@1 { 117*1caeae37SAndre Przywara reg = <1>; 118*1caeae37SAndre Przywara compatible = "brcm,bcm4329-fmac"; 119*1caeae37SAndre Przywara interrupt-parent = <&r_pio>; 120*1caeae37SAndre Przywara interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */ 121*1caeae37SAndre Przywara interrupt-names = "host-wake"; 122*1caeae37SAndre Przywara }; 123*1caeae37SAndre Przywara}; 124*1caeae37SAndre Przywara 125d6b1d7d8SJagan Teki&mmc2 { 126d6b1d7d8SJagan Teki pinctrl-names = "default"; 127d6b1d7d8SJagan Teki pinctrl-0 = <&mmc2_8bit_pins>; 128d6b1d7d8SJagan Teki vmmc-supply = <®_vcc3v3>; 129d6b1d7d8SJagan Teki bus-width = <8>; 130d6b1d7d8SJagan Teki non-removable; 131d6b1d7d8SJagan Teki cap-mmc-hw-reset; 132d6b1d7d8SJagan Teki status = "okay"; 133d6b1d7d8SJagan Teki}; 134d6b1d7d8SJagan Teki 135d6b1d7d8SJagan Teki&uart0 { 136d6b1d7d8SJagan Teki pinctrl-names = "default"; 137d6b1d7d8SJagan Teki pinctrl-0 = <&uart0_pins_a>; 138d6b1d7d8SJagan Teki status = "okay"; 139d6b1d7d8SJagan Teki}; 140*1caeae37SAndre Przywara 141*1caeae37SAndre Przywara&uart1 { 142*1caeae37SAndre Przywara pinctrl-names = "default"; 143*1caeae37SAndre Przywara pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 144*1caeae37SAndre Przywara status = "okay"; 145*1caeae37SAndre Przywara}; 146