xref: /linux/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (c) 2025, Arduino SRL
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/common.h>
9#include "agatti.dtsi"
10#include "pm4125.dtsi"
11
12/delete-node/ &cont_splash_memory;
13
14/ {
15	model = "Arduino UnoQ";
16	compatible = "arduino,imola", "qcom,qrb2210", "qcom,qcm2290";
17	chassis-type = "embedded";
18
19	aliases {
20		serial0 = &uart4;
21		serial1 = &uart2;
22		serial2 = &uart3;
23		sdhc1 = &sdhc_1;
24	};
25
26	chosen {
27		stdout-path = "serial0:115200n8";
28	};
29
30	gpio-keys {
31		compatible = "gpio-keys";
32		label = "gpio-keys";
33		pinctrl-0 = <&key_volp_n>, <&key_vold_n>;
34		pinctrl-names = "default";
35
36		key-volume-up {
37			label = "Volume Up";
38			linux,code = <KEY_VOLUMEUP>;
39			gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
40			debounce-interval = <15>;
41			linux,can-disable;
42			wakeup-source;
43		};
44
45		key-volume-down {
46			label = "Volume Down";
47			linux,code = <KEY_VOLUMEDOWN>;
48			gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
49			debounce-interval = <15>;
50			linux,can-disable;
51			wakeup-source;
52		};
53	};
54
55	leds: leds {
56		compatible = "gpio-leds";
57
58		led-bt {
59			label = "unoq:bt-blue2";
60			function = LED_FUNCTION_BLUETOOTH;
61			color = <LED_COLOR_ID_BLUE>;
62			gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
63			linux,default-trigger = "bluetooth-power";
64			default-state = "off";
65		};
66
67		led-panic {
68			label = "unoq:panic-red2";
69			function = LED_FUNCTION_INDICATOR;
70			color = <LED_COLOR_ID_RED>;
71			gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
72			linux,default-trigger = "none";
73			default-state = "off";
74			panic-indicator;
75		};
76
77		led-wlan {
78			label = "unoq:wlan-green2";
79			function = LED_FUNCTION_WLAN;
80			color = <LED_COLOR_ID_GREEN>;
81			gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
82			linux,default-trigger = "phy0tx";
83			default-state = "off";
84		};
85
86		ledb: led-user-blue {
87			label = "unoq:user-blue1";
88			gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
89			color = <LED_COLOR_ID_BLUE>;
90		};
91
92		ledg: led-user-green {
93			label = "unoq:user-green1";
94			gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
95			color = <LED_COLOR_ID_GREEN>;
96		};
97
98		ledr: led-user-red {
99			label = "unoq:user-red1";
100			gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
101			color = <LED_COLOR_ID_RED>;
102		};
103	};
104
105	multi-led {
106		compatible = "leds-group-multicolor";
107		color = <LED_COLOR_ID_RGB>;
108		function = LED_FUNCTION_INDICATOR;
109		leds = <&ledr>, <&ledg>, <&ledb>;
110	};
111
112	/* PM4125 charger out, supplied by VBAT */
113	vph_pwr: regulator-vph-pwr {
114		compatible = "regulator-fixed";
115		regulator-name = "vph_pwr";
116		regulator-min-microvolt = <3700000>;
117		regulator-max-microvolt = <3700000>;
118		regulator-always-on;
119		regulator-boot-on;
120	};
121};
122
123&gpi_dma0 {
124	status = "okay";
125};
126
127&gpu {
128	status = "okay";
129};
130
131&gpu_zap_shader {
132	firmware-name = "qcom/qcm2290/a702_zap.mbn";
133};
134
135&i2c0 {
136	clock-frequency = <100000>;
137
138	status = "okay";
139};
140
141&i2c1 {
142	clock-frequency = <100000>;
143
144	status = "okay";
145};
146
147&pm4125_vbus {
148	regulator-min-microamp = <500000>;
149	regulator-max-microamp = <500000>;
150
151	status = "okay";
152};
153
154&qupv3_id_0 {
155	status = "okay";
156};
157
158&remoteproc_adsp {
159	firmware-name = "qcom/qcm2290/adsp.mbn";
160
161	status = "okay";
162};
163
164&remoteproc_mpss {
165	firmware-name = "qcom/qcm2290/modem.mbn";
166
167	status = "okay";
168};
169
170&rpm_requests {
171	regulators {
172		compatible = "qcom,rpm-pm2250-regulators";
173		vdd_s3-supply = <&vph_pwr>;
174		vdd_s4-supply = <&vph_pwr>;
175		vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>;
176		vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
177		vdd_l13_l14_l15_l16-supply = <&pm4125_s4>;
178
179		pm4125_s3: s3 {
180			/* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
181			regulator-min-microvolt = <1352000>;
182			regulator-max-microvolt = <1352000>;
183			regulator-boot-on;
184		};
185
186		pm4125_s4: s4 {
187			/* 1.2V-2.35V -> 2.05V (Power tree requirements) */
188			regulator-min-microvolt = <2072000>;
189			regulator-max-microvolt = <2072000>;
190			regulator-boot-on;
191		};
192
193		pm4125_l2: l2 {
194			/* LPDDR4X VDD2 */
195			regulator-min-microvolt = <1136000>;
196			regulator-max-microvolt = <1136000>;
197			regulator-always-on;
198			regulator-boot-on;
199		};
200
201		pm4125_l3: l3 {
202			/* LPDDR4X VDDQ */
203			regulator-min-microvolt = <616000>;
204			regulator-max-microvolt = <616000>;
205			regulator-always-on;
206			regulator-boot-on;
207		};
208
209		pm4125_l4: l4 {
210			/* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
211			regulator-min-microvolt = <1800000>;
212			regulator-max-microvolt = <2700000>;
213			regulator-allow-set-load;
214		};
215
216		pm4125_l5: l5 {
217			/* CSI/DSI */
218			regulator-min-microvolt = <1232000>;
219			regulator-max-microvolt = <1232000>;
220			regulator-allow-set-load;
221			regulator-boot-on;
222		};
223
224		pm4125_l6: l6 {
225			/* DRAM PLL */
226			regulator-min-microvolt = <928000>;
227			regulator-max-microvolt = <928000>;
228			regulator-always-on;
229			regulator-boot-on;
230		};
231
232		pm4125_l7: l7 {
233			/* Wi-Fi CX */
234			regulator-min-microvolt = <664000>;
235			regulator-max-microvolt = <664000>;
236		};
237
238		pm4125_l10: l10 {
239			/* Wi-Fi RFA */
240			regulator-min-microvolt = <1304000>;
241			regulator-max-microvolt = <1304000>;
242		};
243
244		pm4125_l11: l11 {
245			/* ANX7625 DVDD1P0V/AVDD1P0V */
246			regulator-min-microvolt = <1000000>;
247			regulator-max-microvolt = <1000000>;
248			regulator-boot-on;
249			regulator-always-on;
250		};
251
252		pm4125_l12: l12 {
253			/* USB PHYs */
254			regulator-min-microvolt = <928000>;
255			regulator-max-microvolt = <928000>;
256			regulator-allow-set-load;
257			regulator-boot-on;
258		};
259
260		pm4125_l13: l13 {
261			/* USB/QFPROM/PLLs */
262			regulator-min-microvolt = <1800000>;
263			regulator-max-microvolt = <1800000>;
264			regulator-allow-set-load;
265			regulator-boot-on;
266		};
267
268		pm4125_l14: l14 {
269			/* SDHCI1 EMMC VCCQ */
270			regulator-min-microvolt = <1800000>;
271			regulator-max-microvolt = <1800000>;
272			regulator-allow-set-load;
273			/* Broken hardware, never turn it off! */
274			regulator-always-on;
275		};
276
277		pm4125_l15: l15 {
278			/* VDDIO */
279			regulator-min-microvolt = <1800000>;
280			regulator-max-microvolt = <1800000>;
281			regulator-allow-set-load;
282			regulator-always-on;
283			regulator-boot-on;
284		};
285
286		pm4125_l20: l20 {
287			/* SDHCI1 EMMC */
288			regulator-min-microvolt = <2400000>;
289			regulator-max-microvolt = <3600000>;
290			regulator-allow-set-load;
291		};
292
293		pm4125_l21: l21 {
294			/* USB HS */
295			regulator-min-microvolt = <2960000>;
296			regulator-max-microvolt = <3300000>;
297			regulator-allow-set-load;
298			regulator-boot-on;
299		};
300
301		pm4125_l22: l22 {
302			/* Wi-Fi VDD */
303			regulator-min-microvolt = <3312000>;
304			regulator-max-microvolt = <3312000>;
305		};
306	};
307};
308
309&sdhc_1 {
310	vmmc-supply = <&pm4125_l20>;
311	vqmmc-supply = <&pm4125_l14>;
312	pinctrl-0 = <&sdc1_state_on>;
313	pinctrl-1 = <&sdc1_state_off>;
314	pinctrl-names = "default", "sleep";
315	mmc-hs400-1_8v;
316	mmc-hs200-1_8v;
317	non-removable;
318	supports-cqe;
319	no-sdio;
320	no-sd;
321
322	status = "okay";
323};
324
325&spi5 {
326	status = "okay";
327
328	spidev@0 {
329		reg = <0>;
330		compatible = "arduino,unoq-mcu";
331		pinctrl-0 = <&spidev_cs>;
332		pinctrl-names = "default";
333	};
334};
335
336&tlmm {
337	spidev_cs: spidev-cs-state {
338		pins = "gpio17";
339		function = "gpio";
340		drive-strength = <16>;
341	};
342
343	jmisc_gpio18: jmisc-gpio18-state {
344		pins = "gpio18";
345		function = "gpio";
346		drive-strength = <2>;
347		bias-pull-down;
348	};
349
350	jmisc_gpio28: jmisc-gpio28-state {
351		pins = "gpio28";
352		function = "gpio";
353		drive-strength = <2>;
354		bias-pull-down;
355	};
356
357	key_vold_n: key-vold-n-state {
358		pins = "gpio36";
359		function = "gpio";
360		bias-pull-up;
361		output-disable;
362	};
363
364	key_volp_n: key-volp-n-state {
365		pins = "gpio96";
366		function = "gpio";
367		bias-pull-up;
368		output-disable;
369	};
370
371	jmisc_gpio98: jmisc-gpio98-state {
372		pins = "gpio98";
373		function = "gpio";
374		drive-strength = <2>;
375		bias-pull-down;
376	};
377
378	jmisc_gpio99: jmisc-gpio99-state {
379		pins = "gpio99";
380		function = "gpio";
381		drive-strength = <2>;
382		bias-pull-down;
383	};
384
385	jmisc_gpio100: jmisc-gpio100-state {
386		pins = "gpio100";
387		function = "gpio";
388		drive-strength = <2>;
389		bias-pull-down;
390	};
391
392	jmisc_gpio101: jmisc-gpio101-state {
393		pins = "gpio101";
394		function = "gpio";
395		drive-strength = <2>;
396		bias-pull-down;
397	};
398};
399
400&uart2 {
401	status = "okay";
402};
403
404/* UART connected to Bluetooth */
405&uart3 {
406	status = "okay";
407
408	bluetooth {
409		compatible = "qcom,wcn3988-bt";
410
411		vddio-supply = <&pm4125_l15>;
412		vddxo-supply = <&pm4125_l13>;
413		vddrf-supply = <&pm4125_l10>;
414		vddch0-supply = <&pm4125_l22>;
415		enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
416		max-speed = <3000000>;
417	};
418};
419
420/* UART exposed in JCTL */
421&uart4 {
422	compatible = "qcom,geni-debug-uart";
423
424	status = "okay";
425};
426
427&usb {
428	status = "okay";
429};
430
431&usb_hsphy {
432	vdd-supply = <&pm4125_l12>;
433	vdda-pll-supply = <&pm4125_l13>;
434	vdda-phy-dpdm-supply = <&pm4125_l21>;
435
436	status = "okay";
437};
438
439&usb_qmpphy {
440	vdda-phy-supply = <&pm4125_l12>;
441	vdda-pll-supply = <&pm4125_l13>;
442
443	status = "okay";
444};
445
446&wifi {
447	vdd-0.8-cx-mx-supply = <&pm4125_l7>;
448	vdd-1.8-xo-supply = <&pm4125_l13>;
449	vdd-1.3-rfa-supply = <&pm4125_l10>;
450	vdd-3.3-ch0-supply = <&pm4125_l22>;
451	qcom,ath10k-calibration-variant = "ArduinoImola";
452	firmware-name = "qcm2290";
453
454	status = "okay";
455};
456
457&xo_board {
458	clock-frequency = <38400000>;
459};
460