xref: /linux/arch/arm64/boot/dts/allwinner/sun50i-h618-longanpi-3h.dts (revision c771600c6af14749609b49565ffb4cac2959710d)
1b9957d2dSJisheng Zhang// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2b9957d2dSJisheng Zhang/*
3b9957d2dSJisheng Zhang * Copyright (C) Jisheng Zhang <jszhang@kernel.org>
4b9957d2dSJisheng Zhang */
5b9957d2dSJisheng Zhang
6b9957d2dSJisheng Zhang/dts-v1/;
7b9957d2dSJisheng Zhang
8b9957d2dSJisheng Zhang#include "sun50i-h618-longan-module-3h.dtsi"
9b9957d2dSJisheng Zhang
10b9957d2dSJisheng Zhang#include <dt-bindings/gpio/gpio.h>
11b9957d2dSJisheng Zhang#include <dt-bindings/interrupt-controller/arm-gic.h>
12b9957d2dSJisheng Zhang#include <dt-bindings/leds/common.h>
13b9957d2dSJisheng Zhang
14b9957d2dSJisheng Zhang/ {
15b9957d2dSJisheng Zhang	model = "Sipeed Longan Pi 3H";
16b9957d2dSJisheng Zhang	compatible = "sipeed,longan-pi-3h", "sipeed,longan-module-3h", "allwinner,sun50i-h618";
17b9957d2dSJisheng Zhang
18b9957d2dSJisheng Zhang	aliases {
19b9957d2dSJisheng Zhang		ethernet0 = &emac0;
20b9957d2dSJisheng Zhang		serial0 = &uart0;
21b9957d2dSJisheng Zhang	};
22b9957d2dSJisheng Zhang
23b9957d2dSJisheng Zhang	chosen {
24b9957d2dSJisheng Zhang		stdout-path = "serial0:115200n8";
25b9957d2dSJisheng Zhang	};
26b9957d2dSJisheng Zhang
27b9957d2dSJisheng Zhang	leds {
28b9957d2dSJisheng Zhang		compatible = "gpio-leds";
29b9957d2dSJisheng Zhang
30b9957d2dSJisheng Zhang		led-0 {
31b9957d2dSJisheng Zhang			color = <LED_COLOR_ID_ORANGE>;
32b9957d2dSJisheng Zhang			function = LED_FUNCTION_INDICATOR;
33b9957d2dSJisheng Zhang			function-enumerator = <0>;
34b9957d2dSJisheng Zhang			gpios = <&pio 6 2 GPIO_ACTIVE_LOW>; /* PG2 */
35b9957d2dSJisheng Zhang		};
36b9957d2dSJisheng Zhang
37b9957d2dSJisheng Zhang		led-1 {
38b9957d2dSJisheng Zhang			color = <LED_COLOR_ID_ORANGE>;
39b9957d2dSJisheng Zhang			function = LED_FUNCTION_INDICATOR;
40b9957d2dSJisheng Zhang			function-enumerator = <1>;
41b9957d2dSJisheng Zhang			gpios = <&pio 6 4 GPIO_ACTIVE_LOW>; /* PG4 */
42b9957d2dSJisheng Zhang		};
43b9957d2dSJisheng Zhang	};
44b9957d2dSJisheng Zhang
45b9957d2dSJisheng Zhang	reg_vcc5v: regulator-vcc5v {
46b9957d2dSJisheng Zhang		/* board wide 5V supply directly from the USB-C socket */
47b9957d2dSJisheng Zhang		compatible = "regulator-fixed";
48b9957d2dSJisheng Zhang		regulator-name = "vcc-5v";
49b9957d2dSJisheng Zhang		regulator-min-microvolt = <5000000>;
50b9957d2dSJisheng Zhang		regulator-max-microvolt = <5000000>;
51b9957d2dSJisheng Zhang		regulator-always-on;
52b9957d2dSJisheng Zhang	};
53b9957d2dSJisheng Zhang
54b9957d2dSJisheng Zhang	reg_vcc3v3: regulator-vcc3v3 {
55b9957d2dSJisheng Zhang		compatible = "regulator-fixed";
56b9957d2dSJisheng Zhang		regulator-name = "vcc-3v3";
57b9957d2dSJisheng Zhang		regulator-min-microvolt = <3300000>;
58b9957d2dSJisheng Zhang		regulator-max-microvolt = <3300000>;
59b9957d2dSJisheng Zhang		regulator-always-on;
60b9957d2dSJisheng Zhang		vin-supply = <&reg_vcc5v>;
61b9957d2dSJisheng Zhang	};
62b9957d2dSJisheng Zhang};
63b9957d2dSJisheng Zhang
64b9957d2dSJisheng Zhang&axp313 {
65b9957d2dSJisheng Zhang	vin1-supply = <&reg_vcc5v>;
66b9957d2dSJisheng Zhang	vin2-supply = <&reg_vcc5v>;
67b9957d2dSJisheng Zhang	vin3-supply = <&reg_vcc5v>;
68b9957d2dSJisheng Zhang};
69b9957d2dSJisheng Zhang
70b9957d2dSJisheng Zhang&ehci1 {
71b9957d2dSJisheng Zhang	status = "okay";
72b9957d2dSJisheng Zhang};
73b9957d2dSJisheng Zhang
74b9957d2dSJisheng Zhang&ohci1 {
75b9957d2dSJisheng Zhang	status = "okay";
76b9957d2dSJisheng Zhang};
77b9957d2dSJisheng Zhang
78b9957d2dSJisheng Zhang&ehci2 {
79b9957d2dSJisheng Zhang	status = "okay";
80b9957d2dSJisheng Zhang};
81b9957d2dSJisheng Zhang
82b9957d2dSJisheng Zhang&ohci2 {
83b9957d2dSJisheng Zhang	status = "okay";
84b9957d2dSJisheng Zhang};
85b9957d2dSJisheng Zhang
86b9957d2dSJisheng Zhang/* WiFi & BT combo module is connected to this Host */
87b9957d2dSJisheng Zhang&ehci3 {
88b9957d2dSJisheng Zhang	status = "okay";
89b9957d2dSJisheng Zhang};
90b9957d2dSJisheng Zhang
91b9957d2dSJisheng Zhang&ohci3 {
92b9957d2dSJisheng Zhang	status = "okay";
93b9957d2dSJisheng Zhang};
94b9957d2dSJisheng Zhang
95b9957d2dSJisheng Zhang&emac0 {
96b9957d2dSJisheng Zhang	pinctrl-names = "default";
97b9957d2dSJisheng Zhang	pinctrl-0 = <&ext_rgmii_pins>;
98b9957d2dSJisheng Zhang	phy-mode = "rgmii";
99b9957d2dSJisheng Zhang	phy-handle = <&ext_rgmii_phy>;
100b9957d2dSJisheng Zhang	allwinner,rx-delay-ps = <3100>;
101b9957d2dSJisheng Zhang	allwinner,tx-delay-ps = <700>;
102b9957d2dSJisheng Zhang	phy-supply = <&reg_vcc3v3>;
103b9957d2dSJisheng Zhang	status = "okay";
104b9957d2dSJisheng Zhang};
105b9957d2dSJisheng Zhang
106b9957d2dSJisheng Zhang&mdio0 {
107b9957d2dSJisheng Zhang	ext_rgmii_phy: ethernet-phy@1 {
108b9957d2dSJisheng Zhang		compatible = "ethernet-phy-ieee802.3-c22";
109b9957d2dSJisheng Zhang		reg = <1>;
110b9957d2dSJisheng Zhang	};
111b9957d2dSJisheng Zhang};
112b9957d2dSJisheng Zhang
113b9957d2dSJisheng Zhang&mmc0 {
114*aee2eca8SKryštof Černý	disable-wp;
115b9957d2dSJisheng Zhang	bus-width = <4>;
116b9957d2dSJisheng Zhang	cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;	/* PF6 */
117b9957d2dSJisheng Zhang	vmmc-supply = <&reg_vcc3v3>;
118b9957d2dSJisheng Zhang	status = "okay";
119b9957d2dSJisheng Zhang};
120b9957d2dSJisheng Zhang
121b9957d2dSJisheng Zhang&uart0 {
122b9957d2dSJisheng Zhang	status = "okay";
123b9957d2dSJisheng Zhang};
124b9957d2dSJisheng Zhang
125b9957d2dSJisheng Zhang&usbotg {
126b9957d2dSJisheng Zhang	/*
127b9957d2dSJisheng Zhang	 * PHY0 pins are connected to a USB-C socket, but a role switch
128b9957d2dSJisheng Zhang	 * is not implemented: both CC pins are pulled to GND.
129b9957d2dSJisheng Zhang	 * The VBUS pins power the device, so a fixed peripheral mode
130b9957d2dSJisheng Zhang	 * is the best choice.
131b9957d2dSJisheng Zhang	 * The board can be powered via GPIOs, in this case port0 *can*
132b9957d2dSJisheng Zhang	 * act as a host (with a cable/adapter ignoring CC), as VBUS is
133b9957d2dSJisheng Zhang	 * then provided by the GPIOs. Any user of this setup would
134b9957d2dSJisheng Zhang	 * need to adjust the DT accordingly: dr_mode set to "host",
135b9957d2dSJisheng Zhang	 * enabling OHCI0 and EHCI0.
136b9957d2dSJisheng Zhang	 */
137b9957d2dSJisheng Zhang	dr_mode = "peripheral";
138b9957d2dSJisheng Zhang	status = "okay";
139b9957d2dSJisheng Zhang};
140b9957d2dSJisheng Zhang
141b9957d2dSJisheng Zhang&usbphy {
142b9957d2dSJisheng Zhang	usb1_vbus-supply = <&reg_vcc5v>;
143b9957d2dSJisheng Zhang	usb2_vbus-supply = <&reg_vcc5v>;
144b9957d2dSJisheng Zhang	status = "okay";
145b9957d2dSJisheng Zhang};
146