1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2021 Arm Ltd.
4 */
5
6/dts-v1/;
7
8#include "sun50i-h616.dtsi"
9#include "sun50i-h616-cpu-opp.dtsi"
10
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13
14/ {
15	model = "X96 Mate";
16	compatible = "hechuang,x96-mate", "allwinner,sun50i-h616";
17
18	aliases {
19		serial0 = &uart0;
20	};
21
22	chosen {
23		stdout-path = "serial0:115200n8";
24	};
25
26	reg_vcc5v: vcc5v {
27		/* board wide 5V supply directly from the DC input */
28		compatible = "regulator-fixed";
29		regulator-name = "vcc-5v";
30		regulator-min-microvolt = <5000000>;
31		regulator-max-microvolt = <5000000>;
32		regulator-always-on;
33	};
34};
35
36&cpu0 {
37	cpu-supply = <&reg_dcdca>;
38};
39
40&ehci0 {
41	status = "okay";
42};
43
44&ehci2 {
45	status = "okay";
46};
47
48&ir {
49	status = "okay";
50};
51
52&mmc0 {
53	vmmc-supply = <&reg_dcdce>;
54	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;	/* PF6 */
55	bus-width = <4>;
56	status = "okay";
57};
58
59&mmc2 {
60	vmmc-supply = <&reg_dcdce>;
61	vqmmc-supply = <&reg_bldo1>;
62	bus-width = <8>;
63	non-removable;
64	cap-mmc-hw-reset;
65	mmc-ddr-1_8v;
66	mmc-hs200-1_8v;
67	status = "okay";
68};
69
70&ohci0 {
71	status = "okay";
72};
73
74&ohci2 {
75	status = "okay";
76};
77
78&r_rsb {
79	status = "okay";
80
81	axp305: pmic@745 {
82		compatible = "x-powers,axp305", "x-powers,axp805",
83			     "x-powers,axp806";
84		interrupt-controller;
85		#interrupt-cells = <1>;
86		reg = <0x745>;
87
88		x-powers,self-working-mode;
89		vina-supply = <&reg_vcc5v>;
90		vinb-supply = <&reg_vcc5v>;
91		vinc-supply = <&reg_vcc5v>;
92		vind-supply = <&reg_vcc5v>;
93		vine-supply = <&reg_vcc5v>;
94		aldoin-supply = <&reg_vcc5v>;
95		bldoin-supply = <&reg_vcc5v>;
96		cldoin-supply = <&reg_vcc5v>;
97
98		regulators {
99			reg_aldo1: aldo1 {
100				regulator-always-on;
101				regulator-min-microvolt = <3300000>;
102				regulator-max-microvolt = <3300000>;
103				regulator-name = "vcc-sys";
104			};
105
106			/* Enabled by the Android BSP */
107			reg_aldo2: aldo2 {
108				regulator-min-microvolt = <3300000>;
109				regulator-max-microvolt = <3300000>;
110				regulator-name = "vcc3v3-ext";
111				status = "disabled";
112			};
113
114			/* Enabled by the Android BSP */
115			reg_aldo3: aldo3 {
116				regulator-min-microvolt = <3300000>;
117				regulator-max-microvolt = <3300000>;
118				regulator-name = "vcc3v3-ext2";
119				status = "disabled";
120			};
121
122			reg_bldo1: bldo1 {
123				regulator-always-on;
124				regulator-min-microvolt = <1800000>;
125				regulator-max-microvolt = <1800000>;
126				regulator-name = "vcc1v8";
127			};
128
129			/* Enabled by the Android BSP */
130			reg_bldo2: bldo2 {
131				regulator-min-microvolt = <1800000>;
132				regulator-max-microvolt = <1800000>;
133				regulator-name = "vcc1v8-2";
134				status = "disabled";
135			};
136
137			bldo3 {
138				/* unused */
139			};
140
141			bldo4 {
142				/* unused */
143			};
144
145			cldo1 {
146				regulator-min-microvolt = <2500000>;
147				regulator-max-microvolt = <2500000>;
148				regulator-name = "vcc2v5";
149			};
150
151			cldo2 {
152				/* unused */
153			};
154
155			cldo3 {
156				/* unused */
157			};
158
159			reg_dcdca: dcdca {
160				regulator-always-on;
161				regulator-min-microvolt = <810000>;
162				regulator-max-microvolt = <1100000>;
163				regulator-name = "vdd-cpu";
164			};
165
166			reg_dcdcc: dcdcc {
167				regulator-always-on;
168				regulator-min-microvolt = <810000>;
169				regulator-max-microvolt = <990000>;
170				regulator-name = "vdd-gpu-sys";
171			};
172
173			reg_dcdcd: dcdcd {
174				regulator-always-on;
175				regulator-min-microvolt = <1360000>;
176				regulator-max-microvolt = <1360000>;
177				regulator-name = "vdd-dram";
178			};
179
180			reg_dcdce: dcdce {
181				regulator-always-on;
182				regulator-min-microvolt = <3300000>;
183				regulator-max-microvolt = <3300000>;
184				regulator-name = "vcc-eth-mmc";
185			};
186
187			sw {
188				/* unused */
189			};
190		};
191	};
192};
193
194&uart0 {
195	pinctrl-names = "default";
196	pinctrl-0 = <&uart0_ph_pins>;
197	status = "okay";
198};
199
200&usbotg {
201	dr_mode = "host";	/* USB A type receptable */
202	status = "okay";
203};
204
205&usbphy {
206	status = "okay";
207};
208