18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci// Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.io> 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci/dts-v1/; 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include "sun50i-h6.dtsi" 78c2ecf20Sopenharmony_ci#include "sun50i-h6-cpu-opp.dtsi" 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci/ { 128c2ecf20Sopenharmony_ci model = "Pine H64 model A"; 138c2ecf20Sopenharmony_ci compatible = "pine64,pine-h64", "allwinner,sun50i-h6"; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci aliases { 168c2ecf20Sopenharmony_ci ethernet0 = &emac; 178c2ecf20Sopenharmony_ci serial0 = &uart0; 188c2ecf20Sopenharmony_ci spi0 = &spi0; 198c2ecf20Sopenharmony_ci }; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci chosen { 228c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 238c2ecf20Sopenharmony_ci }; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci ext_osc32k: ext_osc32k_clk { 268c2ecf20Sopenharmony_ci #clock-cells = <0>; 278c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 288c2ecf20Sopenharmony_ci clock-frequency = <32768>; 298c2ecf20Sopenharmony_ci clock-output-names = "ext_osc32k"; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci hdmi_connector: connector { 338c2ecf20Sopenharmony_ci compatible = "hdmi-connector"; 348c2ecf20Sopenharmony_ci type = "a"; 358c2ecf20Sopenharmony_ci ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci port { 388c2ecf20Sopenharmony_ci hdmi_con_in: endpoint { 398c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_out_con>; 408c2ecf20Sopenharmony_ci }; 418c2ecf20Sopenharmony_ci }; 428c2ecf20Sopenharmony_ci }; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci leds { 458c2ecf20Sopenharmony_ci compatible = "gpio-leds"; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci heartbeat { 488c2ecf20Sopenharmony_ci label = "pine-h64:green:heartbeat"; 498c2ecf20Sopenharmony_ci gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 508c2ecf20Sopenharmony_ci }; 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci link { 538c2ecf20Sopenharmony_ci label = "pine-h64:white:link"; 548c2ecf20Sopenharmony_ci gpios = <&r_pio 0 3 GPIO_ACTIVE_HIGH>; /* PL3 */ 558c2ecf20Sopenharmony_ci }; 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci status { 588c2ecf20Sopenharmony_ci label = "pine-h64:blue:status"; 598c2ecf20Sopenharmony_ci gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 608c2ecf20Sopenharmony_ci }; 618c2ecf20Sopenharmony_ci }; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci reg_gmac_3v3: gmac-3v3 { 648c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 658c2ecf20Sopenharmony_ci regulator-name = "vcc-gmac-3v3"; 668c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 678c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 688c2ecf20Sopenharmony_ci startup-delay-us = <100000>; 698c2ecf20Sopenharmony_ci gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; 708c2ecf20Sopenharmony_ci enable-active-high; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci reg_usb_vbus: vbus { 748c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 758c2ecf20Sopenharmony_ci regulator-name = "usb-vbus"; 768c2ecf20Sopenharmony_ci regulator-min-microvolt = <5000000>; 778c2ecf20Sopenharmony_ci regulator-max-microvolt = <5000000>; 788c2ecf20Sopenharmony_ci startup-delay-us = <100000>; 798c2ecf20Sopenharmony_ci gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; 808c2ecf20Sopenharmony_ci enable-active-high; 818c2ecf20Sopenharmony_ci }; 828c2ecf20Sopenharmony_ci}; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci&cpu0 { 858c2ecf20Sopenharmony_ci cpu-supply = <®_dcdca>; 868c2ecf20Sopenharmony_ci}; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci&de { 898c2ecf20Sopenharmony_ci status = "okay"; 908c2ecf20Sopenharmony_ci}; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci&ehci0 { 938c2ecf20Sopenharmony_ci status = "okay"; 948c2ecf20Sopenharmony_ci}; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci&ehci3 { 978c2ecf20Sopenharmony_ci status = "okay"; 988c2ecf20Sopenharmony_ci}; 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci&emac { 1018c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1028c2ecf20Sopenharmony_ci pinctrl-0 = <&ext_rgmii_pins>; 1038c2ecf20Sopenharmony_ci phy-mode = "rgmii-id"; 1048c2ecf20Sopenharmony_ci phy-handle = <&ext_rgmii_phy>; 1058c2ecf20Sopenharmony_ci phy-supply = <®_gmac_3v3>; 1068c2ecf20Sopenharmony_ci allwinner,rx-delay-ps = <200>; 1078c2ecf20Sopenharmony_ci allwinner,tx-delay-ps = <200>; 1088c2ecf20Sopenharmony_ci status = "okay"; 1098c2ecf20Sopenharmony_ci}; 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci&gpu { 1128c2ecf20Sopenharmony_ci mali-supply = <®_dcdcc>; 1138c2ecf20Sopenharmony_ci status = "okay"; 1148c2ecf20Sopenharmony_ci}; 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci&hdmi { 1178c2ecf20Sopenharmony_ci status = "okay"; 1188c2ecf20Sopenharmony_ci}; 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci&hdmi_out { 1218c2ecf20Sopenharmony_ci hdmi_out_con: endpoint { 1228c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_con_in>; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci}; 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci&mdio { 1278c2ecf20Sopenharmony_ci ext_rgmii_phy: ethernet-phy@1 { 1288c2ecf20Sopenharmony_ci compatible = "ethernet-phy-ieee802.3-c22"; 1298c2ecf20Sopenharmony_ci reg = <1>; 1308c2ecf20Sopenharmony_ci }; 1318c2ecf20Sopenharmony_ci}; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci&mmc0 { 1348c2ecf20Sopenharmony_ci vmmc-supply = <®_cldo1>; 1358c2ecf20Sopenharmony_ci cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 1368c2ecf20Sopenharmony_ci bus-width = <4>; 1378c2ecf20Sopenharmony_ci status = "okay"; 1388c2ecf20Sopenharmony_ci}; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci&mmc2 { 1418c2ecf20Sopenharmony_ci vmmc-supply = <®_cldo1>; 1428c2ecf20Sopenharmony_ci vqmmc-supply = <®_bldo2>; 1438c2ecf20Sopenharmony_ci non-removable; 1448c2ecf20Sopenharmony_ci cap-mmc-hw-reset; 1458c2ecf20Sopenharmony_ci bus-width = <8>; 1468c2ecf20Sopenharmony_ci status = "okay"; 1478c2ecf20Sopenharmony_ci}; 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci&ohci0 { 1508c2ecf20Sopenharmony_ci status = "okay"; 1518c2ecf20Sopenharmony_ci}; 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci&ohci3 { 1548c2ecf20Sopenharmony_ci status = "okay"; 1558c2ecf20Sopenharmony_ci}; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci&pio { 1588c2ecf20Sopenharmony_ci vcc-pc-supply = <®_bldo2>; 1598c2ecf20Sopenharmony_ci vcc-pd-supply = <®_cldo1>; 1608c2ecf20Sopenharmony_ci vcc-pg-supply = <®_aldo1>; 1618c2ecf20Sopenharmony_ci}; 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci&r_i2c { 1648c2ecf20Sopenharmony_ci status = "okay"; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci axp805: pmic@36 { 1678c2ecf20Sopenharmony_ci compatible = "x-powers,axp805", "x-powers,axp806"; 1688c2ecf20Sopenharmony_ci reg = <0x36>; 1698c2ecf20Sopenharmony_ci interrupt-parent = <&r_intc>; 1708c2ecf20Sopenharmony_ci interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 1718c2ecf20Sopenharmony_ci interrupt-controller; 1728c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 1738c2ecf20Sopenharmony_ci x-powers,self-working-mode; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci regulators { 1768c2ecf20Sopenharmony_ci reg_aldo1: aldo1 { 1778c2ecf20Sopenharmony_ci regulator-always-on; 1788c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1798c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1808c2ecf20Sopenharmony_ci regulator-name = "vcc-pl"; 1818c2ecf20Sopenharmony_ci }; 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci reg_aldo2: aldo2 { 1848c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1858c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1868c2ecf20Sopenharmony_ci regulator-name = "vcc-ac200"; 1878c2ecf20Sopenharmony_ci regulator-enable-ramp-delay = <100000>; 1888c2ecf20Sopenharmony_ci }; 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci reg_aldo3: aldo3 { 1918c2ecf20Sopenharmony_ci /* This regulator is connected with CLDO1 */ 1928c2ecf20Sopenharmony_ci regulator-always-on; 1938c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 1948c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 1958c2ecf20Sopenharmony_ci regulator-name = "vcc-3v3-1"; 1968c2ecf20Sopenharmony_ci }; 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ci reg_bldo1: bldo1 { 1998c2ecf20Sopenharmony_ci regulator-always-on; 2008c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 2018c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 2028c2ecf20Sopenharmony_ci regulator-name = "vcc-bias-pll"; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci reg_bldo2: bldo2 { 2068c2ecf20Sopenharmony_ci regulator-always-on; 2078c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 2088c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 2098c2ecf20Sopenharmony_ci regulator-name = "vcc-efuse-pcie-hdmi-io"; 2108c2ecf20Sopenharmony_ci }; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci reg_bldo3: bldo3 { 2138c2ecf20Sopenharmony_ci regulator-always-on; 2148c2ecf20Sopenharmony_ci regulator-min-microvolt = <1800000>; 2158c2ecf20Sopenharmony_ci regulator-max-microvolt = <1800000>; 2168c2ecf20Sopenharmony_ci regulator-name = "vcc-dcxoio"; 2178c2ecf20Sopenharmony_ci }; 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci bldo4 { 2208c2ecf20Sopenharmony_ci /* unused */ 2218c2ecf20Sopenharmony_ci }; 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci reg_cldo1: cldo1 { 2248c2ecf20Sopenharmony_ci /* This regulator is connected with ALDO3 */ 2258c2ecf20Sopenharmony_ci regulator-always-on; 2268c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 2278c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2288c2ecf20Sopenharmony_ci regulator-name = "vcc-3v3-2"; 2298c2ecf20Sopenharmony_ci }; 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci reg_cldo2: cldo2 { 2328c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 2338c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2348c2ecf20Sopenharmony_ci regulator-name = "vcc-wifi-1"; 2358c2ecf20Sopenharmony_ci }; 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci reg_cldo3: cldo3 { 2388c2ecf20Sopenharmony_ci regulator-min-microvolt = <3300000>; 2398c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2408c2ecf20Sopenharmony_ci regulator-name = "vcc-wifi-2"; 2418c2ecf20Sopenharmony_ci }; 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ci reg_dcdca: dcdca { 2448c2ecf20Sopenharmony_ci regulator-always-on; 2458c2ecf20Sopenharmony_ci regulator-min-microvolt = <810000>; 2468c2ecf20Sopenharmony_ci regulator-max-microvolt = <1160000>; 2478c2ecf20Sopenharmony_ci regulator-ramp-delay = <2500>; 2488c2ecf20Sopenharmony_ci regulator-name = "vdd-cpu"; 2498c2ecf20Sopenharmony_ci }; 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci reg_dcdcc: dcdcc { 2528c2ecf20Sopenharmony_ci regulator-enable-ramp-delay = <32000>; 2538c2ecf20Sopenharmony_ci regulator-min-microvolt = <810000>; 2548c2ecf20Sopenharmony_ci regulator-max-microvolt = <1080000>; 2558c2ecf20Sopenharmony_ci regulator-ramp-delay = <2500>; 2568c2ecf20Sopenharmony_ci regulator-name = "vdd-gpu"; 2578c2ecf20Sopenharmony_ci }; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci reg_dcdcd: dcdcd { 2608c2ecf20Sopenharmony_ci regulator-always-on; 2618c2ecf20Sopenharmony_ci regulator-min-microvolt = <960000>; 2628c2ecf20Sopenharmony_ci regulator-max-microvolt = <960000>; 2638c2ecf20Sopenharmony_ci regulator-name = "vdd-sys"; 2648c2ecf20Sopenharmony_ci }; 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci reg_dcdce: dcdce { 2678c2ecf20Sopenharmony_ci regulator-always-on; 2688c2ecf20Sopenharmony_ci regulator-min-microvolt = <1200000>; 2698c2ecf20Sopenharmony_ci regulator-max-microvolt = <1200000>; 2708c2ecf20Sopenharmony_ci regulator-name = "vcc-dram"; 2718c2ecf20Sopenharmony_ci }; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci sw { 2748c2ecf20Sopenharmony_ci /* unused */ 2758c2ecf20Sopenharmony_ci }; 2768c2ecf20Sopenharmony_ci }; 2778c2ecf20Sopenharmony_ci }; 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci pcf8563: rtc@51 { 2808c2ecf20Sopenharmony_ci compatible = "nxp,pcf8563"; 2818c2ecf20Sopenharmony_ci reg = <0x51>; 2828c2ecf20Sopenharmony_ci interrupt-parent = <&r_intc>; 2838c2ecf20Sopenharmony_ci interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 2848c2ecf20Sopenharmony_ci #clock-cells = <0>; 2858c2ecf20Sopenharmony_ci }; 2868c2ecf20Sopenharmony_ci}; 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ci&r_ir { 2898c2ecf20Sopenharmony_ci status = "okay"; 2908c2ecf20Sopenharmony_ci}; 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci&r_pio { 2938c2ecf20Sopenharmony_ci vcc-pm-supply = <®_aldo1>; 2948c2ecf20Sopenharmony_ci}; 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ci&rtc { 2978c2ecf20Sopenharmony_ci clocks = <&ext_osc32k>; 2988c2ecf20Sopenharmony_ci}; 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci/* 3018c2ecf20Sopenharmony_ci * The CS pin is shared with the MMC2 CMD pin, so we cannot have the SPI 3028c2ecf20Sopenharmony_ci * flash and eMMC at the same time, as one of them would fail probing. 3038c2ecf20Sopenharmony_ci * Disable SPI0 in here, to prefer the more useful eMMC. U-Boot can 3048c2ecf20Sopenharmony_ci * fix this up in no eMMC is connected. 3058c2ecf20Sopenharmony_ci */ 3068c2ecf20Sopenharmony_ci&spi0 { 3078c2ecf20Sopenharmony_ci pinctrl-0 = <&spi0_pins>, <&spi0_cs_pin>; 3088c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3098c2ecf20Sopenharmony_ci status = "disabled"; 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci flash@0 { 3128c2ecf20Sopenharmony_ci compatible = "winbond,w25q128", "jedec,spi-nor"; 3138c2ecf20Sopenharmony_ci reg = <0>; 3148c2ecf20Sopenharmony_ci spi-max-frequency = <4000000>; 3158c2ecf20Sopenharmony_ci }; 3168c2ecf20Sopenharmony_ci}; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci&uart0 { 3198c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3208c2ecf20Sopenharmony_ci pinctrl-0 = <&uart0_ph_pins>; 3218c2ecf20Sopenharmony_ci status = "okay"; 3228c2ecf20Sopenharmony_ci}; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci&usb2otg { 3258c2ecf20Sopenharmony_ci dr_mode = "host"; 3268c2ecf20Sopenharmony_ci status = "okay"; 3278c2ecf20Sopenharmony_ci}; 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ci&usb2phy { 3308c2ecf20Sopenharmony_ci usb0_vbus-supply = <®_usb_vbus>; 3318c2ecf20Sopenharmony_ci usb3_vbus-supply = <®_usb_vbus>; 3328c2ecf20Sopenharmony_ci status = "okay"; 3338c2ecf20Sopenharmony_ci}; 334