1868e3715SJagan Teki/* 2*1caeae37SAndre Przywara * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz> 3*1caeae37SAndre Przywara * 4*1caeae37SAndre Przywara * Based on sun50i-h5-orangepi-pc2.dts, which is: 5*1caeae37SAndre Przywara * Copyright (C) 2016 ARM Ltd. 6868e3715SJagan Teki * 7868e3715SJagan Teki * This file is dual-licensed: you can use it either under the terms 8868e3715SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual 9868e3715SJagan Teki * licensing only applies to this file, and not this project as a 10868e3715SJagan Teki * whole. 11868e3715SJagan Teki * 12*1caeae37SAndre Przywara * a) This file is free software; you can redistribute it and/or 13868e3715SJagan Teki * modify it under the terms of the GNU General Public License as 14868e3715SJagan Teki * published by the Free Software Foundation; either version 2 of the 15868e3715SJagan Teki * License, or (at your option) any later version. 16868e3715SJagan Teki * 17*1caeae37SAndre Przywara * This file is distributed in the hope that it will be useful, 18868e3715SJagan Teki * but WITHOUT ANY WARRANTY; without even the implied warranty of 19868e3715SJagan Teki * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20868e3715SJagan Teki * GNU General Public License for more details. 21868e3715SJagan Teki * 22868e3715SJagan Teki * Or, alternatively, 23868e3715SJagan Teki * 24868e3715SJagan Teki * b) Permission is hereby granted, free of charge, to any person 25868e3715SJagan Teki * obtaining a copy of this software and associated documentation 26868e3715SJagan Teki * files (the "Software"), to deal in the Software without 27868e3715SJagan Teki * restriction, including without limitation the rights to use, 28868e3715SJagan Teki * copy, modify, merge, publish, distribute, sublicense, and/or 29868e3715SJagan Teki * sell copies of the Software, and to permit persons to whom the 30868e3715SJagan Teki * Software is furnished to do so, subject to the following 31868e3715SJagan Teki * conditions: 32868e3715SJagan Teki * 33868e3715SJagan Teki * The above copyright notice and this permission notice shall be 34868e3715SJagan Teki * included in all copies or substantial portions of the Software. 35868e3715SJagan Teki * 36868e3715SJagan Teki * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37868e3715SJagan Teki * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38868e3715SJagan Teki * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39868e3715SJagan Teki * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40868e3715SJagan Teki * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41868e3715SJagan Teki * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42868e3715SJagan Teki * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43868e3715SJagan Teki * OTHER DEALINGS IN THE SOFTWARE. 44868e3715SJagan Teki */ 45868e3715SJagan Teki 46868e3715SJagan Teki/dts-v1/; 47868e3715SJagan Teki#include "sun50i-h5.dtsi" 48868e3715SJagan Teki 49868e3715SJagan Teki#include <dt-bindings/gpio/gpio.h> 50*1caeae37SAndre Przywara#include <dt-bindings/input/input.h> 51868e3715SJagan Teki 52868e3715SJagan Teki/ { 53*1caeae37SAndre Przywara model = "Xunlong Orange Pi Prime"; 54868e3715SJagan Teki compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5"; 55868e3715SJagan Teki 56868e3715SJagan Teki aliases { 57*1caeae37SAndre Przywara ethernet0 = &emac; 58868e3715SJagan Teki serial0 = &uart0; 59868e3715SJagan Teki }; 60868e3715SJagan Teki 61868e3715SJagan Teki chosen { 62868e3715SJagan Teki stdout-path = "serial0:115200n8"; 63868e3715SJagan Teki }; 64868e3715SJagan Teki 65*1caeae37SAndre Przywara connector { 66*1caeae37SAndre Przywara compatible = "hdmi-connector"; 67*1caeae37SAndre Przywara type = "a"; 68*1caeae37SAndre Przywara 69*1caeae37SAndre Przywara port { 70*1caeae37SAndre Przywara hdmi_con_in: endpoint { 71*1caeae37SAndre Przywara remote-endpoint = <&hdmi_out_con>; 72*1caeae37SAndre Przywara }; 73*1caeae37SAndre Przywara }; 74868e3715SJagan Teki }; 75868e3715SJagan Teki 76*1caeae37SAndre Przywara leds { 77*1caeae37SAndre Przywara compatible = "gpio-leds"; 78*1caeae37SAndre Przywara 79*1caeae37SAndre Przywara pwr { 80*1caeae37SAndre Przywara label = "orangepi:green:pwr"; 81*1caeae37SAndre Przywara gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; 82*1caeae37SAndre Przywara default-state = "on"; 83*1caeae37SAndre Przywara }; 84*1caeae37SAndre Przywara 85*1caeae37SAndre Przywara status { 86*1caeae37SAndre Przywara label = "orangepi:red:status"; 87*1caeae37SAndre Przywara gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>; 88*1caeae37SAndre Przywara }; 89*1caeae37SAndre Przywara }; 90*1caeae37SAndre Przywara 91*1caeae37SAndre Przywara r-gpio-keys { 92*1caeae37SAndre Przywara compatible = "gpio-keys"; 93*1caeae37SAndre Przywara 94*1caeae37SAndre Przywara sw4 { 95*1caeae37SAndre Przywara label = "sw4"; 96*1caeae37SAndre Przywara linux,code = <BTN_0>; 97*1caeae37SAndre Przywara gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 98*1caeae37SAndre Przywara }; 99*1caeae37SAndre Przywara }; 100*1caeae37SAndre Przywara 101*1caeae37SAndre Przywara reg_gmac_3v3: gmac-3v3 { 102*1caeae37SAndre Przywara compatible = "regulator-fixed"; 103*1caeae37SAndre Przywara regulator-name = "gmac-3v3"; 104*1caeae37SAndre Przywara regulator-min-microvolt = <3300000>; 105*1caeae37SAndre Przywara regulator-max-microvolt = <3300000>; 106*1caeae37SAndre Przywara startup-delay-us = <100000>; 107*1caeae37SAndre Przywara enable-active-high; 108*1caeae37SAndre Przywara gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 109*1caeae37SAndre Przywara }; 110*1caeae37SAndre Przywara 111868e3715SJagan Teki reg_vcc3v3: vcc3v3 { 112868e3715SJagan Teki compatible = "regulator-fixed"; 113868e3715SJagan Teki regulator-name = "vcc3v3"; 114868e3715SJagan Teki regulator-min-microvolt = <3300000>; 115868e3715SJagan Teki regulator-max-microvolt = <3300000>; 116868e3715SJagan Teki }; 117*1caeae37SAndre Przywara 118*1caeae37SAndre Przywara reg_usb0_vbus: usb0-vbus { 119*1caeae37SAndre Przywara compatible = "regulator-fixed"; 120*1caeae37SAndre Przywara regulator-name = "usb0-vbus"; 121*1caeae37SAndre Przywara regulator-min-microvolt = <5000000>; 122*1caeae37SAndre Przywara regulator-max-microvolt = <5000000>; 123*1caeae37SAndre Przywara enable-active-high; 124*1caeae37SAndre Przywara gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 125*1caeae37SAndre Przywara status = "okay"; 126868e3715SJagan Teki }; 127*1caeae37SAndre Przywara 128*1caeae37SAndre Przywara wifi_pwrseq: wifi_pwrseq { 129*1caeae37SAndre Przywara compatible = "mmc-pwrseq-simple"; 130*1caeae37SAndre Przywara reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */ 131*1caeae37SAndre Przywara }; 132*1caeae37SAndre Przywara}; 133*1caeae37SAndre Przywara 134*1caeae37SAndre Przywara&codec { 135*1caeae37SAndre Przywara allwinner,audio-routing = 136*1caeae37SAndre Przywara "Line Out", "LINEOUT", 137*1caeae37SAndre Przywara "MIC1", "Mic", 138*1caeae37SAndre Przywara "Mic", "MBIAS"; 139*1caeae37SAndre Przywara status = "okay"; 140*1caeae37SAndre Przywara}; 141*1caeae37SAndre Przywara 142*1caeae37SAndre Przywara&de { 143*1caeae37SAndre Przywara status = "okay"; 144868e3715SJagan Teki}; 145868e3715SJagan Teki 14682843d8dSJagan Teki&ehci0 { 14782843d8dSJagan Teki status = "okay"; 14882843d8dSJagan Teki}; 14982843d8dSJagan Teki 15023cd00abSJagan Teki&ehci1 { 15123cd00abSJagan Teki status = "okay"; 15223cd00abSJagan Teki}; 15323cd00abSJagan Teki 154*1caeae37SAndre Przywara&ehci2 { 155*1caeae37SAndre Przywara status = "okay"; 156*1caeae37SAndre Przywara}; 157*1caeae37SAndre Przywara 158*1caeae37SAndre Przywara&ehci3 { 159*1caeae37SAndre Przywara status = "okay"; 160*1caeae37SAndre Przywara}; 161*1caeae37SAndre Przywara 162*1caeae37SAndre Przywara&emac { 163*1caeae37SAndre Przywara pinctrl-names = "default"; 164*1caeae37SAndre Przywara pinctrl-0 = <&emac_rgmii_pins>; 165*1caeae37SAndre Przywara phy-supply = <®_gmac_3v3>; 166*1caeae37SAndre Przywara phy-handle = <&ext_rgmii_phy>; 167*1caeae37SAndre Przywara phy-mode = "rgmii"; 168*1caeae37SAndre Przywara status = "okay"; 169*1caeae37SAndre Przywara}; 170*1caeae37SAndre Przywara 171*1caeae37SAndre Przywara&external_mdio { 172*1caeae37SAndre Przywara ext_rgmii_phy: ethernet-phy@1 { 173*1caeae37SAndre Przywara compatible = "ethernet-phy-ieee802.3-c22"; 174*1caeae37SAndre Przywara reg = <1>; 175*1caeae37SAndre Przywara }; 176*1caeae37SAndre Przywara}; 177*1caeae37SAndre Przywara 178*1caeae37SAndre Przywara&hdmi { 179*1caeae37SAndre Przywara status = "okay"; 180*1caeae37SAndre Przywara}; 181*1caeae37SAndre Przywara 182*1caeae37SAndre Przywara&hdmi_out { 183*1caeae37SAndre Przywara hdmi_out_con: endpoint { 184*1caeae37SAndre Przywara remote-endpoint = <&hdmi_con_in>; 185*1caeae37SAndre Przywara }; 186*1caeae37SAndre Przywara}; 187*1caeae37SAndre Przywara 188*1caeae37SAndre Przywara&ir { 189*1caeae37SAndre Przywara pinctrl-names = "default"; 190*1caeae37SAndre Przywara pinctrl-0 = <&ir_pins_a>; 191*1caeae37SAndre Przywara status = "okay"; 192*1caeae37SAndre Przywara}; 193*1caeae37SAndre Przywara 194868e3715SJagan Teki&mmc0 { 195868e3715SJagan Teki vmmc-supply = <®_vcc3v3>; 196868e3715SJagan Teki bus-width = <4>; 197*1caeae37SAndre Przywara cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 198*1caeae37SAndre Przywara status = "okay"; 199*1caeae37SAndre Przywara}; 200*1caeae37SAndre Przywara 201*1caeae37SAndre Przywara&mmc1 { 202*1caeae37SAndre Przywara vmmc-supply = <®_vcc3v3>; 203*1caeae37SAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 204*1caeae37SAndre Przywara bus-width = <4>; 205*1caeae37SAndre Przywara non-removable; 206868e3715SJagan Teki status = "okay"; 207868e3715SJagan Teki}; 208868e3715SJagan Teki 20982843d8dSJagan Teki&ohci0 { 21082843d8dSJagan Teki status = "okay"; 21182843d8dSJagan Teki}; 21282843d8dSJagan Teki 21323cd00abSJagan Teki&ohci1 { 21423cd00abSJagan Teki status = "okay"; 21523cd00abSJagan Teki}; 21623cd00abSJagan Teki 217*1caeae37SAndre Przywara&ohci2 { 218*1caeae37SAndre Przywara status = "okay"; 219*1caeae37SAndre Przywara}; 220*1caeae37SAndre Przywara 221*1caeae37SAndre Przywara&ohci3 { 222*1caeae37SAndre Przywara status = "okay"; 223*1caeae37SAndre Przywara}; 224*1caeae37SAndre Przywara 225868e3715SJagan Teki&uart0 { 226868e3715SJagan Teki pinctrl-names = "default"; 227868e3715SJagan Teki pinctrl-0 = <&uart0_pins_a>; 228868e3715SJagan Teki status = "okay"; 229868e3715SJagan Teki}; 230868e3715SJagan Teki 231*1caeae37SAndre Przywara&uart1 { 232*1caeae37SAndre Przywara pinctrl-names = "default"; 233*1caeae37SAndre Przywara pinctrl-0 = <&uart1_pins>; 234*1caeae37SAndre Przywara status = "disabled"; 235*1caeae37SAndre Przywara}; 236*1caeae37SAndre Przywara 237*1caeae37SAndre Przywara&uart2 { 238*1caeae37SAndre Przywara pinctrl-names = "default"; 239*1caeae37SAndre Przywara pinctrl-0 = <&uart2_pins>; 240*1caeae37SAndre Przywara status = "disabled"; 241*1caeae37SAndre Przywara}; 242*1caeae37SAndre Przywara 24382843d8dSJagan Teki&usb_otg { 24482843d8dSJagan Teki dr_mode = "otg"; 24582843d8dSJagan Teki status = "okay"; 24682843d8dSJagan Teki}; 24782843d8dSJagan Teki 248868e3715SJagan Teki&usbphy { 249*1caeae37SAndre Przywara /* USB Type-A ports' VBUS is always on */ 250*1caeae37SAndre Przywara usb0_id_det-gpios = <&pio 0 21 GPIO_ACTIVE_HIGH>; /* PA21 */ 251*1caeae37SAndre Przywara usb0_vbus-supply = <®_usb0_vbus>; 252868e3715SJagan Teki status = "okay"; 253868e3715SJagan Teki}; 254