1*96a35ab9SSamuel Holland// SPDX-License-Identifier: (GPL-2.0+ or MIT)
2*96a35ab9SSamuel Holland// Copyright (C) 2022 Samuel Holland <samuel@sholland.org>
3*96a35ab9SSamuel Holland
4*96a35ab9SSamuel Holland#include <dt-bindings/gpio/gpio.h>
5*96a35ab9SSamuel Holland#include <dt-bindings/leds/common.h>
6*96a35ab9SSamuel Holland
7*96a35ab9SSamuel Holland/dts-v1/;
8*96a35ab9SSamuel Holland
9*96a35ab9SSamuel Holland#include "sun20i-d1.dtsi"
10*96a35ab9SSamuel Holland#include "sun20i-common-regulators.dtsi"
11*96a35ab9SSamuel Holland
12*96a35ab9SSamuel Holland/ {
13*96a35ab9SSamuel Holland	model = "MangoPi MQ Pro";
14*96a35ab9SSamuel Holland	compatible = "widora,mangopi-mq-pro", "allwinner,sun20i-d1";
15*96a35ab9SSamuel Holland
16*96a35ab9SSamuel Holland	aliases {
17*96a35ab9SSamuel Holland		ethernet0 = &rtl8723ds;
18*96a35ab9SSamuel Holland		serial0 = &uart0;
19*96a35ab9SSamuel Holland	};
20*96a35ab9SSamuel Holland
21*96a35ab9SSamuel Holland	chosen {
22*96a35ab9SSamuel Holland		stdout-path = "serial0:115200n8";
23*96a35ab9SSamuel Holland	};
24*96a35ab9SSamuel Holland
25*96a35ab9SSamuel Holland	leds {
26*96a35ab9SSamuel Holland		compatible = "gpio-leds";
27*96a35ab9SSamuel Holland
28*96a35ab9SSamuel Holland		led-0 {
29*96a35ab9SSamuel Holland			color = <LED_COLOR_ID_BLUE>;
30*96a35ab9SSamuel Holland			function = LED_FUNCTION_STATUS;
31*96a35ab9SSamuel Holland			gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */
32*96a35ab9SSamuel Holland		};
33*96a35ab9SSamuel Holland	};
34*96a35ab9SSamuel Holland
35*96a35ab9SSamuel Holland	reg_avdd2v8: avdd2v8 {
36*96a35ab9SSamuel Holland		compatible = "regulator-fixed";
37*96a35ab9SSamuel Holland		regulator-name = "avdd2v8";
38*96a35ab9SSamuel Holland		regulator-min-microvolt = <2800000>;
39*96a35ab9SSamuel Holland		regulator-max-microvolt = <2800000>;
40*96a35ab9SSamuel Holland		vin-supply = <&reg_vcc_3v3>;
41*96a35ab9SSamuel Holland	};
42*96a35ab9SSamuel Holland
43*96a35ab9SSamuel Holland	reg_dvdd: dvdd {
44*96a35ab9SSamuel Holland		compatible = "regulator-fixed";
45*96a35ab9SSamuel Holland		regulator-name = "dvdd";
46*96a35ab9SSamuel Holland		regulator-min-microvolt = <1200000>;
47*96a35ab9SSamuel Holland		regulator-max-microvolt = <1200000>;
48*96a35ab9SSamuel Holland		vin-supply = <&reg_vcc_3v3>;
49*96a35ab9SSamuel Holland	};
50*96a35ab9SSamuel Holland
51*96a35ab9SSamuel Holland	reg_vdd_cpu: vdd-cpu {
52*96a35ab9SSamuel Holland		compatible = "regulator-fixed";
53*96a35ab9SSamuel Holland		regulator-name = "vdd-cpu";
54*96a35ab9SSamuel Holland		regulator-min-microvolt = <1100000>;
55*96a35ab9SSamuel Holland		regulator-max-microvolt = <1100000>;
56*96a35ab9SSamuel Holland		vin-supply = <&reg_vcc>;
57*96a35ab9SSamuel Holland	};
58*96a35ab9SSamuel Holland
59*96a35ab9SSamuel Holland	wifi_pwrseq: wifi-pwrseq {
60*96a35ab9SSamuel Holland		compatible = "mmc-pwrseq-simple";
61*96a35ab9SSamuel Holland		reset-gpios = <&pio 6 17 GPIO_ACTIVE_LOW>; /* PG17 */
62*96a35ab9SSamuel Holland	};
63*96a35ab9SSamuel Holland};
64*96a35ab9SSamuel Holland
65*96a35ab9SSamuel Holland&cpu0 {
66*96a35ab9SSamuel Holland	cpu-supply = <&reg_vdd_cpu>;
67*96a35ab9SSamuel Holland};
68*96a35ab9SSamuel Holland
69*96a35ab9SSamuel Holland&dcxo {
70*96a35ab9SSamuel Holland	clock-frequency = <24000000>;
71*96a35ab9SSamuel Holland};
72*96a35ab9SSamuel Holland
73*96a35ab9SSamuel Holland&ehci1 {
74*96a35ab9SSamuel Holland	status = "okay";
75*96a35ab9SSamuel Holland};
76*96a35ab9SSamuel Holland
77*96a35ab9SSamuel Holland&mmc0 {
78*96a35ab9SSamuel Holland	bus-width = <4>;
79*96a35ab9SSamuel Holland	cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
80*96a35ab9SSamuel Holland	disable-wp;
81*96a35ab9SSamuel Holland	vmmc-supply = <&reg_vcc_3v3>;
82*96a35ab9SSamuel Holland	vqmmc-supply = <&reg_vcc_3v3>;
83*96a35ab9SSamuel Holland	pinctrl-0 = <&mmc0_pins>;
84*96a35ab9SSamuel Holland	pinctrl-names = "default";
85*96a35ab9SSamuel Holland	status = "okay";
86*96a35ab9SSamuel Holland};
87*96a35ab9SSamuel Holland
88*96a35ab9SSamuel Holland&mmc1 {
89*96a35ab9SSamuel Holland	bus-width = <4>;
90*96a35ab9SSamuel Holland	mmc-pwrseq = <&wifi_pwrseq>;
91*96a35ab9SSamuel Holland	non-removable;
92*96a35ab9SSamuel Holland	vmmc-supply = <&reg_vcc_3v3>;
93*96a35ab9SSamuel Holland	vqmmc-supply = <&reg_vcc_3v3>;
94*96a35ab9SSamuel Holland	pinctrl-0 = <&mmc1_pins>;
95*96a35ab9SSamuel Holland	pinctrl-names = "default";
96*96a35ab9SSamuel Holland	status = "okay";
97*96a35ab9SSamuel Holland
98*96a35ab9SSamuel Holland	rtl8723ds: wifi@1 {
99*96a35ab9SSamuel Holland		reg = <1>;
100*96a35ab9SSamuel Holland		interrupt-parent = <&pio>;
101*96a35ab9SSamuel Holland		interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 */
102*96a35ab9SSamuel Holland		interrupt-names = "host-wake";
103*96a35ab9SSamuel Holland	};
104*96a35ab9SSamuel Holland};
105*96a35ab9SSamuel Holland
106*96a35ab9SSamuel Holland&ohci1 {
107*96a35ab9SSamuel Holland	status = "okay";
108*96a35ab9SSamuel Holland};
109*96a35ab9SSamuel Holland
110*96a35ab9SSamuel Holland&pio {
111*96a35ab9SSamuel Holland	vcc-pe-supply = <&reg_avdd2v8>;
112*96a35ab9SSamuel Holland};
113*96a35ab9SSamuel Holland
114*96a35ab9SSamuel Holland&uart0 {
115*96a35ab9SSamuel Holland	pinctrl-0 = <&uart0_pb8_pins>;
116*96a35ab9SSamuel Holland	pinctrl-names = "default";
117*96a35ab9SSamuel Holland	status = "okay";
118*96a35ab9SSamuel Holland};
119*96a35ab9SSamuel Holland
120*96a35ab9SSamuel Holland&uart1 {
121*96a35ab9SSamuel Holland	uart-has-rtscts;
122*96a35ab9SSamuel Holland	pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>;
123*96a35ab9SSamuel Holland	pinctrl-names = "default";
124*96a35ab9SSamuel Holland	status = "okay";
125*96a35ab9SSamuel Holland
126*96a35ab9SSamuel Holland	bluetooth {
127*96a35ab9SSamuel Holland		compatible = "realtek,rtl8723ds-bt";
128*96a35ab9SSamuel Holland		device-wake-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18 */
129*96a35ab9SSamuel Holland		enable-gpios = <&pio 6 15 GPIO_ACTIVE_HIGH>; /* PG15 */
130*96a35ab9SSamuel Holland		host-wake-gpios = <&pio 6 14 GPIO_ACTIVE_HIGH>; /* PG14 */
131*96a35ab9SSamuel Holland	};
132*96a35ab9SSamuel Holland};
133*96a35ab9SSamuel Holland
134*96a35ab9SSamuel Holland&usb_otg {
135*96a35ab9SSamuel Holland	dr_mode = "peripheral";
136*96a35ab9SSamuel Holland	status = "okay";
137*96a35ab9SSamuel Holland};
138*96a35ab9SSamuel Holland
139*96a35ab9SSamuel Holland&usbphy {
140*96a35ab9SSamuel Holland	usb1_vbus-supply = <&reg_vcc>;
141*96a35ab9SSamuel Holland	status = "okay";
142*96a35ab9SSamuel Holland};
143