1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot// Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3c66ec88fSEmmanuel Vadot 4c66ec88fSEmmanuel Vadot/dts-v1/; 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot#include "sun50i-a64.dtsi" 7c66ec88fSEmmanuel Vadot#include "sun50i-a64-cpu-opp.dtsi" 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 10c66ec88fSEmmanuel Vadot 11c66ec88fSEmmanuel Vadot/ { 12c66ec88fSEmmanuel Vadot model = "FriendlyARM NanoPi A64"; 13c66ec88fSEmmanuel Vadot compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; 14c66ec88fSEmmanuel Vadot 15c66ec88fSEmmanuel Vadot aliases { 16c66ec88fSEmmanuel Vadot ethernet0 = &emac; 17c66ec88fSEmmanuel Vadot serial0 = &uart0; 18c66ec88fSEmmanuel Vadot }; 19c66ec88fSEmmanuel Vadot 20c66ec88fSEmmanuel Vadot chosen { 21c66ec88fSEmmanuel Vadot stdout-path = "serial0:115200n8"; 22c66ec88fSEmmanuel Vadot }; 23c66ec88fSEmmanuel Vadot 24c66ec88fSEmmanuel Vadot hdmi-connector { 25c66ec88fSEmmanuel Vadot compatible = "hdmi-connector"; 26c66ec88fSEmmanuel Vadot type = "a"; 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot port { 29c66ec88fSEmmanuel Vadot hdmi_con_in: endpoint { 30c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_out_con>; 31c66ec88fSEmmanuel Vadot }; 32c66ec88fSEmmanuel Vadot }; 33c66ec88fSEmmanuel Vadot }; 34c66ec88fSEmmanuel Vadot 35c66ec88fSEmmanuel Vadot leds { 36c66ec88fSEmmanuel Vadot compatible = "gpio-leds"; 37c66ec88fSEmmanuel Vadot 385def4c47SEmmanuel Vadot led { 39c66ec88fSEmmanuel Vadot label = "nanopi-a64:blue:status"; 40c66ec88fSEmmanuel Vadot gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ 41c66ec88fSEmmanuel Vadot }; 42c66ec88fSEmmanuel Vadot }; 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot wifi_pwrseq: wifi_pwrseq { 45c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 46*b97ee269SEmmanuel Vadot clocks = <&rtc CLK_OSC32K_FANOUT>; 47c66ec88fSEmmanuel Vadot clock-names = "ext_clock"; 48c66ec88fSEmmanuel Vadot reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 49c66ec88fSEmmanuel Vadot }; 50c66ec88fSEmmanuel Vadot}; 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot&cpu0 { 53c66ec88fSEmmanuel Vadot cpu-supply = <®_dcdc2>; 54c66ec88fSEmmanuel Vadot}; 55c66ec88fSEmmanuel Vadot 56c66ec88fSEmmanuel Vadot&cpu1 { 57c66ec88fSEmmanuel Vadot cpu-supply = <®_dcdc2>; 58c66ec88fSEmmanuel Vadot}; 59c66ec88fSEmmanuel Vadot 60c66ec88fSEmmanuel Vadot&cpu2 { 61c66ec88fSEmmanuel Vadot cpu-supply = <®_dcdc2>; 62c66ec88fSEmmanuel Vadot}; 63c66ec88fSEmmanuel Vadot 64c66ec88fSEmmanuel Vadot&cpu3 { 65c66ec88fSEmmanuel Vadot cpu-supply = <®_dcdc2>; 66c66ec88fSEmmanuel Vadot}; 67c66ec88fSEmmanuel Vadot 68c66ec88fSEmmanuel Vadot&de { 69c66ec88fSEmmanuel Vadot status = "okay"; 70c66ec88fSEmmanuel Vadot}; 71c66ec88fSEmmanuel Vadot 72c66ec88fSEmmanuel Vadot&ehci0 { 73c66ec88fSEmmanuel Vadot status = "okay"; 74c66ec88fSEmmanuel Vadot}; 75c66ec88fSEmmanuel Vadot 76c66ec88fSEmmanuel Vadot&ehci1 { 77c66ec88fSEmmanuel Vadot status = "okay"; 78c66ec88fSEmmanuel Vadot}; 79c66ec88fSEmmanuel Vadot 80c66ec88fSEmmanuel Vadot&emac { 81c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 82c66ec88fSEmmanuel Vadot pinctrl-0 = <&rgmii_pins>; 83c66ec88fSEmmanuel Vadot phy-mode = "rgmii"; 84c66ec88fSEmmanuel Vadot phy-handle = <&ext_rgmii_phy>; 85c66ec88fSEmmanuel Vadot phy-supply = <®_dcdc1>; 86c66ec88fSEmmanuel Vadot status = "okay"; 87c66ec88fSEmmanuel Vadot}; 88c66ec88fSEmmanuel Vadot 89c66ec88fSEmmanuel Vadot&hdmi { 90c66ec88fSEmmanuel Vadot hvcc-supply = <®_dldo1>; 91c66ec88fSEmmanuel Vadot status = "okay"; 92c66ec88fSEmmanuel Vadot}; 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot&hdmi_out { 95c66ec88fSEmmanuel Vadot hdmi_out_con: endpoint { 96c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_con_in>; 97c66ec88fSEmmanuel Vadot }; 98c66ec88fSEmmanuel Vadot}; 99c66ec88fSEmmanuel Vadot 100c66ec88fSEmmanuel Vadot/* i2c1 connected with gpio headers like pine64, bananapi */ 101c66ec88fSEmmanuel Vadot&i2c1_pins { 102c66ec88fSEmmanuel Vadot bias-pull-up; 103c66ec88fSEmmanuel Vadot}; 104c66ec88fSEmmanuel Vadot 105c66ec88fSEmmanuel Vadot&mdio { 106c66ec88fSEmmanuel Vadot ext_rgmii_phy: ethernet-phy@1 { 107c66ec88fSEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c22"; 108c66ec88fSEmmanuel Vadot reg = <7>; 109c66ec88fSEmmanuel Vadot }; 110c66ec88fSEmmanuel Vadot}; 111c66ec88fSEmmanuel Vadot 112c66ec88fSEmmanuel Vadot&mmc0 { 113c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 114c66ec88fSEmmanuel Vadot pinctrl-0 = <&mmc0_pins>; 115c66ec88fSEmmanuel Vadot vmmc-supply = <®_dcdc1>; 116c66ec88fSEmmanuel Vadot cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 117c66ec88fSEmmanuel Vadot disable-wp; 118c66ec88fSEmmanuel Vadot bus-width = <4>; 119c66ec88fSEmmanuel Vadot status = "okay"; 120c66ec88fSEmmanuel Vadot}; 121c66ec88fSEmmanuel Vadot 122c66ec88fSEmmanuel Vadot&mmc1 { 123c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 124c66ec88fSEmmanuel Vadot pinctrl-0 = <&mmc1_pins>; 125c66ec88fSEmmanuel Vadot vmmc-supply = <®_dcdc1>; 126c66ec88fSEmmanuel Vadot vqmmc-supply = <®_dldo4>; 127c66ec88fSEmmanuel Vadot mmc-pwrseq = <&wifi_pwrseq>; 128c66ec88fSEmmanuel Vadot bus-width = <4>; 129c66ec88fSEmmanuel Vadot non-removable; 130c66ec88fSEmmanuel Vadot status = "okay"; 131c66ec88fSEmmanuel Vadot 132c66ec88fSEmmanuel Vadot rtl8189etv: wifi@1 { 133c66ec88fSEmmanuel Vadot reg = <1>; 134c66ec88fSEmmanuel Vadot interrupt-parent = <&r_pio>; 135c66ec88fSEmmanuel Vadot interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 136c66ec88fSEmmanuel Vadot interrupt-names = "host-wake"; 137c66ec88fSEmmanuel Vadot }; 138c66ec88fSEmmanuel Vadot}; 139c66ec88fSEmmanuel Vadot 140c66ec88fSEmmanuel Vadot&ohci0 { 141c66ec88fSEmmanuel Vadot status = "okay"; 142c66ec88fSEmmanuel Vadot}; 143c66ec88fSEmmanuel Vadot 144c66ec88fSEmmanuel Vadot&ohci1 { 145c66ec88fSEmmanuel Vadot status = "okay"; 146c66ec88fSEmmanuel Vadot}; 147c66ec88fSEmmanuel Vadot 148c66ec88fSEmmanuel Vadot&r_rsb { 149c66ec88fSEmmanuel Vadot status = "okay"; 150c66ec88fSEmmanuel Vadot 151c66ec88fSEmmanuel Vadot axp803: pmic@3a3 { 152c66ec88fSEmmanuel Vadot compatible = "x-powers,axp803"; 153c66ec88fSEmmanuel Vadot reg = <0x3a3>; 154c66ec88fSEmmanuel Vadot interrupt-parent = <&r_intc>; 1552eb4d8dcSEmmanuel Vadot interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; 156c66ec88fSEmmanuel Vadot }; 157c66ec88fSEmmanuel Vadot}; 158c66ec88fSEmmanuel Vadot 159c66ec88fSEmmanuel Vadot#include "axp803.dtsi" 160c66ec88fSEmmanuel Vadot 161c66ec88fSEmmanuel Vadot&ac_power_supply { 162c66ec88fSEmmanuel Vadot status = "okay"; 163c66ec88fSEmmanuel Vadot}; 164c66ec88fSEmmanuel Vadot 165c66ec88fSEmmanuel Vadot®_aldo2 { 166c66ec88fSEmmanuel Vadot regulator-always-on; 167c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 168c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 169c66ec88fSEmmanuel Vadot regulator-name = "vcc-pl"; 170c66ec88fSEmmanuel Vadot}; 171c66ec88fSEmmanuel Vadot 172c66ec88fSEmmanuel Vadot®_aldo3 { 173c66ec88fSEmmanuel Vadot regulator-always-on; 174c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3000000>; 175c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3000000>; 176c66ec88fSEmmanuel Vadot regulator-name = "vcc-pll-avcc"; 177c66ec88fSEmmanuel Vadot}; 178c66ec88fSEmmanuel Vadot 179c66ec88fSEmmanuel Vadot®_dcdc1 { 180c66ec88fSEmmanuel Vadot regulator-always-on; 181c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 182c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 183c66ec88fSEmmanuel Vadot regulator-name = "vcc-3v3"; 184c66ec88fSEmmanuel Vadot}; 185c66ec88fSEmmanuel Vadot 186c66ec88fSEmmanuel Vadot®_dcdc2 { 187c66ec88fSEmmanuel Vadot regulator-always-on; 188c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1040000>; 189c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1300000>; 190c66ec88fSEmmanuel Vadot regulator-name = "vdd-cpux"; 191c66ec88fSEmmanuel Vadot}; 192c66ec88fSEmmanuel Vadot 193c66ec88fSEmmanuel Vadot/* DCDC3 is polyphased with DCDC2 */ 194c66ec88fSEmmanuel Vadot 195c66ec88fSEmmanuel Vadot®_dcdc5 { 196c66ec88fSEmmanuel Vadot regulator-always-on; 197c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1500000>; 198c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1500000>; 199c66ec88fSEmmanuel Vadot regulator-name = "vcc-dram"; 200c66ec88fSEmmanuel Vadot}; 201c66ec88fSEmmanuel Vadot 202c66ec88fSEmmanuel Vadot®_dcdc6 { 203c66ec88fSEmmanuel Vadot regulator-always-on; 204c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1100000>; 205c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1100000>; 206c66ec88fSEmmanuel Vadot regulator-name = "vdd-sys"; 207c66ec88fSEmmanuel Vadot}; 208c66ec88fSEmmanuel Vadot 209c66ec88fSEmmanuel Vadot®_dldo1 { 210c66ec88fSEmmanuel Vadot regulator-always-on; 211c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 212c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 213c66ec88fSEmmanuel Vadot regulator-name = "vcc-hdmi-dsi"; 214c66ec88fSEmmanuel Vadot}; 215c66ec88fSEmmanuel Vadot 216c66ec88fSEmmanuel Vadot®_dldo4 { 217c66ec88fSEmmanuel Vadot regulator-always-on; 218c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3000000>; 219c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3000000>; 220c66ec88fSEmmanuel Vadot regulator-name = "vcc-pg-wifi-io"; 221c66ec88fSEmmanuel Vadot}; 222c66ec88fSEmmanuel Vadot 223c66ec88fSEmmanuel Vadot®_eldo1 { 224c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 225c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 226c66ec88fSEmmanuel Vadot regulator-name = "cpvdd"; 227c66ec88fSEmmanuel Vadot}; 228c66ec88fSEmmanuel Vadot 229c66ec88fSEmmanuel Vadot®_fldo1 { 230c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1200000>; 231c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1200000>; 232c66ec88fSEmmanuel Vadot regulator-name = "vcc-1v2-hsic"; 233c66ec88fSEmmanuel Vadot}; 234c66ec88fSEmmanuel Vadot 235c66ec88fSEmmanuel Vadot/* 236c66ec88fSEmmanuel Vadot * The A64 chip cannot work without this regulator off, although 237c66ec88fSEmmanuel Vadot * it seems to be only driving the AR100 core. 238c66ec88fSEmmanuel Vadot * Maybe we don't still know well about CPUs domain. 239c66ec88fSEmmanuel Vadot */ 240c66ec88fSEmmanuel Vadot®_fldo2 { 241c66ec88fSEmmanuel Vadot regulator-always-on; 242c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1100000>; 243c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1100000>; 244c66ec88fSEmmanuel Vadot regulator-name = "vdd-cpus"; 245c66ec88fSEmmanuel Vadot}; 246c66ec88fSEmmanuel Vadot 247c66ec88fSEmmanuel Vadot®_rtc_ldo { 248c66ec88fSEmmanuel Vadot regulator-name = "vcc-rtc"; 249c66ec88fSEmmanuel Vadot}; 250c66ec88fSEmmanuel Vadot 251c66ec88fSEmmanuel Vadot&simplefb_hdmi { 252c66ec88fSEmmanuel Vadot vcc-hdmi-supply = <®_dldo1>; 253c66ec88fSEmmanuel Vadot}; 254c66ec88fSEmmanuel Vadot 255c66ec88fSEmmanuel Vadot&uart0 { 256c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 257c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart0_pb_pins>; 258c66ec88fSEmmanuel Vadot status = "okay"; 259c66ec88fSEmmanuel Vadot}; 260c66ec88fSEmmanuel Vadot 261c66ec88fSEmmanuel Vadot&usbphy { 262c66ec88fSEmmanuel Vadot status = "okay"; 263c66ec88fSEmmanuel Vadot}; 264