1b4b8f2c9SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cabbaed7SClément Péron// Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3bf397214SJagan Teki 4bf397214SJagan Teki/dts-v1/; 5bf397214SJagan Teki 6bf397214SJagan Teki#include "sun50i-a64.dtsi" 7bf397214SJagan Teki 8bf397214SJagan Teki#include <dt-bindings/gpio/gpio.h> 9bf397214SJagan Teki 10bf397214SJagan Teki/ { 11bf397214SJagan Teki model = "FriendlyARM NanoPi A64"; 12bf397214SJagan Teki compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; 13bf397214SJagan Teki 14bf397214SJagan Teki aliases { 15708db568SAndre Przywara ethernet0 = &emac; 16bf397214SJagan Teki serial0 = &uart0; 17bf397214SJagan Teki }; 18bf397214SJagan Teki 19bf397214SJagan Teki chosen { 20bf397214SJagan Teki stdout-path = "serial0:115200n8"; 21bf397214SJagan Teki }; 22ca6aee21SAndre Przywara 23f4e4453aSJagan Teki hdmi-connector { 24f4e4453aSJagan Teki compatible = "hdmi-connector"; 25f4e4453aSJagan Teki type = "a"; 26f4e4453aSJagan Teki 27f4e4453aSJagan Teki port { 28f4e4453aSJagan Teki hdmi_con_in: endpoint { 29f4e4453aSJagan Teki remote-endpoint = <&hdmi_out_con>; 30f4e4453aSJagan Teki }; 31f4e4453aSJagan Teki }; 32f4e4453aSJagan Teki }; 33f4e4453aSJagan Teki 343e9429efSAndre Przywara leds { 353e9429efSAndre Przywara compatible = "gpio-leds"; 363e9429efSAndre Przywara 373e9429efSAndre Przywara blue { 383e9429efSAndre Przywara label = "nanopi-a64:blue:status"; 393e9429efSAndre Przywara gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ 403e9429efSAndre Przywara }; 413e9429efSAndre Przywara }; 423e9429efSAndre Przywara 43ca6aee21SAndre Przywara wifi_pwrseq: wifi_pwrseq { 44ca6aee21SAndre Przywara compatible = "mmc-pwrseq-simple"; 45ca6aee21SAndre Przywara clocks = <&rtc 1>; 46ca6aee21SAndre Przywara clock-names = "ext_clock"; 47ca6aee21SAndre Przywara reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 48ca6aee21SAndre Przywara }; 49bf397214SJagan Teki}; 50bf397214SJagan Teki 51f4e4453aSJagan Teki&de { 52f4e4453aSJagan Teki status = "okay"; 53f4e4453aSJagan Teki}; 54f4e4453aSJagan Teki 55bf397214SJagan Teki&ehci0 { 56bf397214SJagan Teki status = "okay"; 57bf397214SJagan Teki}; 58bf397214SJagan Teki 59bf397214SJagan Teki&ehci1 { 60bf397214SJagan Teki status = "okay"; 61bf397214SJagan Teki}; 62bf397214SJagan Teki 63708db568SAndre Przywara&emac { 64708db568SAndre Przywara pinctrl-names = "default"; 65708db568SAndre Przywara pinctrl-0 = <&rgmii_pins>; 66708db568SAndre Przywara phy-mode = "rgmii"; 67708db568SAndre Przywara phy-handle = <&ext_rgmii_phy>; 68708db568SAndre Przywara phy-supply = <®_dcdc1>; 69708db568SAndre Przywara status = "okay"; 70708db568SAndre Przywara}; 71708db568SAndre Przywara 72f4e4453aSJagan Teki&hdmi { 73f4e4453aSJagan Teki hvcc-supply = <®_dldo1>; 74f4e4453aSJagan Teki status = "okay"; 75f4e4453aSJagan Teki}; 76f4e4453aSJagan Teki 77f4e4453aSJagan Teki&hdmi_out { 78f4e4453aSJagan Teki hdmi_out_con: endpoint { 79f4e4453aSJagan Teki remote-endpoint = <&hdmi_con_in>; 80f4e4453aSJagan Teki }; 81f4e4453aSJagan Teki}; 82f4e4453aSJagan Teki 83bf397214SJagan Teki/* i2c1 connected with gpio headers like pine64, bananapi */ 84bf397214SJagan Teki&i2c1_pins { 85bf397214SJagan Teki bias-pull-up; 86bf397214SJagan Teki}; 87bf397214SJagan Teki 88708db568SAndre Przywara&mdio { 89708db568SAndre Przywara ext_rgmii_phy: ethernet-phy@1 { 90708db568SAndre Przywara compatible = "ethernet-phy-ieee802.3-c22"; 91708db568SAndre Przywara reg = <7>; 92708db568SAndre Przywara }; 93708db568SAndre Przywara}; 94708db568SAndre Przywara 95bf397214SJagan Teki&mmc0 { 96bf397214SJagan Teki pinctrl-names = "default"; 97bf397214SJagan Teki pinctrl-0 = <&mmc0_pins>; 98bf397214SJagan Teki vmmc-supply = <®_dcdc1>; 99b75cb68dSTuomas Tynkkynen cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 100bf397214SJagan Teki disable-wp; 101bf397214SJagan Teki bus-width = <4>; 102bf397214SJagan Teki status = "okay"; 103bf397214SJagan Teki}; 104bf397214SJagan Teki 105ca6aee21SAndre Przywara&mmc1 { 106ca6aee21SAndre Przywara pinctrl-names = "default"; 107ca6aee21SAndre Przywara pinctrl-0 = <&mmc1_pins>; 108ca6aee21SAndre Przywara vmmc-supply = <®_dcdc1>; 109ca6aee21SAndre Przywara vqmmc-supply = <®_dldo4>; 110ca6aee21SAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 111ca6aee21SAndre Przywara bus-width = <4>; 112ca6aee21SAndre Przywara non-removable; 113ca6aee21SAndre Przywara status = "okay"; 114ca6aee21SAndre Przywara 115ca6aee21SAndre Przywara rtl8189etv: wifi@1 { 116ca6aee21SAndre Przywara reg = <1>; 117ca6aee21SAndre Przywara interrupt-parent = <&r_pio>; 118ca6aee21SAndre Przywara interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 119ca6aee21SAndre Przywara interrupt-names = "host-wake"; 120ca6aee21SAndre Przywara }; 121ca6aee21SAndre Przywara}; 122ca6aee21SAndre Przywara 123bf397214SJagan Teki&ohci0 { 124bf397214SJagan Teki status = "okay"; 125bf397214SJagan Teki}; 126bf397214SJagan Teki 127bf397214SJagan Teki&ohci1 { 128bf397214SJagan Teki status = "okay"; 129bf397214SJagan Teki}; 130bf397214SJagan Teki 131bf397214SJagan Teki&r_rsb { 132bf397214SJagan Teki status = "okay"; 133bf397214SJagan Teki 134bf397214SJagan Teki axp803: pmic@3a3 { 135bf397214SJagan Teki compatible = "x-powers,axp803"; 136bf397214SJagan Teki reg = <0x3a3>; 137bf397214SJagan Teki interrupt-parent = <&r_intc>; 138bf397214SJagan Teki interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 139bf397214SJagan Teki }; 140bf397214SJagan Teki}; 141bf397214SJagan Teki 142bf397214SJagan Teki#include "axp803.dtsi" 143bf397214SJagan Teki 144a24270afSChen-Yu Tsai&ac_power_supply { 145a24270afSChen-Yu Tsai status = "okay"; 146a24270afSChen-Yu Tsai}; 147a24270afSChen-Yu Tsai 148bf397214SJagan Teki®_aldo2 { 149bf397214SJagan Teki regulator-always-on; 150bf397214SJagan Teki regulator-min-microvolt = <1800000>; 151bf397214SJagan Teki regulator-max-microvolt = <3300000>; 152bf397214SJagan Teki regulator-name = "vcc-pl"; 153bf397214SJagan Teki}; 154bf397214SJagan Teki 155bf397214SJagan Teki®_aldo3 { 156bf397214SJagan Teki regulator-always-on; 157bf397214SJagan Teki regulator-min-microvolt = <3000000>; 158bf397214SJagan Teki regulator-max-microvolt = <3000000>; 159bf397214SJagan Teki regulator-name = "vcc-pll-avcc"; 160bf397214SJagan Teki}; 161bf397214SJagan Teki 162bf397214SJagan Teki®_dcdc1 { 163bf397214SJagan Teki regulator-always-on; 164480f58cdSAndre Przywara regulator-min-microvolt = <3300000>; 165480f58cdSAndre Przywara regulator-max-microvolt = <3300000>; 166480f58cdSAndre Przywara regulator-name = "vcc-3v3"; 167bf397214SJagan Teki}; 168bf397214SJagan Teki 169bf397214SJagan Teki®_dcdc2 { 170bf397214SJagan Teki regulator-always-on; 171bf397214SJagan Teki regulator-min-microvolt = <1040000>; 172bf397214SJagan Teki regulator-max-microvolt = <1300000>; 173bf397214SJagan Teki regulator-name = "vdd-cpux"; 174bf397214SJagan Teki}; 175bf397214SJagan Teki 176bf397214SJagan Teki/* DCDC3 is polyphased with DCDC2 */ 177bf397214SJagan Teki 178bf397214SJagan Teki®_dcdc5 { 179bf397214SJagan Teki regulator-always-on; 180bf397214SJagan Teki regulator-min-microvolt = <1500000>; 181bf397214SJagan Teki regulator-max-microvolt = <1500000>; 182bf397214SJagan Teki regulator-name = "vcc-dram"; 183bf397214SJagan Teki}; 184bf397214SJagan Teki 185bf397214SJagan Teki®_dcdc6 { 186bf397214SJagan Teki regulator-always-on; 187bf397214SJagan Teki regulator-min-microvolt = <1100000>; 188bf397214SJagan Teki regulator-max-microvolt = <1100000>; 189bf397214SJagan Teki regulator-name = "vdd-sys"; 190bf397214SJagan Teki}; 191bf397214SJagan Teki 192bf397214SJagan Teki®_dldo1 { 193bf397214SJagan Teki regulator-always-on; 194bf397214SJagan Teki regulator-min-microvolt = <3300000>; 195bf397214SJagan Teki regulator-max-microvolt = <3300000>; 196bf397214SJagan Teki regulator-name = "vcc-hdmi-dsi"; 197bf397214SJagan Teki}; 198bf397214SJagan Teki 199bf397214SJagan Teki®_dldo4 { 200bf397214SJagan Teki regulator-always-on; 201bf397214SJagan Teki regulator-min-microvolt = <3000000>; 202bf397214SJagan Teki regulator-max-microvolt = <3000000>; 203bf397214SJagan Teki regulator-name = "vcc-pg-wifi-io"; 204bf397214SJagan Teki}; 205bf397214SJagan Teki 206bf397214SJagan Teki®_eldo1 { 207bf397214SJagan Teki regulator-min-microvolt = <1800000>; 208bf397214SJagan Teki regulator-max-microvolt = <1800000>; 209bf397214SJagan Teki regulator-name = "cpvdd"; 210bf397214SJagan Teki}; 211bf397214SJagan Teki 212bf397214SJagan Teki®_fldo1 { 213bf397214SJagan Teki regulator-min-microvolt = <1200000>; 214bf397214SJagan Teki regulator-max-microvolt = <1200000>; 215bf397214SJagan Teki regulator-name = "vcc-1v2-hsic"; 216bf397214SJagan Teki}; 217bf397214SJagan Teki 218bf397214SJagan Teki/* 219bf397214SJagan Teki * The A64 chip cannot work without this regulator off, although 220bf397214SJagan Teki * it seems to be only driving the AR100 core. 221bf397214SJagan Teki * Maybe we don't still know well about CPUs domain. 222bf397214SJagan Teki */ 223bf397214SJagan Teki®_fldo2 { 224bf397214SJagan Teki regulator-always-on; 225bf397214SJagan Teki regulator-min-microvolt = <1100000>; 226bf397214SJagan Teki regulator-max-microvolt = <1100000>; 227bf397214SJagan Teki regulator-name = "vdd-cpus"; 228bf397214SJagan Teki}; 229bf397214SJagan Teki 230bf397214SJagan Teki®_rtc_ldo { 231bf397214SJagan Teki regulator-name = "vcc-rtc"; 232bf397214SJagan Teki}; 233bf397214SJagan Teki 2345cbef9f9SIcenowy Zheng&simplefb_hdmi { 2355cbef9f9SIcenowy Zheng vcc-hdmi-supply = <®_dldo1>; 2365cbef9f9SIcenowy Zheng}; 2375cbef9f9SIcenowy Zheng 238bf397214SJagan Teki&uart0 { 239bf397214SJagan Teki pinctrl-names = "default"; 240d91ebb95SChen-Yu Tsai pinctrl-0 = <&uart0_pb_pins>; 241bf397214SJagan Teki status = "okay"; 242bf397214SJagan Teki}; 243bf397214SJagan Teki 244bf397214SJagan Teki&usbphy { 245bf397214SJagan Teki status = "okay"; 246bf397214SJagan Teki}; 247