1bf397214SJagan Teki/* 2bf397214SJagan Teki * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3bf397214SJagan Teki * 4bf397214SJagan Teki * This file is dual-licensed: you can use it either under the terms 5bf397214SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual 6bf397214SJagan Teki * licensing only applies to this file, and not this project as a 7bf397214SJagan Teki * whole. 8bf397214SJagan Teki * 9bf397214SJagan Teki * a) This library is free software; you can redistribute it and/or 10bf397214SJagan Teki * modify it under the terms of the GNU General Public License as 11bf397214SJagan Teki * published by the Free Software Foundation; either version 2 of the 12bf397214SJagan Teki * License, or (at your option) any later version. 13bf397214SJagan Teki * 14bf397214SJagan Teki * This library is distributed in the hope that it will be useful, 15bf397214SJagan Teki * but WITHOUT ANY WARRANTY; without even the implied warranty of 16bf397214SJagan Teki * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17bf397214SJagan Teki * GNU General Public License for more details. 18bf397214SJagan Teki * 19bf397214SJagan Teki * Or, alternatively, 20bf397214SJagan Teki * 21bf397214SJagan Teki * b) Permission is hereby granted, free of charge, to any person 22bf397214SJagan Teki * obtaining a copy of this software and associated documentation 23bf397214SJagan Teki * files (the "Software"), to deal in the Software without 24bf397214SJagan Teki * restriction, including without limitation the rights to use, 25bf397214SJagan Teki * copy, modify, merge, publish, distribute, sublicense, and/or 26bf397214SJagan Teki * sell copies of the Software, and to permit persons to whom the 27bf397214SJagan Teki * Software is furnished to do so, subject to the following 28bf397214SJagan Teki * conditions: 29bf397214SJagan Teki * 30bf397214SJagan Teki * The above copyright notice and this permission notice shall be 31bf397214SJagan Teki * included in all copies or substantial portions of the Software. 32bf397214SJagan Teki * 33bf397214SJagan Teki * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34bf397214SJagan Teki * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35bf397214SJagan Teki * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36bf397214SJagan Teki * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37bf397214SJagan Teki * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38bf397214SJagan Teki * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39bf397214SJagan Teki * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40bf397214SJagan Teki * OTHER DEALINGS IN THE SOFTWARE. 41bf397214SJagan Teki */ 42bf397214SJagan Teki 43bf397214SJagan Teki/dts-v1/; 44bf397214SJagan Teki 45bf397214SJagan Teki#include "sun50i-a64.dtsi" 46bf397214SJagan Teki 47bf397214SJagan Teki#include <dt-bindings/gpio/gpio.h> 48bf397214SJagan Teki 49bf397214SJagan Teki/ { 50bf397214SJagan Teki model = "FriendlyARM NanoPi A64"; 51bf397214SJagan Teki compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; 52bf397214SJagan Teki 53bf397214SJagan Teki aliases { 54708db568SAndre Przywara ethernet0 = &emac; 55bf397214SJagan Teki serial0 = &uart0; 56bf397214SJagan Teki }; 57bf397214SJagan Teki 58bf397214SJagan Teki chosen { 59bf397214SJagan Teki stdout-path = "serial0:115200n8"; 60bf397214SJagan Teki }; 61ca6aee21SAndre Przywara 62f4e4453aSJagan Teki hdmi-connector { 63f4e4453aSJagan Teki compatible = "hdmi-connector"; 64f4e4453aSJagan Teki type = "a"; 65f4e4453aSJagan Teki 66f4e4453aSJagan Teki port { 67f4e4453aSJagan Teki hdmi_con_in: endpoint { 68f4e4453aSJagan Teki remote-endpoint = <&hdmi_out_con>; 69f4e4453aSJagan Teki }; 70f4e4453aSJagan Teki }; 71f4e4453aSJagan Teki }; 72f4e4453aSJagan Teki 733e9429efSAndre Przywara leds { 743e9429efSAndre Przywara compatible = "gpio-leds"; 753e9429efSAndre Przywara 763e9429efSAndre Przywara blue { 773e9429efSAndre Przywara label = "nanopi-a64:blue:status"; 783e9429efSAndre Przywara gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ 793e9429efSAndre Przywara }; 803e9429efSAndre Przywara }; 813e9429efSAndre Przywara 82ca6aee21SAndre Przywara wifi_pwrseq: wifi_pwrseq { 83ca6aee21SAndre Przywara compatible = "mmc-pwrseq-simple"; 84ca6aee21SAndre Przywara clocks = <&rtc 1>; 85ca6aee21SAndre Przywara clock-names = "ext_clock"; 86ca6aee21SAndre Przywara reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 87ca6aee21SAndre Przywara }; 88bf397214SJagan Teki}; 89bf397214SJagan Teki 90f4e4453aSJagan Teki&de { 91f4e4453aSJagan Teki status = "okay"; 92f4e4453aSJagan Teki}; 93f4e4453aSJagan Teki 94bf397214SJagan Teki&ehci0 { 95bf397214SJagan Teki status = "okay"; 96bf397214SJagan Teki}; 97bf397214SJagan Teki 98bf397214SJagan Teki&ehci1 { 99bf397214SJagan Teki status = "okay"; 100bf397214SJagan Teki}; 101bf397214SJagan Teki 102708db568SAndre Przywara&emac { 103708db568SAndre Przywara pinctrl-names = "default"; 104708db568SAndre Przywara pinctrl-0 = <&rgmii_pins>; 105708db568SAndre Przywara phy-mode = "rgmii"; 106708db568SAndre Przywara phy-handle = <&ext_rgmii_phy>; 107708db568SAndre Przywara phy-supply = <®_dcdc1>; 108708db568SAndre Przywara status = "okay"; 109708db568SAndre Przywara}; 110708db568SAndre Przywara 111f4e4453aSJagan Teki&hdmi { 112f4e4453aSJagan Teki hvcc-supply = <®_dldo1>; 113f4e4453aSJagan Teki status = "okay"; 114f4e4453aSJagan Teki}; 115f4e4453aSJagan Teki 116f4e4453aSJagan Teki&hdmi_out { 117f4e4453aSJagan Teki hdmi_out_con: endpoint { 118f4e4453aSJagan Teki remote-endpoint = <&hdmi_con_in>; 119f4e4453aSJagan Teki }; 120f4e4453aSJagan Teki}; 121f4e4453aSJagan Teki 122bf397214SJagan Teki/* i2c1 connected with gpio headers like pine64, bananapi */ 123bf397214SJagan Teki&i2c1 { 124bf397214SJagan Teki pinctrl-names = "default"; 125bf397214SJagan Teki pinctrl-0 = <&i2c1_pins>; 126bf397214SJagan Teki status = "disabled"; 127bf397214SJagan Teki}; 128bf397214SJagan Teki 129bf397214SJagan Teki&i2c1_pins { 130bf397214SJagan Teki bias-pull-up; 131bf397214SJagan Teki}; 132bf397214SJagan Teki 133708db568SAndre Przywara&mdio { 134708db568SAndre Przywara ext_rgmii_phy: ethernet-phy@1 { 135708db568SAndre Przywara compatible = "ethernet-phy-ieee802.3-c22"; 136708db568SAndre Przywara reg = <7>; 137708db568SAndre Przywara }; 138708db568SAndre Przywara}; 139708db568SAndre Przywara 140bf397214SJagan Teki&mmc0 { 141bf397214SJagan Teki pinctrl-names = "default"; 142bf397214SJagan Teki pinctrl-0 = <&mmc0_pins>; 143bf397214SJagan Teki vmmc-supply = <®_dcdc1>; 144b75cb68dSTuomas Tynkkynen cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 145bf397214SJagan Teki disable-wp; 146bf397214SJagan Teki bus-width = <4>; 147bf397214SJagan Teki status = "okay"; 148bf397214SJagan Teki}; 149bf397214SJagan Teki 150ca6aee21SAndre Przywara&mmc1 { 151ca6aee21SAndre Przywara pinctrl-names = "default"; 152ca6aee21SAndre Przywara pinctrl-0 = <&mmc1_pins>; 153ca6aee21SAndre Przywara vmmc-supply = <®_dcdc1>; 154ca6aee21SAndre Przywara vqmmc-supply = <®_dldo4>; 155ca6aee21SAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 156ca6aee21SAndre Przywara bus-width = <4>; 157ca6aee21SAndre Przywara non-removable; 158ca6aee21SAndre Przywara status = "okay"; 159ca6aee21SAndre Przywara 160ca6aee21SAndre Przywara rtl8189etv: wifi@1 { 161ca6aee21SAndre Przywara reg = <1>; 162ca6aee21SAndre Przywara interrupt-parent = <&r_pio>; 163ca6aee21SAndre Przywara interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 164ca6aee21SAndre Przywara interrupt-names = "host-wake"; 165ca6aee21SAndre Przywara }; 166ca6aee21SAndre Przywara}; 167ca6aee21SAndre Przywara 168bf397214SJagan Teki&ohci0 { 169bf397214SJagan Teki status = "okay"; 170bf397214SJagan Teki}; 171bf397214SJagan Teki 172bf397214SJagan Teki&ohci1 { 173bf397214SJagan Teki status = "okay"; 174bf397214SJagan Teki}; 175bf397214SJagan Teki 176bf397214SJagan Teki&r_rsb { 177bf397214SJagan Teki status = "okay"; 178bf397214SJagan Teki 179bf397214SJagan Teki axp803: pmic@3a3 { 180bf397214SJagan Teki compatible = "x-powers,axp803"; 181bf397214SJagan Teki reg = <0x3a3>; 182bf397214SJagan Teki interrupt-parent = <&r_intc>; 183bf397214SJagan Teki interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 184bf397214SJagan Teki }; 185bf397214SJagan Teki}; 186bf397214SJagan Teki 187bf397214SJagan Teki#include "axp803.dtsi" 188bf397214SJagan Teki 189a24270afSChen-Yu Tsai&ac_power_supply { 190a24270afSChen-Yu Tsai status = "okay"; 191a24270afSChen-Yu Tsai}; 192a24270afSChen-Yu Tsai 193bf397214SJagan Teki®_aldo2 { 194bf397214SJagan Teki regulator-always-on; 195bf397214SJagan Teki regulator-min-microvolt = <1800000>; 196bf397214SJagan Teki regulator-max-microvolt = <3300000>; 197bf397214SJagan Teki regulator-name = "vcc-pl"; 198bf397214SJagan Teki}; 199bf397214SJagan Teki 200bf397214SJagan Teki®_aldo3 { 201bf397214SJagan Teki regulator-always-on; 202bf397214SJagan Teki regulator-min-microvolt = <3000000>; 203bf397214SJagan Teki regulator-max-microvolt = <3000000>; 204bf397214SJagan Teki regulator-name = "vcc-pll-avcc"; 205bf397214SJagan Teki}; 206bf397214SJagan Teki 207bf397214SJagan Teki®_dcdc1 { 208bf397214SJagan Teki regulator-always-on; 209480f58cdSAndre Przywara regulator-min-microvolt = <3300000>; 210480f58cdSAndre Przywara regulator-max-microvolt = <3300000>; 211480f58cdSAndre Przywara regulator-name = "vcc-3v3"; 212bf397214SJagan Teki}; 213bf397214SJagan Teki 214bf397214SJagan Teki®_dcdc2 { 215bf397214SJagan Teki regulator-always-on; 216bf397214SJagan Teki regulator-min-microvolt = <1040000>; 217bf397214SJagan Teki regulator-max-microvolt = <1300000>; 218bf397214SJagan Teki regulator-name = "vdd-cpux"; 219bf397214SJagan Teki}; 220bf397214SJagan Teki 221bf397214SJagan Teki/* DCDC3 is polyphased with DCDC2 */ 222bf397214SJagan Teki 223bf397214SJagan Teki®_dcdc5 { 224bf397214SJagan Teki regulator-always-on; 225bf397214SJagan Teki regulator-min-microvolt = <1500000>; 226bf397214SJagan Teki regulator-max-microvolt = <1500000>; 227bf397214SJagan Teki regulator-name = "vcc-dram"; 228bf397214SJagan Teki}; 229bf397214SJagan Teki 230bf397214SJagan Teki®_dcdc6 { 231bf397214SJagan Teki regulator-always-on; 232bf397214SJagan Teki regulator-min-microvolt = <1100000>; 233bf397214SJagan Teki regulator-max-microvolt = <1100000>; 234bf397214SJagan Teki regulator-name = "vdd-sys"; 235bf397214SJagan Teki}; 236bf397214SJagan Teki 237bf397214SJagan Teki®_dldo1 { 238bf397214SJagan Teki regulator-always-on; 239bf397214SJagan Teki regulator-min-microvolt = <3300000>; 240bf397214SJagan Teki regulator-max-microvolt = <3300000>; 241bf397214SJagan Teki regulator-name = "vcc-hdmi-dsi"; 242bf397214SJagan Teki}; 243bf397214SJagan Teki 244bf397214SJagan Teki®_dldo4 { 245bf397214SJagan Teki regulator-always-on; 246bf397214SJagan Teki regulator-min-microvolt = <3000000>; 247bf397214SJagan Teki regulator-max-microvolt = <3000000>; 248bf397214SJagan Teki regulator-name = "vcc-pg-wifi-io"; 249bf397214SJagan Teki}; 250bf397214SJagan Teki 251bf397214SJagan Teki®_eldo1 { 252bf397214SJagan Teki regulator-min-microvolt = <1800000>; 253bf397214SJagan Teki regulator-max-microvolt = <1800000>; 254bf397214SJagan Teki regulator-name = "cpvdd"; 255bf397214SJagan Teki}; 256bf397214SJagan Teki 257bf397214SJagan Teki®_fldo1 { 258bf397214SJagan Teki regulator-min-microvolt = <1200000>; 259bf397214SJagan Teki regulator-max-microvolt = <1200000>; 260bf397214SJagan Teki regulator-name = "vcc-1v2-hsic"; 261bf397214SJagan Teki}; 262bf397214SJagan Teki 263bf397214SJagan Teki/* 264bf397214SJagan Teki * The A64 chip cannot work without this regulator off, although 265bf397214SJagan Teki * it seems to be only driving the AR100 core. 266bf397214SJagan Teki * Maybe we don't still know well about CPUs domain. 267bf397214SJagan Teki */ 268bf397214SJagan Teki®_fldo2 { 269bf397214SJagan Teki regulator-always-on; 270bf397214SJagan Teki regulator-min-microvolt = <1100000>; 271bf397214SJagan Teki regulator-max-microvolt = <1100000>; 272bf397214SJagan Teki regulator-name = "vdd-cpus"; 273bf397214SJagan Teki}; 274bf397214SJagan Teki 275bf397214SJagan Teki®_rtc_ldo { 276bf397214SJagan Teki regulator-name = "vcc-rtc"; 277bf397214SJagan Teki}; 278bf397214SJagan Teki 2795cbef9f9SIcenowy Zheng&simplefb_hdmi { 2805cbef9f9SIcenowy Zheng vcc-hdmi-supply = <®_dldo1>; 2815cbef9f9SIcenowy Zheng}; 2825cbef9f9SIcenowy Zheng 283bf397214SJagan Teki&uart0 { 284bf397214SJagan Teki pinctrl-names = "default"; 285d91ebb95SChen-Yu Tsai pinctrl-0 = <&uart0_pb_pins>; 286bf397214SJagan Teki status = "okay"; 287bf397214SJagan Teki}; 288bf397214SJagan Teki 289bf397214SJagan Teki&usbphy { 290bf397214SJagan Teki status = "okay"; 291bf397214SJagan Teki}; 292