18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci// Copyright (c) 2016 ARM Ltd. 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci/dts-v1/; 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include "sun50i-a64.dtsi" 78c2ecf20Sopenharmony_ci#include "sun50i-a64-cpu-opp.dtsi" 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci/ { 128c2ecf20Sopenharmony_ci model = "Pine64"; 138c2ecf20Sopenharmony_ci compatible = "pine64,pine64", "allwinner,sun50i-a64"; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci aliases { 168c2ecf20Sopenharmony_ci ethernet0 = &emac; 178c2ecf20Sopenharmony_ci serial0 = &uart0; 188c2ecf20Sopenharmony_ci serial1 = &uart1; 198c2ecf20Sopenharmony_ci serial2 = &uart2; 208c2ecf20Sopenharmony_ci serial3 = &uart3; 218c2ecf20Sopenharmony_ci serial4 = &uart4; 228c2ecf20Sopenharmony_ci }; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci chosen { 258c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 268c2ecf20Sopenharmony_ci }; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci hdmi-connector { 298c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 308c2ecf20Sopenharmony_ci type = "a"; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci port { 338c2ecf20Sopenharmony_ci hdmi_con_in: endpoint { 348c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_out_con>; 358c2ecf20Sopenharmony_ci }; 368c2ecf20Sopenharmony_ci }; 378c2ecf20Sopenharmony_ci }; 388c2ecf20Sopenharmony_ci}; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci&codec { 418c2ecf20Sopenharmony_ci status = "okay"; 428c2ecf20Sopenharmony_ci}; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci&codec_analog { 458c2ecf20Sopenharmony_ci cpvdd-supply = <®_eldo1>; 468c2ecf20Sopenharmony_ci status = "okay"; 478c2ecf20Sopenharmony_ci}; 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci&cpu0 { 508c2ecf20Sopenharmony_ci cpu-supply = <®_dcdc2>; 518c2ecf20Sopenharmony_ci}; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci&cpu1 { 548c2ecf20Sopenharmony_ci cpu-supply = <®_dcdc2>; 558c2ecf20Sopenharmony_ci}; 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci&cpu2 { 588c2ecf20Sopenharmony_ci cpu-supply = <®_dcdc2>; 598c2ecf20Sopenharmony_ci}; 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci&cpu3 { 628c2ecf20Sopenharmony_ci cpu-supply = <®_dcdc2>; 638c2ecf20Sopenharmony_ci}; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci&dai { 668c2ecf20Sopenharmony_ci status = "okay"; 678c2ecf20Sopenharmony_ci}; 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci&de { 708c2ecf20Sopenharmony_ci status = "okay"; 718c2ecf20Sopenharmony_ci}; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci&ehci0 { 748c2ecf20Sopenharmony_ci status = "okay"; 758c2ecf20Sopenharmony_ci}; 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci&ehci1 { 788c2ecf20Sopenharmony_ci status = "okay"; 798c2ecf20Sopenharmony_ci}; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci&emac { 828c2ecf20Sopenharmony_ci pinctrl-names = "default"; 838c2ecf20Sopenharmony_ci pinctrl-0 = <&rmii_pins>; 848c2ecf20Sopenharmony_ci phy-mode = "rmii"; 858c2ecf20Sopenharmony_ci phy-handle = <&ext_rmii_phy1>; 868c2ecf20Sopenharmony_ci phy-supply = <®_dc1sw>; 878c2ecf20Sopenharmony_ci status = "okay"; 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci}; 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci&hdmi { 928c2ecf20Sopenharmony_ci hvcc-supply = <®_dldo1>; 938c2ecf20Sopenharmony_ci status = "okay"; 948c2ecf20Sopenharmony_ci}; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci&hdmi_out { 978c2ecf20Sopenharmony_ci hdmi_out_con: endpoint { 988c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_con_in>; 998c2ecf20Sopenharmony_ci }; 1008c2ecf20Sopenharmony_ci}; 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci&i2c1 { 1038c2ecf20Sopenharmony_ci status = "okay"; 1048c2ecf20Sopenharmony_ci}; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci&i2c1_pins { 1078c2ecf20Sopenharmony_ci bias-pull-up; 1088c2ecf20Sopenharmony_ci}; 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci&mdio { 1118c2ecf20Sopenharmony_ci ext_rmii_phy1: ethernet-phy@1 { 1128c2ecf20Sopenharmony_ci compatible = "ethernet-phy-ieee802.3-c22"; 1138c2ecf20Sopenharmony_ci reg = <1>; 1148c2ecf20Sopenharmony_ci }; 1158c2ecf20Sopenharmony_ci}; 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci&mmc0 { 1188c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1198c2ecf20Sopenharmony_ci pinctrl-0 = <&mmc0_pins>; 1208c2ecf20Sopenharmony_ci vmmc-supply = <®_dcdc1>; 1218c2ecf20Sopenharmony_ci cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 1228c2ecf20Sopenharmony_ci disable-wp; 1238c2ecf20Sopenharmony_ci bus-width = <4>; 1248c2ecf20Sopenharmony_ci status = "okay"; 1258c2ecf20Sopenharmony_ci}; 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci&ohci0 { 1288c2ecf20Sopenharmony_ci status = "okay"; 1298c2ecf20Sopenharmony_ci}; 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci&ohci1 { 1328c2ecf20Sopenharmony_ci status = "okay"; 1338c2ecf20Sopenharmony_ci}; 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci&r_rsb { 1368c2ecf20Sopenharmony_ci status = "okay"; 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci axp803: pmic@3a3 { 1398c2ecf20Sopenharmony_ci compatible = "x-powers,axp803"; 1408c2ecf20Sopenharmony_ci reg = <0x3a3>; 1418c2ecf20Sopenharmony_ci interrupt-parent = <&r_intc>; 1428c2ecf20Sopenharmony_ci interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 1438c2ecf20Sopenharmony_ci }; 1448c2ecf20Sopenharmony_ci}; 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci#include "axp803.dtsi" 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci&ac_power_supply { 1498c2ecf20Sopenharmony_ci status = "okay"; 1508c2ecf20Sopenharmony_ci}; 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci&battery_power_supply { 1538c2ecf20Sopenharmony_ci status = "okay"; 1548c2ecf20Sopenharmony_ci}; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci®_aldo2 { 1578c2ecf20Sopenharmony_ci regulator-always-on; 1588c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 1598c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1608c2ecf20Sopenharmony_ci regulator-name = "vcc-pl"; 1618c2ecf20Sopenharmony_ci}; 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci®_aldo3 { 1648c2ecf20Sopenharmony_ci regulator-always-on; 1658c2ecf20Sopenharmony_ci regulator-min-microvolt = <3000000>; 1668c2ecf20Sopenharmony_ci regulator-max-microvolt = <3000000>; 1678c2ecf20Sopenharmony_ci regulator-name = "vcc-pll-avcc"; 1688c2ecf20Sopenharmony_ci}; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci®_dc1sw { 1718c2ecf20Sopenharmony_ci regulator-name = "vcc-phy"; 1728c2ecf20Sopenharmony_ci}; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci®_dcdc1 { 1758c2ecf20Sopenharmony_ci regulator-always-on; 1768c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1778c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1788c2ecf20Sopenharmony_ci regulator-name = "vcc-3v3"; 1798c2ecf20Sopenharmony_ci}; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci®_dcdc2 { 1828c2ecf20Sopenharmony_ci regulator-always-on; 1838c2ecf20Sopenharmony_ci regulator-min-microvolt = <1040000>; 1848c2ecf20Sopenharmony_ci regulator-max-microvolt = <1300000>; 1858c2ecf20Sopenharmony_ci regulator-name = "vdd-cpux"; 1868c2ecf20Sopenharmony_ci}; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci/* DCDC3 is polyphased with DCDC2 */ 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci/* 1918c2ecf20Sopenharmony_ci * The DRAM chips used by Pine64 boards are DDR3L-compatible, so they can 1928c2ecf20Sopenharmony_ci * work at 1.35V with less power consumption. 1938c2ecf20Sopenharmony_ci * As AXP803 DCDC5 cannot reach 1.35V accurately, use 1.36V instead. 1948c2ecf20Sopenharmony_ci */ 1958c2ecf20Sopenharmony_ci®_dcdc5 { 1968c2ecf20Sopenharmony_ci regulator-always-on; 1978c2ecf20Sopenharmony_ci regulator-min-microvolt = <1360000>; 1988c2ecf20Sopenharmony_ci regulator-max-microvolt = <1360000>; 1998c2ecf20Sopenharmony_ci regulator-name = "vcc-dram"; 2008c2ecf20Sopenharmony_ci}; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci®_dcdc6 { 2038c2ecf20Sopenharmony_ci regulator-always-on; 2048c2ecf20Sopenharmony_ci regulator-min-microvolt = <1100000>; 2058c2ecf20Sopenharmony_ci regulator-max-microvolt = <1100000>; 2068c2ecf20Sopenharmony_ci regulator-name = "vdd-sys"; 2078c2ecf20Sopenharmony_ci}; 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci®_dldo1 { 2108c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 2118c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2128c2ecf20Sopenharmony_ci regulator-name = "vcc-hdmi"; 2138c2ecf20Sopenharmony_ci}; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci®_dldo2 { 2168c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 2178c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2188c2ecf20Sopenharmony_ci regulator-name = "vcc-mipi"; 2198c2ecf20Sopenharmony_ci}; 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ci®_dldo4 { 2228c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 2238c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2248c2ecf20Sopenharmony_ci regulator-name = "vcc-wifi"; 2258c2ecf20Sopenharmony_ci}; 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci®_eldo1 { 2288c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 2298c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 2308c2ecf20Sopenharmony_ci regulator-name = "cpvdd"; 2318c2ecf20Sopenharmony_ci}; 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci®_fldo1 { 2348c2ecf20Sopenharmony_ci regulator-min-microvolt = <1200000>; 2358c2ecf20Sopenharmony_ci regulator-max-microvolt = <1200000>; 2368c2ecf20Sopenharmony_ci regulator-name = "vcc-1v2-hsic"; 2378c2ecf20Sopenharmony_ci}; 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci/* 2408c2ecf20Sopenharmony_ci * The A64 chip cannot work without this regulator off, although 2418c2ecf20Sopenharmony_ci * it seems to be only driving the AR100 core. 2428c2ecf20Sopenharmony_ci * Maybe we don't still know well about CPUs domain. 2438c2ecf20Sopenharmony_ci */ 2448c2ecf20Sopenharmony_ci®_fldo2 { 2458c2ecf20Sopenharmony_ci regulator-always-on; 2468c2ecf20Sopenharmony_ci regulator-min-microvolt = <1100000>; 2478c2ecf20Sopenharmony_ci regulator-max-microvolt = <1100000>; 2488c2ecf20Sopenharmony_ci regulator-name = "vdd-cpus"; 2498c2ecf20Sopenharmony_ci}; 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci®_rtc_ldo { 2528c2ecf20Sopenharmony_ci regulator-name = "vcc-rtc"; 2538c2ecf20Sopenharmony_ci}; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci&simplefb_hdmi { 2568c2ecf20Sopenharmony_ci vcc-hdmi-supply = <®_dldo1>; 2578c2ecf20Sopenharmony_ci}; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci&sound { 2608c2ecf20Sopenharmony_ci simple-audio-card,aux-devs = <&codec_analog>; 2618c2ecf20Sopenharmony_ci simple-audio-card,widgets = "Microphone", "Microphone Jack", 2628c2ecf20Sopenharmony_ci "Headphone", "Headphone Jack"; 2638c2ecf20Sopenharmony_ci simple-audio-card,routing = 2648c2ecf20Sopenharmony_ci "Left DAC", "DACL", 2658c2ecf20Sopenharmony_ci "Right DAC", "DACR", 2668c2ecf20Sopenharmony_ci "Headphone Jack", "HP", 2678c2ecf20Sopenharmony_ci "ADCL", "Left ADC", 2688c2ecf20Sopenharmony_ci "ADCR", "Right ADC", 2698c2ecf20Sopenharmony_ci "MIC2", "Microphone Jack"; 2708c2ecf20Sopenharmony_ci status = "okay"; 2718c2ecf20Sopenharmony_ci}; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci/* On Euler connector */ 2748c2ecf20Sopenharmony_ci&spdif { 2758c2ecf20Sopenharmony_ci status = "disabled"; 2768c2ecf20Sopenharmony_ci}; 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci/* On Exp and Euler connectors */ 2798c2ecf20Sopenharmony_ci&uart0 { 2808c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2818c2ecf20Sopenharmony_ci pinctrl-0 = <&uart0_pb_pins>; 2828c2ecf20Sopenharmony_ci status = "okay"; 2838c2ecf20Sopenharmony_ci}; 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci/* On Wifi/BT connector, with RTS/CTS */ 2868c2ecf20Sopenharmony_ci&uart1 { 2878c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2888c2ecf20Sopenharmony_ci pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 2898c2ecf20Sopenharmony_ci status = "disabled"; 2908c2ecf20Sopenharmony_ci}; 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci/* On Pi-2 connector */ 2938c2ecf20Sopenharmony_ci&uart2 { 2948c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2958c2ecf20Sopenharmony_ci pinctrl-0 = <&uart2_pins>; 2968c2ecf20Sopenharmony_ci status = "disabled"; 2978c2ecf20Sopenharmony_ci}; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci/* On Euler connector */ 3008c2ecf20Sopenharmony_ci&uart3 { 3018c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3028c2ecf20Sopenharmony_ci pinctrl-0 = <&uart3_pins>; 3038c2ecf20Sopenharmony_ci status = "disabled"; 3048c2ecf20Sopenharmony_ci}; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci/* On Euler connector, RTS/CTS optional */ 3078c2ecf20Sopenharmony_ci&uart4 { 3088c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3098c2ecf20Sopenharmony_ci pinctrl-0 = <&uart4_pins>; 3108c2ecf20Sopenharmony_ci status = "disabled"; 3118c2ecf20Sopenharmony_ci}; 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ci&usb_otg { 3148c2ecf20Sopenharmony_ci dr_mode = "host"; 3158c2ecf20Sopenharmony_ci status = "okay"; 3168c2ecf20Sopenharmony_ci}; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci&usbphy { 3198c2ecf20Sopenharmony_ci status = "okay"; 3208c2ecf20Sopenharmony_ci}; 321