1b4b8f2c9SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2cabbaed7SClément Péron// Copyright (C) 2016 ARM Ltd.
39d41bbb6SAndre Przywara
49d41bbb6SAndre Przywara/dts-v1/;
59d41bbb6SAndre Przywara#include "sun50i-h5.dtsi"
69d41bbb6SAndre Przywara
79d41bbb6SAndre Przywara#include <dt-bindings/gpio/gpio.h>
89d41bbb6SAndre Przywara#include <dt-bindings/input/input.h>
99d41bbb6SAndre Przywara#include <dt-bindings/pinctrl/sun4i-a10.h>
109d41bbb6SAndre Przywara
119d41bbb6SAndre Przywara/ {
129d41bbb6SAndre Przywara	model = "Xunlong Orange Pi PC 2";
139d41bbb6SAndre Przywara	compatible = "xunlong,orangepi-pc2", "allwinner,sun50i-h5";
149d41bbb6SAndre Przywara
159d41bbb6SAndre Przywara	reg_vcc3v3: vcc3v3 {
169d41bbb6SAndre Przywara		compatible = "regulator-fixed";
179d41bbb6SAndre Przywara		regulator-name = "vcc3v3";
189d41bbb6SAndre Przywara		regulator-min-microvolt = <3300000>;
199d41bbb6SAndre Przywara		regulator-max-microvolt = <3300000>;
209d41bbb6SAndre Przywara	};
219d41bbb6SAndre Przywara
229d41bbb6SAndre Przywara	aliases {
2344a94c7eSCorentin Labbe		ethernet0 = &emac;
249d41bbb6SAndre Przywara		serial0 = &uart0;
259d41bbb6SAndre Przywara	};
269d41bbb6SAndre Przywara
279d41bbb6SAndre Przywara	chosen {
289d41bbb6SAndre Przywara		stdout-path = "serial0:115200n8";
299d41bbb6SAndre Przywara	};
309d41bbb6SAndre Przywara
3122821975SJernej Skrabec	connector {
3222821975SJernej Skrabec		compatible = "hdmi-connector";
3322821975SJernej Skrabec		type = "a";
3422821975SJernej Skrabec
3522821975SJernej Skrabec		port {
3622821975SJernej Skrabec			hdmi_con_in: endpoint {
3722821975SJernej Skrabec				remote-endpoint = <&hdmi_out_con>;
3822821975SJernej Skrabec			};
3922821975SJernej Skrabec		};
4022821975SJernej Skrabec	};
4122821975SJernej Skrabec
429d41bbb6SAndre Przywara	leds {
439d41bbb6SAndre Przywara		compatible = "gpio-leds";
449d41bbb6SAndre Przywara
459d41bbb6SAndre Przywara		pwr {
469d41bbb6SAndre Przywara			label = "orangepi:green:pwr";
479d41bbb6SAndre Przywara			gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
489d41bbb6SAndre Przywara			default-state = "on";
499d41bbb6SAndre Przywara		};
509d41bbb6SAndre Przywara
519d41bbb6SAndre Przywara		status {
529d41bbb6SAndre Przywara			label = "orangepi:red:status";
539d41bbb6SAndre Przywara			gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
549d41bbb6SAndre Przywara		};
559d41bbb6SAndre Przywara	};
569d41bbb6SAndre Przywara
579d41bbb6SAndre Przywara	r-gpio-keys {
589d41bbb6SAndre Przywara		compatible = "gpio-keys";
599d41bbb6SAndre Przywara
609d41bbb6SAndre Przywara		sw4 {
619d41bbb6SAndre Przywara			label = "sw4";
629d41bbb6SAndre Przywara			linux,code = <BTN_0>;
639d41bbb6SAndre Przywara			gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
649d41bbb6SAndre Przywara		};
659d41bbb6SAndre Przywara	};
665313ea66SIcenowy Zheng
6799cacebfSCorentin Labbe	reg_gmac_3v3: gmac-3v3 {
6899cacebfSCorentin Labbe		compatible = "regulator-fixed";
6999cacebfSCorentin Labbe		regulator-name = "gmac-3v3";
7099cacebfSCorentin Labbe		regulator-min-microvolt = <3300000>;
7199cacebfSCorentin Labbe		regulator-max-microvolt = <3300000>;
7299cacebfSCorentin Labbe		startup-delay-us = <100000>;
7399cacebfSCorentin Labbe		enable-active-high;
7499cacebfSCorentin Labbe		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
7599cacebfSCorentin Labbe	};
7699cacebfSCorentin Labbe
775313ea66SIcenowy Zheng	reg_usb0_vbus: usb0-vbus {
785313ea66SIcenowy Zheng		compatible = "regulator-fixed";
795313ea66SIcenowy Zheng		regulator-name = "usb0-vbus";
805313ea66SIcenowy Zheng		regulator-min-microvolt = <5000000>;
815313ea66SIcenowy Zheng		regulator-max-microvolt = <5000000>;
825313ea66SIcenowy Zheng		enable-active-high;
835313ea66SIcenowy Zheng		gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
845313ea66SIcenowy Zheng		status = "okay";
855313ea66SIcenowy Zheng	};
869d41bbb6SAndre Przywara};
879d41bbb6SAndre Przywara
889d41bbb6SAndre Przywara&codec {
899d41bbb6SAndre Przywara	allwinner,audio-routing =
909d41bbb6SAndre Przywara		"Line Out", "LINEOUT",
919d41bbb6SAndre Przywara		"MIC1", "Mic",
929d41bbb6SAndre Przywara		"Mic",  "MBIAS";
939d41bbb6SAndre Przywara	status = "okay";
949d41bbb6SAndre Przywara};
959d41bbb6SAndre Przywara
9622821975SJernej Skrabec&de {
9722821975SJernej Skrabec	status = "okay";
9822821975SJernej Skrabec};
9922821975SJernej Skrabec
1005313ea66SIcenowy Zheng&ehci0 {
1015313ea66SIcenowy Zheng	status = "okay";
1025313ea66SIcenowy Zheng};
1035313ea66SIcenowy Zheng
1049d41bbb6SAndre Przywara&ehci1 {
1059d41bbb6SAndre Przywara	status = "okay";
1069d41bbb6SAndre Przywara};
1079d41bbb6SAndre Przywara
1089d41bbb6SAndre Przywara&ehci2 {
1099d41bbb6SAndre Przywara	status = "okay";
1109d41bbb6SAndre Przywara};
1119d41bbb6SAndre Przywara
1129d41bbb6SAndre Przywara&ehci3 {
1139d41bbb6SAndre Przywara	status = "okay";
1149d41bbb6SAndre Przywara};
1159d41bbb6SAndre Przywara
11644a94c7eSCorentin Labbe&emac {
11744a94c7eSCorentin Labbe	pinctrl-names = "default";
11844a94c7eSCorentin Labbe	pinctrl-0 = <&emac_rgmii_pins>;
11944a94c7eSCorentin Labbe	phy-supply = <&reg_gmac_3v3>;
12044a94c7eSCorentin Labbe	phy-handle = <&ext_rgmii_phy>;
12144a94c7eSCorentin Labbe	phy-mode = "rgmii";
12244a94c7eSCorentin Labbe	status = "okay";
12344a94c7eSCorentin Labbe};
12444a94c7eSCorentin Labbe
12544a94c7eSCorentin Labbe&external_mdio {
12644a94c7eSCorentin Labbe	ext_rgmii_phy: ethernet-phy@1 {
12744a94c7eSCorentin Labbe		compatible = "ethernet-phy-ieee802.3-c22";
12844a94c7eSCorentin Labbe		reg = <1>;
12944a94c7eSCorentin Labbe	};
13044a94c7eSCorentin Labbe};
13144a94c7eSCorentin Labbe
13222821975SJernej Skrabec&hdmi {
13322821975SJernej Skrabec	status = "okay";
13422821975SJernej Skrabec};
13522821975SJernej Skrabec
13622821975SJernej Skrabec&hdmi_out {
13722821975SJernej Skrabec	hdmi_out_con: endpoint {
13822821975SJernej Skrabec		remote-endpoint = <&hdmi_con_in>;
13922821975SJernej Skrabec	};
14022821975SJernej Skrabec};
14122821975SJernej Skrabec
1429d41bbb6SAndre Przywara&ir {
1439d41bbb6SAndre Przywara	pinctrl-names = "default";
144a4dc7919SMaxime Ripard	pinctrl-0 = <&r_ir_rx_pin>;
1459d41bbb6SAndre Przywara	status = "okay";
1469d41bbb6SAndre Przywara};
1479d41bbb6SAndre Przywara
1489d41bbb6SAndre Przywara&mmc0 {
1499d41bbb6SAndre Przywara	vmmc-supply = <&reg_vcc3v3>;
1509d41bbb6SAndre Przywara	bus-width = <4>;
1519d41bbb6SAndre Przywara	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
1529d41bbb6SAndre Przywara	status = "okay";
1539d41bbb6SAndre Przywara};
1549d41bbb6SAndre Przywara
1555313ea66SIcenowy Zheng&ohci0 {
1565313ea66SIcenowy Zheng	status = "okay";
1575313ea66SIcenowy Zheng};
1585313ea66SIcenowy Zheng
1599d41bbb6SAndre Przywara&ohci1 {
1609d41bbb6SAndre Przywara	status = "okay";
1619d41bbb6SAndre Przywara};
1629d41bbb6SAndre Przywara
1639d41bbb6SAndre Przywara&ohci2 {
1649d41bbb6SAndre Przywara	status = "okay";
1659d41bbb6SAndre Przywara};
1669d41bbb6SAndre Przywara
1679d41bbb6SAndre Przywara&ohci3 {
1689d41bbb6SAndre Przywara	status = "okay";
1699d41bbb6SAndre Przywara};
1709d41bbb6SAndre Przywara
1716461315eSEmmanuel Vadot&spi0  {
1726461315eSEmmanuel Vadot	status = "okay";
1736461315eSEmmanuel Vadot
1746461315eSEmmanuel Vadot	flash@0 {
1756461315eSEmmanuel Vadot		#address-cells = <1>;
1766461315eSEmmanuel Vadot		#size-cells = <1>;
1776461315eSEmmanuel Vadot		compatible = "jedec,spi-nor";
1786461315eSEmmanuel Vadot		reg = <0>;
1796461315eSEmmanuel Vadot		spi-max-frequency = <40000000>;
1806461315eSEmmanuel Vadot	};
1816461315eSEmmanuel Vadot};
1826461315eSEmmanuel Vadot
1839d41bbb6SAndre Przywara&uart0 {
1849d41bbb6SAndre Przywara	pinctrl-names = "default";
185a4dc7919SMaxime Ripard	pinctrl-0 = <&uart0_pa_pins>;
1869d41bbb6SAndre Przywara	status = "okay";
1879d41bbb6SAndre Przywara};
1889d41bbb6SAndre Przywara
1899d41bbb6SAndre Przywara&uart1 {
1909d41bbb6SAndre Przywara	pinctrl-names = "default";
1919d41bbb6SAndre Przywara	pinctrl-0 = <&uart1_pins>;
1929d41bbb6SAndre Przywara	status = "disabled";
1939d41bbb6SAndre Przywara};
1949d41bbb6SAndre Przywara
1959d41bbb6SAndre Przywara&uart2 {
1969d41bbb6SAndre Przywara	pinctrl-names = "default";
1979d41bbb6SAndre Przywara	pinctrl-0 = <&uart2_pins>;
1989d41bbb6SAndre Przywara	status = "disabled";
1999d41bbb6SAndre Przywara};
2009d41bbb6SAndre Przywara
2015313ea66SIcenowy Zheng&usb_otg {
2025313ea66SIcenowy Zheng	dr_mode = "otg";
2035313ea66SIcenowy Zheng	status = "okay";
2045313ea66SIcenowy Zheng};
2055313ea66SIcenowy Zheng
2069d41bbb6SAndre Przywara&usbphy {
2075313ea66SIcenowy Zheng	/* USB Type-A ports' VBUS is always on */
2085313ea66SIcenowy Zheng	usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
2095313ea66SIcenowy Zheng	usb0_vbus-supply = <&reg_usb0_vbus>;
2109d41bbb6SAndre Przywara	status = "okay";
2119d41bbb6SAndre Przywara};
212