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
45e299e6ddSMaxime Ripard		led-0 {
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
51e299e6ddSMaxime Ripard		led-1 {
529d41bbb6SAndre Przywara			label = "orangepi:red:status";
539d41bbb6SAndre Przywara			gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
549d41bbb6SAndre Przywara		};
559d41bbb6SAndre Przywara	};
569d41bbb6SAndre Przywara
57*a0bdaf59SKrzysztof Kozlowski	gpio-keys {
589d41bbb6SAndre Przywara		compatible = "gpio-keys";
599d41bbb6SAndre Przywara
60*a0bdaf59SKrzysztof Kozlowski		key-sw4 {
619d41bbb6SAndre Przywara			label = "sw4";
629d41bbb6SAndre Przywara			linux,code = <BTN_0>;
639d41bbb6SAndre Przywara			gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
64787615adSSamuel Holland			wakeup-source;
659d41bbb6SAndre Przywara		};
669d41bbb6SAndre Przywara	};
675313ea66SIcenowy Zheng
6899cacebfSCorentin Labbe	reg_gmac_3v3: gmac-3v3 {
6999cacebfSCorentin Labbe		compatible = "regulator-fixed";
7099cacebfSCorentin Labbe		regulator-name = "gmac-3v3";
7199cacebfSCorentin Labbe		regulator-min-microvolt = <3300000>;
7299cacebfSCorentin Labbe		regulator-max-microvolt = <3300000>;
7399cacebfSCorentin Labbe		startup-delay-us = <100000>;
7499cacebfSCorentin Labbe		enable-active-high;
7599cacebfSCorentin Labbe		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
7699cacebfSCorentin Labbe	};
7799cacebfSCorentin Labbe
785313ea66SIcenowy Zheng	reg_usb0_vbus: usb0-vbus {
795313ea66SIcenowy Zheng		compatible = "regulator-fixed";
805313ea66SIcenowy Zheng		regulator-name = "usb0-vbus";
815313ea66SIcenowy Zheng		regulator-min-microvolt = <5000000>;
825313ea66SIcenowy Zheng		regulator-max-microvolt = <5000000>;
835313ea66SIcenowy Zheng		enable-active-high;
845313ea66SIcenowy Zheng		gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
855313ea66SIcenowy Zheng		status = "okay";
865313ea66SIcenowy Zheng	};
879d41bbb6SAndre Przywara};
889d41bbb6SAndre Przywara
899d41bbb6SAndre Przywara&codec {
909d41bbb6SAndre Przywara	allwinner,audio-routing =
919d41bbb6SAndre Przywara		"Line Out", "LINEOUT",
929d41bbb6SAndre Przywara		"MIC1", "Mic",
939d41bbb6SAndre Przywara		"Mic",  "MBIAS";
949d41bbb6SAndre Przywara	status = "okay";
959d41bbb6SAndre Przywara};
969d41bbb6SAndre Przywara
973abe422fSOndrej Jirman&cpu0 {
983abe422fSOndrej Jirman	cpu-supply = <&reg_vdd_cpux>;
993abe422fSOndrej Jirman};
1003abe422fSOndrej Jirman
10122821975SJernej Skrabec&de {
10222821975SJernej Skrabec	status = "okay";
10322821975SJernej Skrabec};
10422821975SJernej Skrabec
1055313ea66SIcenowy Zheng&ehci0 {
1065313ea66SIcenowy Zheng	status = "okay";
1075313ea66SIcenowy Zheng};
1085313ea66SIcenowy Zheng
1099d41bbb6SAndre Przywara&ehci1 {
1109d41bbb6SAndre Przywara	status = "okay";
1119d41bbb6SAndre Przywara};
1129d41bbb6SAndre Przywara
1139d41bbb6SAndre Przywara&ehci2 {
1149d41bbb6SAndre Przywara	status = "okay";
1159d41bbb6SAndre Przywara};
1169d41bbb6SAndre Przywara
1179d41bbb6SAndre Przywara&ehci3 {
1189d41bbb6SAndre Przywara	status = "okay";
1199d41bbb6SAndre Przywara};
1209d41bbb6SAndre Przywara
12144a94c7eSCorentin Labbe&emac {
12244a94c7eSCorentin Labbe	pinctrl-names = "default";
12344a94c7eSCorentin Labbe	pinctrl-0 = <&emac_rgmii_pins>;
12444a94c7eSCorentin Labbe	phy-supply = <&reg_gmac_3v3>;
12544a94c7eSCorentin Labbe	phy-handle = <&ext_rgmii_phy>;
126b34bf9f6SJernej Skrabec	phy-mode = "rgmii-id";
12744a94c7eSCorentin Labbe	status = "okay";
12844a94c7eSCorentin Labbe};
12944a94c7eSCorentin Labbe
13044a94c7eSCorentin Labbe&external_mdio {
13144a94c7eSCorentin Labbe	ext_rgmii_phy: ethernet-phy@1 {
13244a94c7eSCorentin Labbe		compatible = "ethernet-phy-ieee802.3-c22";
13344a94c7eSCorentin Labbe		reg = <1>;
13444a94c7eSCorentin Labbe	};
13544a94c7eSCorentin Labbe};
13644a94c7eSCorentin Labbe
13722821975SJernej Skrabec&hdmi {
13822821975SJernej Skrabec	status = "okay";
13922821975SJernej Skrabec};
14022821975SJernej Skrabec
14122821975SJernej Skrabec&hdmi_out {
14222821975SJernej Skrabec	hdmi_out_con: endpoint {
14322821975SJernej Skrabec		remote-endpoint = <&hdmi_con_in>;
14422821975SJernej Skrabec	};
14522821975SJernej Skrabec};
14622821975SJernej Skrabec
1479d41bbb6SAndre Przywara&ir {
1489d41bbb6SAndre Przywara	pinctrl-names = "default";
149a4dc7919SMaxime Ripard	pinctrl-0 = <&r_ir_rx_pin>;
1509d41bbb6SAndre Przywara	status = "okay";
1519d41bbb6SAndre Przywara};
1529d41bbb6SAndre Przywara
1539d41bbb6SAndre Przywara&mmc0 {
1549d41bbb6SAndre Przywara	vmmc-supply = <&reg_vcc3v3>;
1559d41bbb6SAndre Przywara	bus-width = <4>;
1569d41bbb6SAndre Przywara	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
1579d41bbb6SAndre Przywara	status = "okay";
1589d41bbb6SAndre Przywara};
1599d41bbb6SAndre Przywara
1605313ea66SIcenowy Zheng&ohci0 {
1615313ea66SIcenowy Zheng	status = "okay";
1625313ea66SIcenowy Zheng};
1635313ea66SIcenowy Zheng
1649d41bbb6SAndre Przywara&ohci1 {
1659d41bbb6SAndre Przywara	status = "okay";
1669d41bbb6SAndre Przywara};
1679d41bbb6SAndre Przywara
1689d41bbb6SAndre Przywara&ohci2 {
1699d41bbb6SAndre Przywara	status = "okay";
1709d41bbb6SAndre Przywara};
1719d41bbb6SAndre Przywara
1729d41bbb6SAndre Przywara&ohci3 {
1739d41bbb6SAndre Przywara	status = "okay";
1749d41bbb6SAndre Przywara};
1759d41bbb6SAndre Przywara
1763abe422fSOndrej Jirman&r_i2c {
1773abe422fSOndrej Jirman	status = "okay";
1783abe422fSOndrej Jirman
1793abe422fSOndrej Jirman	reg_vdd_cpux: regulator@65 {
1803abe422fSOndrej Jirman		compatible = "silergy,sy8106a";
1813abe422fSOndrej Jirman		reg = <0x65>;
1823abe422fSOndrej Jirman		regulator-name = "vdd-cpux";
1833abe422fSOndrej Jirman		silergy,fixed-microvolt = <1100000>;
1843abe422fSOndrej Jirman		regulator-min-microvolt = <1000000>;
1853abe422fSOndrej Jirman		regulator-max-microvolt = <1400000>;
1863abe422fSOndrej Jirman		regulator-ramp-delay = <200>;
1873abe422fSOndrej Jirman		regulator-boot-on;
1883abe422fSOndrej Jirman		regulator-always-on;
1893abe422fSOndrej Jirman	};
1903abe422fSOndrej Jirman};
1913abe422fSOndrej Jirman
1926461315eSEmmanuel Vadot&spi0  {
1936461315eSEmmanuel Vadot	status = "okay";
1946461315eSEmmanuel Vadot
1956461315eSEmmanuel Vadot	flash@0 {
1966461315eSEmmanuel Vadot		#address-cells = <1>;
1976461315eSEmmanuel Vadot		#size-cells = <1>;
1986461315eSEmmanuel Vadot		compatible = "jedec,spi-nor";
1996461315eSEmmanuel Vadot		reg = <0>;
2006461315eSEmmanuel Vadot		spi-max-frequency = <40000000>;
2016461315eSEmmanuel Vadot	};
2026461315eSEmmanuel Vadot};
2036461315eSEmmanuel Vadot
2049d41bbb6SAndre Przywara&uart0 {
2059d41bbb6SAndre Przywara	pinctrl-names = "default";
206a4dc7919SMaxime Ripard	pinctrl-0 = <&uart0_pa_pins>;
2079d41bbb6SAndre Przywara	status = "okay";
2089d41bbb6SAndre Przywara};
2099d41bbb6SAndre Przywara
2109d41bbb6SAndre Przywara&uart1 {
2119d41bbb6SAndre Przywara	pinctrl-names = "default";
2129d41bbb6SAndre Przywara	pinctrl-0 = <&uart1_pins>;
2139d41bbb6SAndre Przywara	status = "disabled";
2149d41bbb6SAndre Przywara};
2159d41bbb6SAndre Przywara
2169d41bbb6SAndre Przywara&uart2 {
2179d41bbb6SAndre Przywara	pinctrl-names = "default";
2189d41bbb6SAndre Przywara	pinctrl-0 = <&uart2_pins>;
2199d41bbb6SAndre Przywara	status = "disabled";
2209d41bbb6SAndre Przywara};
2219d41bbb6SAndre Przywara
2225313ea66SIcenowy Zheng&usb_otg {
2235313ea66SIcenowy Zheng	dr_mode = "otg";
2245313ea66SIcenowy Zheng	status = "okay";
2255313ea66SIcenowy Zheng};
2265313ea66SIcenowy Zheng
2279d41bbb6SAndre Przywara&usbphy {
2285313ea66SIcenowy Zheng	/* USB Type-A ports' VBUS is always on */
2295313ea66SIcenowy Zheng	usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
2305313ea66SIcenowy Zheng	usb0_vbus-supply = <&reg_usb0_vbus>;
2319d41bbb6SAndre Przywara	status = "okay";
2329d41bbb6SAndre Przywara};
233