1b4b8f2c9SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cabbaed7SClément Péron// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz> 3cabbaed7SClément Péron// Based on sun50i-h5-orangepi-pc2.dts, which is: 4cabbaed7SClément Péron// Copyright (C) 2016 ARM Ltd. 52ff28361SIcenowy Zheng 62ff28361SIcenowy Zheng/dts-v1/; 72ff28361SIcenowy Zheng#include "sun50i-h5.dtsi" 82ff28361SIcenowy Zheng 92ff28361SIcenowy Zheng#include <dt-bindings/gpio/gpio.h> 102ff28361SIcenowy Zheng#include <dt-bindings/input/input.h> 112ff28361SIcenowy Zheng 122ff28361SIcenowy Zheng/ { 132ff28361SIcenowy Zheng model = "Xunlong Orange Pi Prime"; 142ff28361SIcenowy Zheng compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5"; 152ff28361SIcenowy Zheng 162ff28361SIcenowy Zheng aliases { 1744a94c7eSCorentin Labbe ethernet0 = &emac; 182ff28361SIcenowy Zheng serial0 = &uart0; 192ff28361SIcenowy Zheng }; 202ff28361SIcenowy Zheng 212ff28361SIcenowy Zheng chosen { 222ff28361SIcenowy Zheng stdout-path = "serial0:115200n8"; 232ff28361SIcenowy Zheng }; 242ff28361SIcenowy Zheng 2522821975SJernej Skrabec connector { 2622821975SJernej Skrabec compatible = "hdmi-connector"; 2722821975SJernej Skrabec type = "a"; 2822821975SJernej Skrabec 2922821975SJernej Skrabec port { 3022821975SJernej Skrabec hdmi_con_in: endpoint { 3122821975SJernej Skrabec remote-endpoint = <&hdmi_out_con>; 3222821975SJernej Skrabec }; 3322821975SJernej Skrabec }; 3422821975SJernej Skrabec }; 3522821975SJernej Skrabec 362ff28361SIcenowy Zheng leds { 372ff28361SIcenowy Zheng compatible = "gpio-leds"; 382ff28361SIcenowy Zheng 392ff28361SIcenowy Zheng pwr { 402ff28361SIcenowy Zheng label = "orangepi:green:pwr"; 412ff28361SIcenowy Zheng gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; 422ff28361SIcenowy Zheng default-state = "on"; 432ff28361SIcenowy Zheng }; 442ff28361SIcenowy Zheng 452ff28361SIcenowy Zheng status { 462ff28361SIcenowy Zheng label = "orangepi:red:status"; 472ff28361SIcenowy Zheng gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>; 482ff28361SIcenowy Zheng }; 492ff28361SIcenowy Zheng }; 502ff28361SIcenowy Zheng 512ff28361SIcenowy Zheng r-gpio-keys { 522ff28361SIcenowy Zheng compatible = "gpio-keys"; 532ff28361SIcenowy Zheng 542ff28361SIcenowy Zheng sw4 { 552ff28361SIcenowy Zheng label = "sw4"; 562ff28361SIcenowy Zheng linux,code = <BTN_0>; 572ff28361SIcenowy Zheng gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 582ff28361SIcenowy Zheng }; 592ff28361SIcenowy Zheng }; 602ff28361SIcenowy Zheng 614b157a5cSIcenowy Zheng reg_gmac_3v3: gmac-3v3 { 624b157a5cSIcenowy Zheng compatible = "regulator-fixed"; 634b157a5cSIcenowy Zheng regulator-name = "gmac-3v3"; 644b157a5cSIcenowy Zheng regulator-min-microvolt = <3300000>; 654b157a5cSIcenowy Zheng regulator-max-microvolt = <3300000>; 664b157a5cSIcenowy Zheng startup-delay-us = <100000>; 674b157a5cSIcenowy Zheng enable-active-high; 684b157a5cSIcenowy Zheng gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 694b157a5cSIcenowy Zheng }; 704b157a5cSIcenowy Zheng 719907da07SIcenowy Zheng reg_vcc3v3: vcc3v3 { 729907da07SIcenowy Zheng compatible = "regulator-fixed"; 739907da07SIcenowy Zheng regulator-name = "vcc3v3"; 749907da07SIcenowy Zheng regulator-min-microvolt = <3300000>; 759907da07SIcenowy Zheng regulator-max-microvolt = <3300000>; 769907da07SIcenowy Zheng }; 779907da07SIcenowy Zheng 782ff28361SIcenowy Zheng reg_usb0_vbus: usb0-vbus { 792ff28361SIcenowy Zheng compatible = "regulator-fixed"; 802ff28361SIcenowy Zheng regulator-name = "usb0-vbus"; 812ff28361SIcenowy Zheng regulator-min-microvolt = <5000000>; 822ff28361SIcenowy Zheng regulator-max-microvolt = <5000000>; 832ff28361SIcenowy Zheng enable-active-high; 842ff28361SIcenowy Zheng gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 852ff28361SIcenowy Zheng status = "okay"; 862ff28361SIcenowy Zheng }; 872ff28361SIcenowy Zheng 882ff28361SIcenowy Zheng wifi_pwrseq: wifi_pwrseq { 892ff28361SIcenowy Zheng compatible = "mmc-pwrseq-simple"; 902ff28361SIcenowy Zheng reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */ 912ff28361SIcenowy Zheng }; 922ff28361SIcenowy Zheng}; 932ff28361SIcenowy Zheng 942ff28361SIcenowy Zheng&codec { 952ff28361SIcenowy Zheng allwinner,audio-routing = 962ff28361SIcenowy Zheng "Line Out", "LINEOUT", 972ff28361SIcenowy Zheng "MIC1", "Mic", 982ff28361SIcenowy Zheng "Mic", "MBIAS"; 992ff28361SIcenowy Zheng status = "okay"; 1002ff28361SIcenowy Zheng}; 1012ff28361SIcenowy Zheng 10222821975SJernej Skrabec&de { 10322821975SJernej Skrabec status = "okay"; 10422821975SJernej Skrabec}; 10522821975SJernej Skrabec 1062ff28361SIcenowy Zheng&ehci0 { 1072ff28361SIcenowy Zheng status = "okay"; 1082ff28361SIcenowy Zheng}; 1092ff28361SIcenowy Zheng 1102ff28361SIcenowy Zheng&ehci1 { 1112ff28361SIcenowy Zheng status = "okay"; 1122ff28361SIcenowy Zheng}; 1132ff28361SIcenowy Zheng 1142ff28361SIcenowy Zheng&ehci2 { 1152ff28361SIcenowy Zheng status = "okay"; 1162ff28361SIcenowy Zheng}; 1172ff28361SIcenowy Zheng 1182ff28361SIcenowy Zheng&ehci3 { 1192ff28361SIcenowy Zheng status = "okay"; 1202ff28361SIcenowy Zheng}; 1212ff28361SIcenowy Zheng 12244a94c7eSCorentin Labbe&emac { 12344a94c7eSCorentin Labbe pinctrl-names = "default"; 12444a94c7eSCorentin Labbe pinctrl-0 = <&emac_rgmii_pins>; 12544a94c7eSCorentin Labbe phy-supply = <®_gmac_3v3>; 12644a94c7eSCorentin Labbe phy-handle = <&ext_rgmii_phy>; 127107954afSNenad Peric phy-mode = "rgmii-id"; 12844a94c7eSCorentin Labbe status = "okay"; 12944a94c7eSCorentin Labbe}; 13044a94c7eSCorentin Labbe 13144a94c7eSCorentin Labbe&external_mdio { 13244a94c7eSCorentin Labbe ext_rgmii_phy: ethernet-phy@1 { 13344a94c7eSCorentin Labbe compatible = "ethernet-phy-ieee802.3-c22"; 13444a94c7eSCorentin Labbe reg = <1>; 13544a94c7eSCorentin Labbe }; 13644a94c7eSCorentin Labbe}; 13744a94c7eSCorentin Labbe 13822821975SJernej Skrabec&hdmi { 13922821975SJernej Skrabec status = "okay"; 14022821975SJernej Skrabec}; 14122821975SJernej Skrabec 14222821975SJernej Skrabec&hdmi_out { 14322821975SJernej Skrabec hdmi_out_con: endpoint { 14422821975SJernej Skrabec remote-endpoint = <&hdmi_con_in>; 14522821975SJernej Skrabec }; 14622821975SJernej Skrabec}; 14722821975SJernej Skrabec 1482ff28361SIcenowy Zheng&ir { 1492ff28361SIcenowy Zheng pinctrl-names = "default"; 150a4dc7919SMaxime Ripard pinctrl-0 = <&r_ir_rx_pin>; 1512ff28361SIcenowy Zheng status = "okay"; 1522ff28361SIcenowy Zheng}; 1532ff28361SIcenowy Zheng 1542ff28361SIcenowy Zheng&mmc0 { 1552ff28361SIcenowy Zheng vmmc-supply = <®_vcc3v3>; 1562ff28361SIcenowy Zheng bus-width = <4>; 1572ff28361SIcenowy Zheng cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 1582ff28361SIcenowy Zheng status = "okay"; 1592ff28361SIcenowy Zheng}; 1602ff28361SIcenowy Zheng 1612ff28361SIcenowy Zheng&mmc1 { 1622ff28361SIcenowy Zheng vmmc-supply = <®_vcc3v3>; 1632ff28361SIcenowy Zheng mmc-pwrseq = <&wifi_pwrseq>; 1642ff28361SIcenowy Zheng bus-width = <4>; 1652ff28361SIcenowy Zheng non-removable; 1662ff28361SIcenowy Zheng status = "okay"; 1672ff28361SIcenowy Zheng}; 1682ff28361SIcenowy Zheng 1692ff28361SIcenowy Zheng&ohci0 { 1702ff28361SIcenowy Zheng status = "okay"; 1712ff28361SIcenowy Zheng}; 1722ff28361SIcenowy Zheng 1732ff28361SIcenowy Zheng&ohci1 { 1742ff28361SIcenowy Zheng status = "okay"; 1752ff28361SIcenowy Zheng}; 1762ff28361SIcenowy Zheng 1772ff28361SIcenowy Zheng&ohci2 { 1782ff28361SIcenowy Zheng status = "okay"; 1792ff28361SIcenowy Zheng}; 1802ff28361SIcenowy Zheng 1812ff28361SIcenowy Zheng&ohci3 { 1822ff28361SIcenowy Zheng status = "okay"; 1832ff28361SIcenowy Zheng}; 1842ff28361SIcenowy Zheng 1852ff28361SIcenowy Zheng&uart0 { 1862ff28361SIcenowy Zheng pinctrl-names = "default"; 187a4dc7919SMaxime Ripard pinctrl-0 = <&uart0_pa_pins>; 1882ff28361SIcenowy Zheng status = "okay"; 1892ff28361SIcenowy Zheng}; 1902ff28361SIcenowy Zheng 1912ff28361SIcenowy Zheng&uart1 { 1922ff28361SIcenowy Zheng pinctrl-names = "default"; 1932ff28361SIcenowy Zheng pinctrl-0 = <&uart1_pins>; 1942ff28361SIcenowy Zheng status = "disabled"; 1952ff28361SIcenowy Zheng}; 1962ff28361SIcenowy Zheng 1972ff28361SIcenowy Zheng&uart2 { 1982ff28361SIcenowy Zheng pinctrl-names = "default"; 1992ff28361SIcenowy Zheng pinctrl-0 = <&uart2_pins>; 2002ff28361SIcenowy Zheng status = "disabled"; 2012ff28361SIcenowy Zheng}; 2022ff28361SIcenowy Zheng 2032ff28361SIcenowy Zheng&usb_otg { 2042ff28361SIcenowy Zheng dr_mode = "otg"; 2052ff28361SIcenowy Zheng status = "okay"; 2062ff28361SIcenowy Zheng}; 2072ff28361SIcenowy Zheng 2082ff28361SIcenowy Zheng&usbphy { 2092ff28361SIcenowy Zheng /* USB Type-A ports' VBUS is always on */ 2102ff28361SIcenowy Zheng usb0_id_det-gpios = <&pio 0 21 GPIO_ACTIVE_HIGH>; /* PA21 */ 2112ff28361SIcenowy Zheng usb0_vbus-supply = <®_usb0_vbus>; 2122ff28361SIcenowy Zheng status = "okay"; 2132ff28361SIcenowy Zheng}; 214