xref: /linux/scripts/dtc/include-prefixes/arm64/allwinner/sun50i-h313-x96q.dts (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2/*
3 * Copyright (C) 2025 J. Neuschäfer <j.ne@posteo.net>
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#include <dt-bindings/input/linux-event-codes.h>
14#include <dt-bindings/leds/common.h>
15
16/ {
17	model = "X96Q";
18	compatible = "amediatech,x96q", "allwinner,sun50i-h616";
19
20	aliases {
21		serial0 = &uart0;
22	};
23
24	chosen {
25		stdout-path = "serial0:115200n8";
26	};
27
28	reg_vcc5v: vcc5v {
29		/* board wide 5V supply directly from the DC input */
30		compatible = "regulator-fixed";
31		regulator-name = "vcc-5v";
32		regulator-min-microvolt = <5000000>;
33		regulator-max-microvolt = <5000000>;
34		regulator-always-on;
35	};
36
37	gpio-keys {
38		compatible = "gpio-keys";
39
40		key-recovery {
41			label = "Recovery";
42			linux,code = <KEY_VENDOR>;
43			gpios = <&pio 7 9 GPIO_ACTIVE_LOW>;
44		};
45	};
46
47	leds {
48		compatible = "gpio-leds";
49
50		led-0 {
51			color = <LED_COLOR_ID_BLUE>;
52			gpios = <&pio 7 6 GPIO_ACTIVE_LOW>;
53			default-state = "on";
54		};
55	};
56};
57
58&codec {
59	allwinner,audio-routing = "Line Out", "LINEOUT";
60	status = "okay";
61};
62
63&cpu0 {
64	cpu-supply = <&reg_dcdca>;
65};
66
67&ehci0 {
68	status = "okay";
69};
70
71&ehci3 {
72	status = "okay";
73};
74
75/* TODO: EMAC1 connected to AC200 PHY */
76
77&gpu {
78	mali-supply = <&reg_dcdcc>;
79	status = "okay";
80};
81
82&ir {
83	status = "okay";
84};
85
86&mmc0 {
87	/* microSD */
88	vmmc-supply = <&reg_aldo1>;
89	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;	/* PF6 */
90	disable-wp;
91	bus-width = <4>;
92	status = "okay";
93};
94
95/* TODO: XRadio XR819 WLAN @ mmc1 */
96
97&mmc2 {
98	/* eMMC */
99	vmmc-supply = <&reg_aldo1>;
100	vqmmc-supply = <&reg_bldo1>;
101	non-removable;
102	cap-mmc-hw-reset;
103	mmc-ddr-1_8v;
104	mmc-hs200-1_8v;
105	max-frequency = <100000000>; /* required for stable operation */
106	bus-width = <8>;
107	status = "okay";
108};
109
110&ohci0 {
111	status = "okay";
112};
113
114&ohci3 {
115	status = "okay";
116};
117
118&r_i2c {
119	status = "okay";
120
121	axp305: pmic@36 {
122		compatible = "x-powers,axp305", "x-powers,axp805",
123			     "x-powers,axp806";
124		interrupt-controller;
125		#interrupt-cells = <1>;
126		reg = <0x36>;
127
128		x-powers,self-working-mode;
129		vina-supply = <&reg_vcc5v>;
130		vinb-supply = <&reg_vcc5v>;
131		vinc-supply = <&reg_vcc5v>;
132		vind-supply = <&reg_vcc5v>;
133		vine-supply = <&reg_vcc5v>;
134		aldoin-supply = <&reg_vcc5v>;
135		bldoin-supply = <&reg_vcc5v>;
136		cldoin-supply = <&reg_vcc5v>;
137
138		regulators {
139			reg_dcdca: dcdca {
140				regulator-always-on;
141				regulator-min-microvolt = <810000>;
142				regulator-max-microvolt = <1100000>;
143				regulator-name = "vdd-cpu";
144			};
145
146			dcdcb {
147				/* unused */
148			};
149
150			reg_dcdcc: dcdcc {
151				regulator-always-on;
152				regulator-min-microvolt = <810000>;
153				regulator-max-microvolt = <990000>;
154				regulator-name = "vdd-gpu-sys";
155			};
156
157			dcdcd {
158				regulator-always-on;
159				regulator-min-microvolt = <1500000>;
160				regulator-max-microvolt = <1500000>;
161				regulator-name = "vdd-dram";
162			};
163
164			dcdce {
165				/* unused */
166			};
167
168			reg_aldo1: aldo1 {
169				regulator-always-on;
170				regulator-min-microvolt = <3300000>;
171				regulator-max-microvolt = <3300000>;
172				regulator-name = "vcc3v3";
173			};
174
175			aldo2 {
176				/* unused */
177			};
178
179			aldo3 {
180				/* unused */
181			};
182
183			reg_bldo1: bldo1 {
184				regulator-always-on;
185				regulator-min-microvolt = <1800000>;
186				regulator-max-microvolt = <1800000>;
187				regulator-name = "vcc1v8";
188			};
189
190			bldo2 {
191				/* unused */
192			};
193
194			bldo3 {
195				/* unused */
196			};
197
198			bldo4 {
199				/* unused */
200			};
201
202			cldo1 {
203				/* unused */
204			};
205
206			cldo2 {
207				/* unused */
208			};
209
210			cldo3 {
211				/* unused */
212			};
213		};
214	};
215};
216
217&uart0 {
218	pinctrl-names = "default";
219	pinctrl-0 = <&uart0_ph_pins>;
220	status = "okay";
221};
222
223&usbotg {
224	dr_mode = "host";	/* USB A type receptacle */
225	status = "okay";
226};
227
228&usbphy {
229	status = "okay";
230};
231