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"
6*23ca1dd4SAndre Przywara#include "sun50i-h5-cpu-opp.dtsi"
79d41bbb6SAndre Przywara
89d41bbb6SAndre Przywara#include <dt-bindings/gpio/gpio.h>
99d41bbb6SAndre Przywara#include <dt-bindings/input/input.h>
109d41bbb6SAndre Przywara#include <dt-bindings/pinctrl/sun4i-a10.h>
119d41bbb6SAndre Przywara
129d41bbb6SAndre Przywara/ {
139d41bbb6SAndre Przywara	model = "Xunlong Orange Pi PC 2";
149d41bbb6SAndre Przywara	compatible = "xunlong,orangepi-pc2", "allwinner,sun50i-h5";
159d41bbb6SAndre Przywara
169d41bbb6SAndre Przywara	reg_vcc3v3: vcc3v3 {
179d41bbb6SAndre Przywara		compatible = "regulator-fixed";
189d41bbb6SAndre Przywara		regulator-name = "vcc3v3";
199d41bbb6SAndre Przywara		regulator-min-microvolt = <3300000>;
209d41bbb6SAndre Przywara		regulator-max-microvolt = <3300000>;
219d41bbb6SAndre Przywara	};
229d41bbb6SAndre Przywara
239d41bbb6SAndre Przywara	aliases {
2444a94c7eSCorentin Labbe		ethernet0 = &emac;
259d41bbb6SAndre Przywara		serial0 = &uart0;
269d41bbb6SAndre Przywara	};
279d41bbb6SAndre Przywara
289d41bbb6SAndre Przywara	chosen {
299d41bbb6SAndre Przywara		stdout-path = "serial0:115200n8";
309d41bbb6SAndre Przywara	};
319d41bbb6SAndre Przywara
3222821975SJernej Skrabec	connector {
3322821975SJernej Skrabec		compatible = "hdmi-connector";
3422821975SJernej Skrabec		type = "a";
3522821975SJernej Skrabec
3622821975SJernej Skrabec		port {
3722821975SJernej Skrabec			hdmi_con_in: endpoint {
3822821975SJernej Skrabec				remote-endpoint = <&hdmi_out_con>;
3922821975SJernej Skrabec			};
4022821975SJernej Skrabec		};
4122821975SJernej Skrabec	};
4222821975SJernej Skrabec
439d41bbb6SAndre Przywara	leds {
449d41bbb6SAndre Przywara		compatible = "gpio-leds";
459d41bbb6SAndre Przywara
46e299e6ddSMaxime Ripard		led-0 {
479d41bbb6SAndre Przywara			label = "orangepi:green:pwr";
489d41bbb6SAndre Przywara			gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
499d41bbb6SAndre Przywara			default-state = "on";
509d41bbb6SAndre Przywara		};
519d41bbb6SAndre Przywara
52e299e6ddSMaxime Ripard		led-1 {
539d41bbb6SAndre Przywara			label = "orangepi:red:status";
549d41bbb6SAndre Przywara			gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
559d41bbb6SAndre Przywara		};
569d41bbb6SAndre Przywara	};
579d41bbb6SAndre Przywara
58a0bdaf59SKrzysztof Kozlowski	gpio-keys {
599d41bbb6SAndre Przywara		compatible = "gpio-keys";
609d41bbb6SAndre Przywara
61a0bdaf59SKrzysztof Kozlowski		key-sw4 {
629d41bbb6SAndre Przywara			label = "sw4";
639d41bbb6SAndre Przywara			linux,code = <BTN_0>;
649d41bbb6SAndre Przywara			gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
65787615adSSamuel Holland			wakeup-source;
669d41bbb6SAndre Przywara		};
679d41bbb6SAndre Przywara	};
685313ea66SIcenowy Zheng
6999cacebfSCorentin Labbe	reg_gmac_3v3: gmac-3v3 {
7099cacebfSCorentin Labbe		compatible = "regulator-fixed";
7199cacebfSCorentin Labbe		regulator-name = "gmac-3v3";
7299cacebfSCorentin Labbe		regulator-min-microvolt = <3300000>;
7399cacebfSCorentin Labbe		regulator-max-microvolt = <3300000>;
7499cacebfSCorentin Labbe		startup-delay-us = <100000>;
7599cacebfSCorentin Labbe		enable-active-high;
7699cacebfSCorentin Labbe		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
7799cacebfSCorentin Labbe	};
7899cacebfSCorentin Labbe
795313ea66SIcenowy Zheng	reg_usb0_vbus: usb0-vbus {
805313ea66SIcenowy Zheng		compatible = "regulator-fixed";
815313ea66SIcenowy Zheng		regulator-name = "usb0-vbus";
825313ea66SIcenowy Zheng		regulator-min-microvolt = <5000000>;
835313ea66SIcenowy Zheng		regulator-max-microvolt = <5000000>;
845313ea66SIcenowy Zheng		enable-active-high;
855313ea66SIcenowy Zheng		gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
865313ea66SIcenowy Zheng		status = "okay";
875313ea66SIcenowy Zheng	};
889d41bbb6SAndre Przywara};
899d41bbb6SAndre Przywara
909d41bbb6SAndre Przywara&codec {
919d41bbb6SAndre Przywara	allwinner,audio-routing =
929d41bbb6SAndre Przywara		"Line Out", "LINEOUT",
939d41bbb6SAndre Przywara		"MIC1", "Mic",
949d41bbb6SAndre Przywara		"Mic",  "MBIAS";
959d41bbb6SAndre Przywara	status = "okay";
969d41bbb6SAndre Przywara};
979d41bbb6SAndre Przywara
983abe422fSOndrej Jirman&cpu0 {
993abe422fSOndrej Jirman	cpu-supply = <&reg_vdd_cpux>;
1003abe422fSOndrej Jirman};
1013abe422fSOndrej Jirman
10222821975SJernej Skrabec&de {
10322821975SJernej Skrabec	status = "okay";
10422821975SJernej Skrabec};
10522821975SJernej Skrabec
1065313ea66SIcenowy Zheng&ehci0 {
1075313ea66SIcenowy Zheng	status = "okay";
1085313ea66SIcenowy Zheng};
1095313ea66SIcenowy Zheng
1109d41bbb6SAndre Przywara&ehci1 {
1119d41bbb6SAndre Przywara	status = "okay";
1129d41bbb6SAndre Przywara};
1139d41bbb6SAndre Przywara
1149d41bbb6SAndre Przywara&ehci2 {
1159d41bbb6SAndre Przywara	status = "okay";
1169d41bbb6SAndre Przywara};
1179d41bbb6SAndre Przywara
1189d41bbb6SAndre Przywara&ehci3 {
1199d41bbb6SAndre Przywara	status = "okay";
1209d41bbb6SAndre Przywara};
1219d41bbb6SAndre Przywara
12244a94c7eSCorentin Labbe&emac {
12344a94c7eSCorentin Labbe	pinctrl-names = "default";
12444a94c7eSCorentin Labbe	pinctrl-0 = <&emac_rgmii_pins>;
12544a94c7eSCorentin Labbe	phy-supply = <&reg_gmac_3v3>;
12644a94c7eSCorentin Labbe	phy-handle = <&ext_rgmii_phy>;
127b34bf9f6SJernej Skrabec	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
1489d41bbb6SAndre Przywara&ir {
1499d41bbb6SAndre Przywara	pinctrl-names = "default";
150a4dc7919SMaxime Ripard	pinctrl-0 = <&r_ir_rx_pin>;
1519d41bbb6SAndre Przywara	status = "okay";
1529d41bbb6SAndre Przywara};
1539d41bbb6SAndre Przywara
1549d41bbb6SAndre Przywara&mmc0 {
1559d41bbb6SAndre Przywara	vmmc-supply = <&reg_vcc3v3>;
1569d41bbb6SAndre Przywara	bus-width = <4>;
1579d41bbb6SAndre Przywara	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
1589d41bbb6SAndre Przywara	status = "okay";
1599d41bbb6SAndre Przywara};
1609d41bbb6SAndre Przywara
1615313ea66SIcenowy Zheng&ohci0 {
1625313ea66SIcenowy Zheng	status = "okay";
1635313ea66SIcenowy Zheng};
1645313ea66SIcenowy Zheng
1659d41bbb6SAndre Przywara&ohci1 {
1669d41bbb6SAndre Przywara	status = "okay";
1679d41bbb6SAndre Przywara};
1689d41bbb6SAndre Przywara
1699d41bbb6SAndre Przywara&ohci2 {
1709d41bbb6SAndre Przywara	status = "okay";
1719d41bbb6SAndre Przywara};
1729d41bbb6SAndre Przywara
1739d41bbb6SAndre Przywara&ohci3 {
1749d41bbb6SAndre Przywara	status = "okay";
1759d41bbb6SAndre Przywara};
1769d41bbb6SAndre Przywara
1773abe422fSOndrej Jirman&r_i2c {
1783abe422fSOndrej Jirman	status = "okay";
1793abe422fSOndrej Jirman
1803abe422fSOndrej Jirman	reg_vdd_cpux: regulator@65 {
1813abe422fSOndrej Jirman		compatible = "silergy,sy8106a";
1823abe422fSOndrej Jirman		reg = <0x65>;
1833abe422fSOndrej Jirman		regulator-name = "vdd-cpux";
1843abe422fSOndrej Jirman		silergy,fixed-microvolt = <1100000>;
1853abe422fSOndrej Jirman		regulator-min-microvolt = <1000000>;
1863abe422fSOndrej Jirman		regulator-max-microvolt = <1400000>;
1873abe422fSOndrej Jirman		regulator-ramp-delay = <200>;
1883abe422fSOndrej Jirman		regulator-boot-on;
1893abe422fSOndrej Jirman		regulator-always-on;
1903abe422fSOndrej Jirman	};
1913abe422fSOndrej Jirman};
1923abe422fSOndrej Jirman
1936461315eSEmmanuel Vadot&spi0  {
1946461315eSEmmanuel Vadot	status = "okay";
1956461315eSEmmanuel Vadot
1966461315eSEmmanuel Vadot	flash@0 {
1976461315eSEmmanuel Vadot		#address-cells = <1>;
1986461315eSEmmanuel Vadot		#size-cells = <1>;
1996461315eSEmmanuel Vadot		compatible = "jedec,spi-nor";
2006461315eSEmmanuel Vadot		reg = <0>;
2016461315eSEmmanuel Vadot		spi-max-frequency = <40000000>;
2026461315eSEmmanuel Vadot	};
2036461315eSEmmanuel Vadot};
2046461315eSEmmanuel Vadot
2059d41bbb6SAndre Przywara&uart0 {
2069d41bbb6SAndre Przywara	pinctrl-names = "default";
207a4dc7919SMaxime Ripard	pinctrl-0 = <&uart0_pa_pins>;
2089d41bbb6SAndre Przywara	status = "okay";
2099d41bbb6SAndre Przywara};
2109d41bbb6SAndre Przywara
2119d41bbb6SAndre Przywara&uart1 {
2129d41bbb6SAndre Przywara	pinctrl-names = "default";
2139d41bbb6SAndre Przywara	pinctrl-0 = <&uart1_pins>;
2149d41bbb6SAndre Przywara	status = "disabled";
2159d41bbb6SAndre Przywara};
2169d41bbb6SAndre Przywara
2179d41bbb6SAndre Przywara&uart2 {
2189d41bbb6SAndre Przywara	pinctrl-names = "default";
2199d41bbb6SAndre Przywara	pinctrl-0 = <&uart2_pins>;
2209d41bbb6SAndre Przywara	status = "disabled";
2219d41bbb6SAndre Przywara};
2229d41bbb6SAndre Przywara
2235313ea66SIcenowy Zheng&usb_otg {
2245313ea66SIcenowy Zheng	dr_mode = "otg";
2255313ea66SIcenowy Zheng	status = "okay";
2265313ea66SIcenowy Zheng};
2275313ea66SIcenowy Zheng
2289d41bbb6SAndre Przywara&usbphy {
2295313ea66SIcenowy Zheng	/* USB Type-A ports' VBUS is always on */
2305313ea66SIcenowy Zheng	usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
2315313ea66SIcenowy Zheng	usb0_vbus-supply = <&reg_usb0_vbus>;
2329d41bbb6SAndre Przywara	status = "okay";
2339d41bbb6SAndre Przywara};
234