xref: /linux/scripts/dtc/include-prefixes/arm64/allwinner/sun50i-h5-nanopi-r1s-h5.dts (revision c771600c6af14749609b49565ffb4cac2959710d)
19962cb9bSChukun Pan// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
29962cb9bSChukun Pan/*
39962cb9bSChukun Pan * Copyright (C) 2021 Chukun Pan <amadeus@jmu.edu.cn>
49962cb9bSChukun Pan *
59962cb9bSChukun Pan * Based on sun50i-h5-nanopi-neo-plus2.dts, which is:
69962cb9bSChukun Pan *   Copyright (C) 2017 Antony Antony <antony@phenome.org>
79962cb9bSChukun Pan *   Copyright (C) 2016 ARM Ltd.
89962cb9bSChukun Pan */
99962cb9bSChukun Pan
109962cb9bSChukun Pan/dts-v1/;
119962cb9bSChukun Pan#include "sun50i-h5.dtsi"
129962cb9bSChukun Pan#include "sun50i-h5-cpu-opp.dtsi"
139962cb9bSChukun Pan
149962cb9bSChukun Pan#include <dt-bindings/gpio/gpio.h>
159962cb9bSChukun Pan#include <dt-bindings/input/input.h>
169962cb9bSChukun Pan#include <dt-bindings/leds/common.h>
179962cb9bSChukun Pan
189962cb9bSChukun Pan/ {
199962cb9bSChukun Pan	model = "FriendlyARM NanoPi R1S H5";
209962cb9bSChukun Pan	compatible = "friendlyarm,nanopi-r1s-h5", "allwinner,sun50i-h5";
219962cb9bSChukun Pan
229962cb9bSChukun Pan	aliases {
239962cb9bSChukun Pan		ethernet0 = &emac;
249962cb9bSChukun Pan		ethernet1 = &rtl8189etv;
259962cb9bSChukun Pan		serial0 = &uart0;
269962cb9bSChukun Pan	};
279962cb9bSChukun Pan
289962cb9bSChukun Pan	chosen {
299962cb9bSChukun Pan		stdout-path = "serial0:115200n8";
309962cb9bSChukun Pan	};
319962cb9bSChukun Pan
329962cb9bSChukun Pan	leds {
339962cb9bSChukun Pan		compatible = "gpio-leds";
349962cb9bSChukun Pan
359962cb9bSChukun Pan		led-0 {
369962cb9bSChukun Pan			function = LED_FUNCTION_LAN;
379962cb9bSChukun Pan			color = <LED_COLOR_ID_GREEN>;
389962cb9bSChukun Pan			gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>;
399962cb9bSChukun Pan		};
409962cb9bSChukun Pan
419962cb9bSChukun Pan		led-1 {
429962cb9bSChukun Pan			function = LED_FUNCTION_STATUS;
439962cb9bSChukun Pan			color = <LED_COLOR_ID_RED>;
449962cb9bSChukun Pan			gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>;
459962cb9bSChukun Pan			linux,default-trigger = "heartbeat";
469962cb9bSChukun Pan		};
479962cb9bSChukun Pan
489962cb9bSChukun Pan		led-2 {
499962cb9bSChukun Pan			function = LED_FUNCTION_WAN;
509962cb9bSChukun Pan			color = <LED_COLOR_ID_GREEN>;
519962cb9bSChukun Pan			gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>;
529962cb9bSChukun Pan		};
539962cb9bSChukun Pan	};
549962cb9bSChukun Pan
55a0bdaf59SKrzysztof Kozlowski	gpio-keys {
569962cb9bSChukun Pan		compatible = "gpio-keys";
579962cb9bSChukun Pan
58a0bdaf59SKrzysztof Kozlowski		key-reset {
599962cb9bSChukun Pan			label = "reset";
609962cb9bSChukun Pan			linux,code = <KEY_RESTART>;
619962cb9bSChukun Pan			gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
629962cb9bSChukun Pan		};
639962cb9bSChukun Pan	};
649962cb9bSChukun Pan
659962cb9bSChukun Pan	reg_gmac_3v3: gmac-3v3 {
669962cb9bSChukun Pan		compatible = "regulator-fixed";
679962cb9bSChukun Pan		regulator-name = "gmac-3v3";
689962cb9bSChukun Pan		regulator-min-microvolt = <3300000>;
699962cb9bSChukun Pan		regulator-max-microvolt = <3300000>;
709962cb9bSChukun Pan		startup-delay-us = <100000>;
719962cb9bSChukun Pan		enable-active-high;
729962cb9bSChukun Pan		gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
739962cb9bSChukun Pan	};
749962cb9bSChukun Pan
759962cb9bSChukun Pan	reg_vcc3v3: vcc3v3 {
769962cb9bSChukun Pan		compatible = "regulator-fixed";
779962cb9bSChukun Pan		regulator-name = "vcc3v3";
789962cb9bSChukun Pan		regulator-min-microvolt = <3300000>;
799962cb9bSChukun Pan		regulator-max-microvolt = <3300000>;
809962cb9bSChukun Pan	};
819962cb9bSChukun Pan
829962cb9bSChukun Pan	reg_usb0_vbus: usb0-vbus {
839962cb9bSChukun Pan		compatible = "regulator-fixed";
849962cb9bSChukun Pan		regulator-name = "usb0-vbus";
859962cb9bSChukun Pan		regulator-min-microvolt = <5000000>;
869962cb9bSChukun Pan		regulator-max-microvolt = <5000000>;
879962cb9bSChukun Pan		enable-active-high;
889962cb9bSChukun Pan		gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
899962cb9bSChukun Pan		status = "okay";
909962cb9bSChukun Pan	};
919962cb9bSChukun Pan
929962cb9bSChukun Pan	vdd_cpux: gpio-regulator {
939962cb9bSChukun Pan		compatible = "regulator-gpio";
949962cb9bSChukun Pan		regulator-name = "vdd-cpux";
959962cb9bSChukun Pan		regulator-type = "voltage";
969962cb9bSChukun Pan		regulator-boot-on;
979962cb9bSChukun Pan		regulator-always-on;
989962cb9bSChukun Pan		regulator-min-microvolt = <1100000>;
999962cb9bSChukun Pan		regulator-max-microvolt = <1300000>;
1009962cb9bSChukun Pan		regulator-ramp-delay = <50>; /* 4ms */
1019962cb9bSChukun Pan		gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>;
1029962cb9bSChukun Pan		gpios-states = <0x1>;
1039962cb9bSChukun Pan		states = <1100000 0x0>, <1300000 0x1>;
1049962cb9bSChukun Pan	};
1059962cb9bSChukun Pan
1065dfdedf0SKrzysztof Kozlowski	wifi_pwrseq: pwrseq {
1079962cb9bSChukun Pan		compatible = "mmc-pwrseq-simple";
1089962cb9bSChukun Pan		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
1099962cb9bSChukun Pan		post-power-on-delay-ms = <200>;
1109962cb9bSChukun Pan	};
1119962cb9bSChukun Pan};
1129962cb9bSChukun Pan
1139962cb9bSChukun Pan&cpu0 {
1149962cb9bSChukun Pan	cpu-supply = <&vdd_cpux>;
1159962cb9bSChukun Pan};
1169962cb9bSChukun Pan
1179962cb9bSChukun Pan&ehci1 {
1189962cb9bSChukun Pan	status = "okay";
1199962cb9bSChukun Pan};
1209962cb9bSChukun Pan
1219962cb9bSChukun Pan&ehci2 {
1229962cb9bSChukun Pan	status = "okay";
1239962cb9bSChukun Pan};
1249962cb9bSChukun Pan
1259962cb9bSChukun Pan&emac {
1269962cb9bSChukun Pan	pinctrl-names = "default";
1279962cb9bSChukun Pan	pinctrl-0 = <&emac_rgmii_pins>;
1289962cb9bSChukun Pan	phy-supply = <&reg_gmac_3v3>;
1299962cb9bSChukun Pan	phy-handle = <&ext_rgmii_phy>;
1309962cb9bSChukun Pan	phy-mode = "rgmii-id";
1319962cb9bSChukun Pan	status = "okay";
1329962cb9bSChukun Pan};
1339962cb9bSChukun Pan
1349962cb9bSChukun Pan&external_mdio {
1359962cb9bSChukun Pan	ext_rgmii_phy: ethernet-phy@7 {
1369962cb9bSChukun Pan		compatible = "ethernet-phy-ieee802.3-c22";
1379962cb9bSChukun Pan		reg = <7>;
1389962cb9bSChukun Pan	};
1399962cb9bSChukun Pan};
1409962cb9bSChukun Pan
1419962cb9bSChukun Pan&i2c0 {
1429962cb9bSChukun Pan	status = "okay";
1439962cb9bSChukun Pan
1449962cb9bSChukun Pan	eeprom@51 {
145d4949bf9SChukun Pan		compatible = "microchip,24c02", "atmel,24c02";
1469962cb9bSChukun Pan		reg = <0x51>;
1479962cb9bSChukun Pan		pagesize = <16>;
148d4949bf9SChukun Pan		read-only;
149d4949bf9SChukun Pan		#address-cells = <1>;
150d4949bf9SChukun Pan		#size-cells = <1>;
151d4949bf9SChukun Pan
152d4949bf9SChukun Pan		eth_mac1: mac-address@fa {
153d4949bf9SChukun Pan			reg = <0xfa 0x06>;
154d4949bf9SChukun Pan		};
1559962cb9bSChukun Pan	};
1569962cb9bSChukun Pan};
1579962cb9bSChukun Pan
1589962cb9bSChukun Pan&mmc0 {
1599962cb9bSChukun Pan	vmmc-supply = <&reg_vcc3v3>;
160*aee2eca8SKryštof Černý	disable-wp;
1619962cb9bSChukun Pan	bus-width = <4>;
1629962cb9bSChukun Pan	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
1639962cb9bSChukun Pan	status = "okay";
1649962cb9bSChukun Pan};
1659962cb9bSChukun Pan
1669962cb9bSChukun Pan&mmc1 {
1679962cb9bSChukun Pan	vmmc-supply = <&reg_vcc3v3>;
1689962cb9bSChukun Pan	vqmmc-supply = <&reg_vcc3v3>;
1699962cb9bSChukun Pan	mmc-pwrseq = <&wifi_pwrseq>;
1709962cb9bSChukun Pan	bus-width = <4>;
1719962cb9bSChukun Pan	non-removable;
1729962cb9bSChukun Pan	status = "okay";
1739962cb9bSChukun Pan
1745dfdedf0SKrzysztof Kozlowski	rtl8189etv: wifi@1 {
1759962cb9bSChukun Pan		reg = <1>;
1769962cb9bSChukun Pan	};
1779962cb9bSChukun Pan};
1789962cb9bSChukun Pan
1799962cb9bSChukun Pan&ohci1 {
1809962cb9bSChukun Pan	status = "okay";
1819962cb9bSChukun Pan};
1829962cb9bSChukun Pan
1839962cb9bSChukun Pan&ohci2 {
1849962cb9bSChukun Pan	status = "okay";
1859962cb9bSChukun Pan};
1869962cb9bSChukun Pan
1879962cb9bSChukun Pan&uart0 {
1889962cb9bSChukun Pan	pinctrl-names = "default";
1899962cb9bSChukun Pan	pinctrl-0 = <&uart0_pa_pins>;
1909962cb9bSChukun Pan	status = "okay";
1919962cb9bSChukun Pan};
1929962cb9bSChukun Pan
1939962cb9bSChukun Pan&usb_otg {
1949962cb9bSChukun Pan	dr_mode = "peripheral";
1959962cb9bSChukun Pan	status = "okay";
1969962cb9bSChukun Pan};
1979962cb9bSChukun Pan
1989962cb9bSChukun Pan&usbphy {
1999962cb9bSChukun Pan	/* USB Type-A port's VBUS is always on */
2009962cb9bSChukun Pan	usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
2019962cb9bSChukun Pan	usb0_vbus-supply = <&reg_usb0_vbus>;
2029962cb9bSChukun Pan	status = "okay";
2039962cb9bSChukun Pan};
204