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