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