xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/qcs6490-thundercomm-rubikpi3.dts (revision 6589b3d76db2d6adbf8f2084c303fb24252a0dc6)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2025, Thundercomm All rights reserved.
4 */
5
6/dts-v1/;
7
8/* PM7250B is configured to use SID8/9 */
9#define PM7250B_SID 8
10#define PM7250B_SID1 9
11
12#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
13#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
14#include <dt-bindings/leds/common.h>
15#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
16#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
17#include "kodiak.dtsi"
18#include "pm7250b.dtsi"
19#include "pm7325.dtsi"
20#include "pm8350c.dtsi" /* PM7350C */
21#include "pmk8350.dtsi" /* PMK7325 */
22
23/delete-node/ &adsp_mem;
24/delete-node/ &cdsp_mem;
25/delete-node/ &ipa_fw_mem;
26/delete-node/ &mpss_mem;
27/delete-node/ &remoteproc_mpss;
28/delete-node/ &remoteproc_wpss;
29/delete-node/ &rmtfs_mem;
30/delete-node/ &video_mem;
31/delete-node/ &wifi;
32/delete-node/ &wlan_ce_mem;
33/delete-node/ &wlan_fw_mem;
34/delete-node/ &wpss_mem;
35/delete-node/ &xbl_mem;
36
37/ {
38	model = "Thundercomm RUBIK Pi 3";
39	compatible = "thundercomm,rubikpi3", "qcom,qcm6490";
40	chassis-type = "embedded";
41
42	aliases {
43		serial0 = &uart5;
44	};
45
46	chosen {
47		stdout-path = "serial0:115200n8";
48	};
49
50	gpio-keys {
51		compatible = "gpio-keys";
52
53		pinctrl-0 = <&kypd_vol_up_n>;
54		pinctrl-names = "default";
55
56		key-volume-up {
57			label = "Volume Up";
58			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
59			linux,code = <KEY_VOLUMEUP>;
60			linux,can-disable;
61		};
62	};
63
64	hdmi-connector {
65		compatible = "hdmi-connector";
66		type = "a";
67
68		port {
69			hdmi_con: endpoint {
70				remote-endpoint = <&lt9611_out>;
71			};
72		};
73	};
74
75	pmic-glink {
76		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
77
78		#address-cells = <1>;
79		#size-cells = <0>;
80		orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
81
82		connector@0 {
83			compatible = "usb-c-connector";
84			reg = <0>;
85			power-role = "dual";
86			data-role = "dual";
87
88			ports {
89				#address-cells = <1>;
90				#size-cells = <0>;
91
92				port@0 {
93					reg = <0>;
94
95					pmic_glink_hs_in: endpoint {
96						remote-endpoint = <&usb_1_dwc3_hs>;
97					};
98				};
99
100				port@1 {
101					reg = <1>;
102
103					pmic_glink_ss_in: endpoint {
104						remote-endpoint = <&usb_dp_qmpphy_out>;
105					};
106				};
107
108				port@2 {
109					reg = <2>;
110
111					pmic_glink_sbu_in: endpoint {
112						remote-endpoint = <&usb1_sbu_mux>;
113					};
114				};
115			};
116		};
117	};
118
119	fan0: pwm-fan {
120		compatible = "pwm-fan";
121
122		/* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */
123		cooling-levels = <0 64 128 255>;
124		#cooling-cells = <2>;
125		pwms = <&pm8350c_pwm 3 1000000>;
126
127		pinctrl-0 = <&fan_pwm_out_default>;
128		pinctrl-names = "default";
129	};
130
131	vreg_eth_1v8: regulator-eth-1v8 {
132		compatible = "regulator-fixed";
133
134		regulator-name = "vreg_eth_1v8";
135		regulator-min-microvolt = <1800000>;
136		regulator-max-microvolt = <1800000>;
137		regulator-enable-ramp-delay = <50000>;
138
139		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
140		enable-active-high;
141
142		pinctrl-0 = <&usb_eth_power>;
143		pinctrl-names = "default";
144
145		vin-supply = <&vreg_usbhub_pwr_1v8>;
146	};
147
148	vreg_lt9611_3v3: regulator-lt9611-3v3 {
149		compatible = "regulator-fixed";
150
151		regulator-name = "vreg_lt9611_3v3";
152		regulator-min-microvolt = <3300000>;
153		regulator-max-microvolt = <3300000>;
154
155		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
156		enable-active-high;
157
158		pinctrl-0 = <&lt9611_vcc_pin>;
159		pinctrl-names = "default";
160	};
161
162	vreg_m2_1v8: regulator-m2-1v8 {
163		compatible = "regulator-fixed";
164
165		regulator-name = "vreg_m2_1v8";
166		regulator-min-microvolt = <1800000>;
167		regulator-max-microvolt = <1800000>;
168		regulator-enable-ramp-delay = <50000>;
169
170		gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
171		enable-active-high;
172
173		pinctrl-0 = <&m2_vcc_pin>;
174		pinctrl-names = "default";
175
176		regulator-always-on;
177		regulator-boot-on;
178	};
179
180	vreg_usbhub_pwr_1v8: regulator-usbhub-pwr-1v8 {
181		compatible = "regulator-fixed";
182
183		regulator-name = "vreg_usbhub_pwr_1v8";
184		regulator-min-microvolt = <1800000>;
185		regulator-max-microvolt = <1800000>;
186		regulator-enable-ramp-delay = <50000>;
187
188		gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
189		enable-active-high;
190
191		pinctrl-0 = <&usbhub_power>;
192		pinctrl-names = "default";
193
194		regulator-always-on;
195	};
196
197	vreg_usbhub_rest_1v8: regulator-usbhub-rest-1v8 {
198		compatible = "regulator-fixed";
199
200		regulator-name = "vreg_usbhub_rest_1v8";
201		regulator-min-microvolt = <1800000>;
202		regulator-enable-ramp-delay = <50000>;
203		regulator-max-microvolt = <1800000>;
204
205		gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>;
206		enable-active-high;
207
208		pinctrl-0 = <&usbhub_rest>;
209		pinctrl-names = "default";
210
211		vin-supply = <&vreg_eth_1v8>;
212
213		regulator-always-on;
214		regulator-boot-on;
215	};
216
217	vph_pwr: regulator-vph-pwr {
218		compatible = "regulator-fixed";
219
220		regulator-name = "vph_pwr";
221		regulator-min-microvolt = <3700000>;
222		regulator-max-microvolt = <3700000>;
223	};
224
225	vreg_wifi_1v8: regulator-wifi-1v8 {
226		compatible = "regulator-fixed";
227
228		regulator-name = "vreg_wifi_1v8";
229		regulator-min-microvolt = <1800000>;
230		regulator-max-microvolt = <1800000>;
231		regulator-enable-ramp-delay = <50000>;
232
233		gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>;
234		enable-active-high;
235
236		pinctrl-0 = <&wifi_reset_active>,
237			    <&wifi_host_wake>,
238			    <&wifi_power_on>;
239		pinctrl-names = "default";
240
241		regulator-always-on;
242	};
243
244	reserved-memory {
245		xbl_mem: xbl@80700000 {
246			reg = <0x0 0x80700000 0x0 0x100000>;
247			no-map;
248		};
249
250		cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
251			reg = <0x0 0x81800000 0x0 0x1e00000>;
252			no-map;
253		};
254
255		camera_mem: camera@84300000 {
256			reg = <0x0 0x84300000 0x0 0x500000>;
257			no-map;
258		};
259
260		adsp_mem: adsp@86100000 {
261			reg = <0x0 0x86100000 0x0 0x2800000>;
262			no-map;
263		};
264
265		cdsp_mem: cdsp@88900000 {
266			reg = <0x0 0x88900000 0x0 0x1e00000>;
267			no-map;
268		};
269
270		video_mem: video@8a700000 {
271			reg = <0x0 0x8a700000 0x0 0x700000>;
272			no-map;
273		};
274
275		cvp_mem: cvp@8ae00000 {
276			reg = <0x0 0x8ae00000 0x0 0x500000>;
277			no-map;
278		};
279
280		gpu_microcode_mem: gpu-microcode@8b31a000 {
281			reg = <0x0 0x8b31a000 0x0 0x2000>;
282			no-map;
283		};
284
285		tz_stat_mem: tz-stat@c0000000 {
286			reg = <0x0 0xc0000000 0x0 0x100000>;
287			no-map;
288		};
289
290		tags_mem: tags@c0100000 {
291			reg = <0x0 0xc0100000 0x0 0x1200000>;
292			no-map;
293		};
294
295		qtee_mem: qtee@c1300000 {
296			reg = <0x0 0xc1300000 0x0 0x500000>;
297			no-map;
298		};
299
300		trusted_apps_mem: trusted-apps@c1800000 {
301			reg = <0x0 0xc1800000 0x0 0x1c00000>;
302			no-map;
303		};
304
305		debug_vm_mem: debug-vm@d0600000 {
306			reg = <0x0 0xd0600000 0x0 0x100000>;
307			no-map;
308		};
309	};
310
311	thermal-zones {
312		quiet-thermal {
313			thermal-sensors = <&pmk8350_adc_tm 1>;
314
315			trips {
316				active-config0 {
317					temperature = <125000>;
318					hysteresis = <1000>;
319					type = "passive";
320				};
321			};
322		};
323
324		sdm-skin-thermal {
325			thermal-sensors = <&pmk8350_adc_tm 3>;
326
327			trips {
328				active-config0 {
329					temperature = <125000>;
330					hysteresis = <1000>;
331					type = "passive";
332				};
333			};
334		};
335
336		xo-thermal {
337			thermal-sensors = <&pmk8350_adc_tm 0>;
338
339			trips {
340				active-config0 {
341					temperature = <125000>;
342					hysteresis = <1000>;
343					type = "passive";
344				};
345			};
346		};
347	};
348
349	usb1-sbu-mux {
350		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
351
352		enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
353		select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
354
355		pinctrl-0 = <&usb1_sbu_default>;
356		pinctrl-names = "default";
357
358		mode-switch;
359		orientation-switch;
360
361		port {
362			usb1_sbu_mux: endpoint {
363				remote-endpoint = <&pmic_glink_sbu_in>;
364			};
365		};
366	};
367};
368
369&apps_rsc {
370	regulators-0 {
371		compatible = "qcom,pm7325-rpmh-regulators";
372		qcom,pmic-id = "b";
373
374		vdd-s1-supply = <&vph_pwr>;
375		vdd-s2-supply = <&vph_pwr>;
376		vdd-s3-supply = <&vph_pwr>;
377		vdd-s4-supply = <&vph_pwr>;
378		vdd-s5-supply = <&vph_pwr>;
379		vdd-s6-supply = <&vph_pwr>;
380		vdd-s7-supply = <&vph_pwr>;
381		vdd-s8-supply = <&vph_pwr>;
382		vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
383		vdd-l2-l7-supply = <&vreg_bob_3p296>;
384		vdd-l3-supply = <&vreg_s2b_0p876>;
385		vdd-l5-supply = <&vreg_s2b_0p876>;
386		vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
387		vdd-l8-supply = <&vreg_s7b_0p972>;
388		vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
389		vdd-l13-supply = <&vreg_s7b_0p972>;
390		vdd-l14-l16-supply = <&vreg_s8b_1p272>;
391
392		vreg_s1b_1p872: smps1 {
393			regulator-name = "vreg_s1b_1p872";
394			regulator-min-microvolt = <1840000>;
395			regulator-max-microvolt = <2040000>;
396		};
397
398		vreg_s2b_0p876: smps2 {
399			regulator-name = "vreg_s2b_0p876";
400			regulator-min-microvolt = <570070>;
401			regulator-max-microvolt = <1050000>;
402		};
403
404		vreg_s7b_0p972: smps7 {
405			regulator-name = "vreg_s7b_0p972";
406			regulator-min-microvolt = <535000>;
407			regulator-max-microvolt = <1120000>;
408		};
409
410		vreg_s8b_1p272: smps8 {
411			regulator-name = "vreg_s8b_1p272";
412			regulator-min-microvolt = <1200000>;
413			regulator-max-microvolt = <1500000>;
414			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
415		};
416
417		vreg_l1b_0p912: ldo1 {
418			regulator-name = "vreg_l1b_0p912";
419			regulator-min-microvolt = <825000>;
420			regulator-max-microvolt = <925000>;
421			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
422		};
423
424		vreg_l2b_3p072: ldo2 {
425			regulator-name = "vreg_l2b_3p072";
426			regulator-min-microvolt = <2700000>;
427			regulator-max-microvolt = <3544000>;
428			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
429		};
430
431		vreg_l3b_0p504: ldo3 {
432			regulator-name = "vreg_l3b_0p504";
433			regulator-min-microvolt = <312000>;
434			regulator-max-microvolt = <910000>;
435			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
436		};
437
438		vreg_l4b_0p752: ldo4 {
439			regulator-name = "vreg_l4b_0p752";
440			regulator-min-microvolt = <752000>;
441			regulator-max-microvolt = <820000>;
442			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
443		};
444
445		reg_l5b_0p752: ldo5 {
446			regulator-name = "reg_l5b_0p752";
447			regulator-min-microvolt = <552000>;
448			regulator-max-microvolt = <832000>;
449			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
450		};
451
452		vreg_l6b_1p2: ldo6 {
453			regulator-name = "vreg_l6b_1p2";
454			regulator-min-microvolt = <1140000>;
455			regulator-max-microvolt = <1260000>;
456			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
457		};
458
459		vreg_l7b_2p952: ldo7 {
460			regulator-name = "vreg_l7b_2p952";
461			regulator-min-microvolt = <2952000>;
462			regulator-max-microvolt = <2952000>;
463			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
464		};
465
466		vreg_l8b_0p904: ldo8 {
467			regulator-name = "vreg_l8b_0p904";
468			regulator-min-microvolt = <870000>;
469			regulator-max-microvolt = <970000>;
470			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
471		};
472
473		vreg_l9b_1p2: ldo9 {
474			regulator-name = "vreg_l9b_1p2";
475			regulator-min-microvolt = <1200000>;
476			regulator-max-microvolt = <1200000>;
477			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
478			regulator-allow-set-load;
479			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
480						   RPMH_REGULATOR_MODE_HPM>;
481		};
482
483		vreg_l11b_1p504: ldo11 {
484			regulator-name = "vreg_l11b_1p504";
485			regulator-min-microvolt = <1504000>;
486			regulator-max-microvolt = <2000000>;
487			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
488		};
489
490		vreg_l12b_0p751: ldo12 {
491			regulator-name = "vreg_l12b_0p751";
492			regulator-min-microvolt = <751000>;
493			regulator-max-microvolt = <824000>;
494			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
495		};
496
497		vreg_l13b_0p53: ldo13 {
498			regulator-name = "vreg_l13b_0p53";
499			regulator-min-microvolt = <530000>;
500			regulator-max-microvolt = <824000>;
501			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
502		};
503
504		vreg_l14b_1p08: ldo14 {
505			regulator-name = "vreg_l14b_1p08";
506			regulator-min-microvolt = <1080000>;
507			regulator-max-microvolt = <1304000>;
508			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
509		};
510
511		vreg_l15b_0p765: ldo15 {
512			regulator-name = "vreg_l15b_0p765";
513			regulator-min-microvolt = <765000>;
514			regulator-max-microvolt = <1020000>;
515			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
516		};
517
518		vreg_l16b_1p1: ldo16 {
519			regulator-name = "vreg_l16b_1p1";
520			regulator-min-microvolt = <1100000>;
521			regulator-max-microvolt = <1300000>;
522			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
523		};
524
525		vreg_l17b_1p7: ldo17 {
526			regulator-name = "vreg_l17b_1p7";
527			regulator-min-microvolt = <1700000>;
528			regulator-max-microvolt = <1900000>;
529			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
530		};
531
532		vreg_l18b_1p8: ldo18 {
533			regulator-name = "vreg_l18b_1p8";
534			regulator-min-microvolt = <1800000>;
535			regulator-max-microvolt = <2000000>;
536			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
537		};
538
539		vreg_l19b_1p8: ldo19 {
540			regulator-name = "vreg_l19b_1p8";
541			regulator-min-microvolt = <1800000>;
542			regulator-max-microvolt = <2000000>;
543			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
544		};
545	};
546
547	regulators-1 {
548		compatible = "qcom,pm8350c-rpmh-regulators";
549		qcom,pmic-id = "c";
550
551		vdd-s1-supply = <&vph_pwr>;
552		vdd-s2-supply = <&vph_pwr>;
553		vdd-s3-supply = <&vph_pwr>;
554		vdd-s4-supply = <&vph_pwr>;
555		vdd-s5-supply = <&vph_pwr>;
556		vdd-s6-supply = <&vph_pwr>;
557		vdd-s7-supply = <&vph_pwr>;
558		vdd-s8-supply = <&vph_pwr>;
559		vdd-s9-supply = <&vph_pwr>;
560		vdd-s10-supply = <&vph_pwr>;
561		vdd-l1-l12-supply = <&vreg_s1b_1p872>;
562		vdd-l2-l8-supply = <&vreg_s1b_1p872>;
563		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
564		vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
565		vdd-l10-supply = <&vreg_s7b_0p972>;
566		vdd-bob-supply = <&vph_pwr>;
567
568		vreg_s1c_2p19: smps1 {
569			regulator-name = "vreg_s1c_2p19";
570			regulator-min-microvolt = <2190000>;
571			regulator-max-microvolt = <2210000>;
572		};
573
574		vreg_s2c_0p752: smps2 {
575			regulator-name = "vreg_s2c_0p752";
576			regulator-min-microvolt = <750000>;
577			regulator-max-microvolt = <800000>;
578		};
579
580		vreg_s5c_0p752: smps5 {
581			regulator-name = "vreg_s5c_0p752";
582			regulator-min-microvolt = <465000>;
583			regulator-max-microvolt = <1050000>;
584		};
585
586		vreg_s7c_0p752: smps7 {
587			regulator-name = "vreg_s7c_0p752";
588			regulator-min-microvolt = <465000>;
589			regulator-max-microvolt = <800000>;
590		};
591
592		vreg_s9c_1p084: smps9 {
593			regulator-name = "vreg_s9c_1p084";
594			regulator-min-microvolt = <1010000>;
595			regulator-max-microvolt = <1170000>;
596		};
597
598		vreg_l1c_1p8: ldo1 {
599			regulator-name = "vreg_l1c_1p8";
600			regulator-min-microvolt = <1800000>;
601			regulator-max-microvolt = <1980000>;
602			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
603		};
604
605		vreg_l2c_1p62: ldo2 {
606			regulator-name = "vreg_l2c_1p62";
607			regulator-min-microvolt = <1620000>;
608			regulator-max-microvolt = <1980000>;
609			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
610		};
611
612		vreg_l3c_2p8: ldo3 {
613			regulator-name = "vreg_l3c_2p8";
614			regulator-min-microvolt = <2800000>;
615			regulator-max-microvolt = <3540000>;
616			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
617		};
618
619		vreg_l4c_1p62: ldo4 {
620			regulator-name = "vreg_l4c_1p62";
621			regulator-min-microvolt = <1620000>;
622			regulator-max-microvolt = <3300000>;
623			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
624		};
625
626		vreg_l5c_1p62: ldo5 {
627			regulator-name = "vreg_l5c_1p62";
628			regulator-min-microvolt = <1620000>;
629			regulator-max-microvolt = <3300000>;
630			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
631		};
632
633		vreg_l6c_2p96: ldo6 {
634			regulator-name = "vreg_l6c_2p96";
635			regulator-min-microvolt = <1800000>;
636			regulator-max-microvolt = <1800000>;
637			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
638		};
639
640		vreg_l7c_3p0: ldo7 {
641			regulator-name = "vreg_l7c_3p0";
642			regulator-min-microvolt = <3000000>;
643			regulator-max-microvolt = <3544000>;
644			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
645		};
646
647		vreg_l8c_1p62: ldo8 {
648			regulator-name = "vreg_l8c_1p62";
649			regulator-min-microvolt = <1620000>;
650			regulator-max-microvolt = <2000000>;
651			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
652		};
653
654		vreg_l9c_2p96: ldo9 {
655			regulator-name = "vreg_l9c_2p96";
656			regulator-min-microvolt = <2700000>;
657			regulator-max-microvolt = <3544000>;
658			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
659		};
660
661		vreg_l10c_0p88: ldo10 {
662			regulator-name = "vreg_l10c_0p88";
663			regulator-min-microvolt = <720000>;
664			regulator-max-microvolt = <1050000>;
665			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
666		};
667
668		vreg_l11c_2p8: ldo11 {
669			regulator-name = "vreg_l11c_2p8";
670			regulator-min-microvolt = <2800000>;
671			regulator-max-microvolt = <3544000>;
672			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
673		};
674
675		vreg_l12c_1p65: ldo12 {
676			regulator-name = "vreg_l12c_1p65";
677			regulator-min-microvolt = <1650000>;
678			regulator-max-microvolt = <2000000>;
679			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
680		};
681
682		vreg_l13c_2p7: ldo13 {
683			regulator-name = "vreg_l13c_2p7";
684			regulator-min-microvolt = <2700000>;
685			regulator-max-microvolt = <3544000>;
686			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
687		};
688
689		vreg_bob_3p296: bob {
690			regulator-name = "vreg_bob_3p296";
691			regulator-min-microvolt = <3008000>;
692			regulator-max-microvolt = <3960000>;
693		};
694	};
695};
696
697&gcc {
698	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
699			   <GCC_MSS_CFG_AHB_CLK>,
700			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
701			   <GCC_MSS_OFFLINE_AXI_CLK>,
702			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
703			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
704			   <GCC_MSS_SNOC_AXI_CLK>,
705			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
706			   <GCC_QSPI_CORE_CLK>,
707			   <GCC_QSPI_CORE_CLK_SRC>,
708			   <GCC_SEC_CTRL_CLK_SRC>,
709			   <GCC_WPSS_AHB_BDG_MST_CLK>,
710			   <GCC_WPSS_AHB_CLK>,
711			   <GCC_WPSS_RSCP_CLK>;
712};
713
714&gpi_dma0 {
715	status = "okay";
716};
717
718&gpi_dma1 {
719	status = "okay";
720};
721
722&gpu {
723	status = "okay";
724};
725
726&gpu_zap_shader {
727	firmware-name = "qcom/qcs6490/a660_zap.mbn";
728};
729
730/* Pin 3, 5 in 40-pin connector */
731&i2c1 {
732	status = "okay";
733};
734
735&i2c9 {
736	clock-frequency = <400000>;
737
738	status = "okay";
739
740	lt9611_codec: hdmi-bridge@39 {
741		compatible = "lontium,lt9611";
742		reg = <0x39>;
743
744		interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>;
745		reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
746
747		vdd-supply = <&vreg_lt9611_3v3>;
748		vcc-supply = <&vreg_lt9611_3v3>;
749
750		pinctrl-0 = <&lt9611_irq_pin>,
751			    <&lt9611_rst_pin>;
752		pinctrl-names = "default";
753
754		ports {
755			#address-cells = <1>;
756			#size-cells = <0>;
757
758			port@0 {
759				reg = <0>;
760
761				lt9611_a: endpoint {
762					remote-endpoint = <&mdss_dsi0_out>;
763				};
764			};
765
766			port@2 {
767				reg = <2>;
768
769				lt9611_out: endpoint {
770					remote-endpoint = <&hdmi_con>;
771				};
772			};
773		};
774	};
775};
776
777&lpass_audiocc {
778	compatible = "qcom,qcm6490-lpassaudiocc";
779	/delete-property/ power-domains;
780};
781
782&mdss {
783	status = "okay";
784};
785
786&mdss_dp {
787	status = "okay";
788};
789
790&mdss_dp_out {
791	data-lanes = <0 1>;
792	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
793
794	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
795};
796
797&mdss_dsi {
798	vdda-supply = <&vreg_l6b_1p2>;
799
800	status = "okay";
801};
802
803&mdss_dsi0_out {
804	remote-endpoint = <&lt9611_a>;
805	data-lanes = <0 1 2 3>;
806};
807
808&mdss_dsi_phy {
809	vdds-supply = <&vreg_l10c_0p88>;
810
811	status = "okay";
812};
813
814&pcie0 {
815	perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
816	wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
817
818	pinctrl-0 = <&pcie0_clkreq_n>,
819		    <&pcie0_reset_n>,
820		    <&pcie0_wake_n>;
821	pinctrl-names = "default";
822
823	status = "okay";
824};
825
826&pcie0_phy {
827	vdda-phy-supply = <&vreg_l10c_0p88>;
828	vdda-pll-supply = <&vreg_l6b_1p2>;
829
830	status = "okay";
831};
832
833&pcie1 {
834	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
835	wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
836
837	pinctrl-0 = <&pcie1_clkreq_n>,
838		    <&pcie1_reset_n>,
839		    <&pcie1_wake_n>;
840	pinctrl-names = "default";
841
842	status = "okay";
843};
844
845&pcie1_phy {
846	vdda-phy-supply = <&vreg_l10c_0p88>;
847	vdda-pll-supply = <&vreg_l6b_1p2>;
848
849	status = "okay";
850};
851
852&pm7325_gpios {
853	kypd_vol_up_n: kypd-vol-up-n-state {
854		pins = "gpio6";
855		function = PMIC_GPIO_FUNC_NORMAL;
856		power-source = <1>;
857		bias-pull-up;
858		input-enable;
859	};
860};
861
862&pm7325_temp_alarm {
863	io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
864	io-channel-names = "thermal";
865};
866
867&pmk8350_adc_tm {
868	status = "okay";
869
870	xo-therm@0 {
871		reg = <0>;
872		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
873		qcom,ratiometric;
874		qcom,hw-settle-time-us = <200>;
875	};
876
877	quiet-therm@1 {
878		reg = <1>;
879		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
880		qcom,ratiometric;
881		qcom,hw-settle-time-us = <200>;
882	};
883
884	sdm-skin-therm@3 {
885		reg = <3>;
886		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
887		qcom,ratiometric;
888		qcom,hw-settle-time-us = <200>;
889	};
890};
891
892&pm8350c_pwm {
893	status = "okay";
894
895	multi-led {
896		color = <LED_COLOR_ID_RGB>;
897		function = LED_FUNCTION_INDICATOR;
898
899		#address-cells = <1>;
900		#size-cells = <0>;
901
902		led@1 {
903			reg = <1>;
904			color = <LED_COLOR_ID_RED>;
905		};
906
907		led@2 {
908			reg = <2>;
909			color = <LED_COLOR_ID_GREEN>;
910		};
911
912		led@3 {
913			reg = <3>;
914			color = <LED_COLOR_ID_BLUE>;
915		};
916	};
917};
918
919&pmk8350_rtc {
920	allow-set-time;
921
922	status = "okay";
923};
924
925&pmk8350_vadc {
926	channel@3 {
927		reg = <PMK8350_ADC7_DIE_TEMP>;
928		label = "pmk8350_die_temp";
929		qcom,pre-scaling = <1 1>;
930	};
931
932	channel@44 {
933		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
934		label = "xo_therm";
935		qcom,hw-settle-time = <200>;
936		qcom,pre-scaling = <1 1>;
937		qcom,ratiometric;
938	};
939
940	channel@103 {
941		reg = <PM7325_ADC7_DIE_TEMP>;
942		label = "pm7325_die_temp";
943		qcom,pre-scaling = <1 1>;
944	};
945
946	channel@144 {
947		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
948		qcom,ratiometric;
949		qcom,hw-settle-time = <200>;
950		qcom,pre-scaling = <1 1>;
951		label = "pm7325_quiet_therm";
952	};
953
954	channel@146 {
955		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
956		qcom,ratiometric;
957		qcom,hw-settle-time = <200>;
958		qcom,pre-scaling = <1 1>;
959		label = "pm7325_sdm_skin_therm";
960	};
961};
962
963&pon_pwrkey {
964	status = "okay";
965};
966
967&pon_resin {
968	linux,code = <KEY_VOLUMEDOWN>;
969
970	status = "okay";
971};
972
973&qupv3_id_0 {
974	firmware-name = "qcom/qcm6490/qupv3fw.elf";
975
976	status = "okay";
977};
978
979&qupv3_id_1 {
980	firmware-name = "qcom/qcm6490/qupv3fw.elf";
981
982	status = "okay";
983};
984
985&remoteproc_adsp {
986	firmware-name = "qcom/qcs6490/Thundercomm/RubikPi3/adsp.mbn";
987
988	status = "okay";
989};
990
991&remoteproc_cdsp {
992	firmware-name = "qcom/qcs6490/cdsp.mbn";
993
994	status = "okay";
995};
996
997/* WIFI part of the AP6256 connected with SDIO */
998&sdhc_2 {
999	vmmc-supply = <&vreg_l9c_2p96>;
1000	vqmmc-supply = <&vreg_l6c_2p96>;
1001
1002	non-removable;
1003	keep-power-in-suspend;
1004	/delete-property/ cd-gpios;
1005
1006	status = "okay";
1007};
1008
1009/* Pin 19, 21, 23, 24 in 40-pin connector */
1010&spi12 {
1011	status = "okay";
1012};
1013
1014&thermal_zones {
1015	cpu0-thermal {
1016		trips {
1017			cpu_tepid: cpu-tepid {
1018				temperature = <65000>;
1019				hysteresis = <5000>;
1020				type = "active";
1021			};
1022
1023			cpu_warm: cpu-warm {
1024				temperature = <80000>;
1025				hysteresis = <5000>;
1026				type = "active";
1027			};
1028		};
1029
1030		cooling-maps {
1031			map-cpu-tepid {
1032				cooling-device = <&fan0 1 1>;
1033				trip = <&cpu_tepid>;
1034			};
1035
1036			map-cpu-warm {
1037				cooling-device = <&fan0 2 2>;
1038				trip = <&cpu_warm>;
1039			};
1040
1041			map-cpu-hot {
1042				cooling-device = <&fan0 3 3>;
1043				trip = <&cpu0_alert0>;
1044			};
1045		};
1046	};
1047};
1048
1049/* Pin 8, 10 in 40-pin connector */
1050&uart2 {
1051	status = "okay";
1052};
1053
1054&uart5 {
1055	status = "okay";
1056};
1057
1058/* BT part of the AP6256 connected with UART */
1059&uart7 {
1060	/delete-property/ interrupts;
1061	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
1062			      <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
1063	pinctrl-1 = <&qup_uart7_sleep_cts>,
1064		    <&qup_uart7_sleep_rts>,
1065		    <&qup_uart7_sleep_tx>,
1066		    <&qup_uart7_sleep_rx>;
1067	pinctrl-names = "default",
1068			"sleep";
1069
1070	status = "okay";
1071
1072	bluetooth {
1073		compatible = "brcm,bcm4345c5";
1074		clocks = <&sleep_clk>;
1075		clock-names = "lpo";
1076		device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
1077		host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>;
1078		shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
1079		pinctrl-0 = <&bt_device_wake>,
1080			    <&bt_host_wake>,
1081			    <&bt_reset>;
1082		pinctrl-names = "default";
1083		vbat-supply = <&vreg_wifi_1v8>;
1084		vddio-supply = <&vreg_wifi_1v8>;
1085		max-speed = <3000000>;
1086	};
1087};
1088
1089&usb_1 {
1090	status = "okay";
1091};
1092
1093&usb_1_dwc3_hs {
1094	remote-endpoint = <&pmic_glink_hs_in>;
1095};
1096
1097&usb_1_hsphy {
1098	vdda-pll-supply = <&vreg_l10c_0p88>;
1099	vdda33-supply = <&vreg_l2b_3p072>;
1100	vdda18-supply = <&vreg_l1c_1p8>;
1101
1102	status = "okay";
1103};
1104
1105&usb_1_qmpphy {
1106	vdda-phy-supply = <&vreg_l6b_1p2>;
1107	vdda-pll-supply = <&vreg_l1b_0p912>;
1108
1109	status = "okay";
1110};
1111
1112&usb_2 {
1113	dr_mode = "host";
1114
1115	status = "okay";
1116};
1117
1118&usb_2_hsphy {
1119	vdda-pll-supply = <&vreg_l10c_0p88>;
1120	vdda18-supply = <&vreg_l1c_1p8>;
1121	vdda33-supply = <&vreg_l2b_3p072>;
1122
1123	status = "okay";
1124};
1125
1126&usb_dp_qmpphy_out {
1127	remote-endpoint = <&pmic_glink_ss_in>;
1128};
1129
1130&ufs_mem_hc {
1131	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
1132	vcc-supply = <&vreg_l7b_2p952>;
1133	vcc-max-microamp = <800000>;
1134	vccq-supply = <&vreg_l9b_1p2>;
1135	vccq-max-microamp = <900000>;
1136	vccq2-supply = <&vreg_l9b_1p2>;
1137	vccq2-max-microamp = <900000>;
1138
1139	status = "okay";
1140};
1141
1142&ufs_mem_phy {
1143	vdda-phy-supply = <&vreg_l10c_0p88>;
1144	vdda-pll-supply = <&vreg_l6b_1p2>;
1145
1146	status = "okay";
1147};
1148
1149&venus {
1150	status = "okay";
1151};
1152
1153/* PINCTRL - additions to nodes defined in kodiak.dtsi */
1154&pcie0_clkreq_n {
1155	bias-pull-up;
1156	drive-strength = <8>;
1157};
1158
1159&pcie1_clkreq_n {
1160	bias-pull-up;
1161	drive-strength = <8>;
1162};
1163
1164&pm8350c_gpios {
1165	fan_pwm_out_default: fan-pwm-out-default-state {
1166		pins = "gpio8";
1167		function = "func1";
1168		power-source = <1>;
1169		drive-push-pull;
1170		output-high;
1171		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
1172	};
1173};
1174
1175&qup_uart7_cts {
1176	/*
1177	 * Configure a bias-bus-hold on CTS to lower power
1178	 * usage when Bluetooth is turned off. Bus hold will
1179	 * maintain a low power state regardless of whether
1180	 * the Bluetooth module drives the pin in either
1181	 * direction or leaves the pin fully unpowered.
1182	 */
1183	bias-bus-hold;
1184};
1185
1186&qup_uart7_rts {
1187	/* We'll drive RTS, so no pull */
1188	bias-disable;
1189	drive-strength = <2>;
1190};
1191
1192&qup_uart7_rx {
1193	/*
1194	 * Configure a pull-up on RX. This is needed to avoid
1195	 * garbage data when the TX pin of the Bluetooth module is
1196	 * in tri-state (module powered off or not driving the
1197	 * signal yet).
1198	 */
1199	bias-pull-up;
1200};
1201
1202&qup_uart7_tx {
1203	/* We'll drive TX, so no pull */
1204	bias-disable;
1205	drive-strength = <2>;
1206};
1207
1208&sdc2_clk {
1209	bias-disable;
1210	drive-strength = <16>;
1211};
1212
1213&sdc2_cmd {
1214	bias-pull-up;
1215	drive-strength = <10>;
1216};
1217
1218&sdc2_data {
1219	bias-pull-up;
1220	drive-strength = <10>;
1221};
1222
1223&tlmm {
1224	pcie1_reset_n: pcie1-reset-n-state {
1225		pins = "gpio2";
1226		function = "gpio";
1227		drive-strength = <8>;
1228		output-low;
1229		bias-disable;
1230	};
1231
1232	pcie1_wake_n: pcie1-wake-n-state {
1233		pins = "gpio3";
1234		function = "gpio";
1235		drive-strength = <8>;
1236		bias-pull-up;
1237	};
1238
1239	usb_eth_power: usb-eth-power-state {
1240		pins = "gpio7";
1241		function = "gpio";
1242		drive-strength = <8>;
1243		bias-disable;
1244	};
1245
1246	wifi_reset_active: wifi-reset-active-state {
1247		pins = "gpio16";
1248		function = "gpio";
1249		drive-strength = <8>;
1250		output-high;
1251		bias-disable;
1252	};
1253
1254	bt_reset: bt-reset-state {
1255		pins = "gpio17";
1256		function = "gpio";
1257		drive-strength = <8>;
1258		bias-disable;
1259	};
1260
1261	lt9611_irq_pin: lt9611-irq-state {
1262		pins = "gpio20";
1263		function = "gpio";
1264		drive-strength = <8>;
1265		bias-disable;
1266	};
1267
1268	lt9611_rst_pin: lt9611-rst-state {
1269		pins = "gpio21";
1270		function = "gpio";
1271		drive-strength = <8>;
1272		output-high;
1273		input-disable;
1274	};
1275
1276	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
1277		pins = "gpio28";
1278		function = "gpio";
1279		/*
1280		 * Configure a bias-bus-hold on CTS to lower power
1281		 * usage when Bluetooth is turned off. Bus hold will
1282		 * maintain a low power state regardless of whether
1283		 * the Bluetooth module drives the pin in either
1284		 * direction or leaves the pin fully unpowered.
1285		 */
1286		bias-bus-hold;
1287	};
1288
1289	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
1290		pins = "gpio29";
1291		function = "gpio";
1292		/*
1293		 * Configure pull-down on RTS. As RTS is active low
1294		 * signal, pull it low to indicate the BT SoC that it
1295		 * can wakeup the system anytime from suspend state by
1296		 * pulling RX low (by sending wakeup bytes).
1297		 */
1298		bias-pull-down;
1299	};
1300
1301	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
1302		pins = "gpio30";
1303		function = "gpio";
1304		/*
1305		 * Configure pull-up on TX when it isn't actively driven
1306		 * to prevent BT SoC from receiving garbage during sleep.
1307		 */
1308		bias-pull-up;
1309	};
1310
1311	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
1312		pins = "gpio31";
1313		function = "gpio";
1314		/*
1315		 * Configure a pull-up on RX. This is needed to avoid
1316		 * garbage data when the TX pin of the Bluetooth module
1317		 * is floating which may cause spurious wakeups.
1318		 */
1319		bias-pull-up;
1320	};
1321
1322	wifi_host_wake: wifi-host-wake-state {
1323		pins = "gpio38";
1324		function = "gpio";
1325		drive-strength = <8>;
1326		bias-disable;
1327	};
1328
1329	bt_device_wake: bt-device-wake-state {
1330		pins = "gpio39";
1331		function = "gpio";
1332		drive-strength = <8>;
1333		bias-disable;
1334	};
1335
1336	usb1_sbu_default: usb1-sbu-state {
1337		sel-pins {
1338			pins = "gpio52";
1339			function = "gpio";
1340			drive-strength = <8>;
1341			bias-disable;
1342		};
1343
1344		oe-n-pins {
1345			pins = "gpio53";
1346			function = "gpio";
1347			drive-strength = <8>;
1348			output-high;
1349			bias-disable;
1350		};
1351	};
1352
1353	m2_vcc_pin: m2-vcc-state {
1354		pins = "gpio56";
1355		function = "gpio";
1356		drive-strength = <8>;
1357		output-high;
1358		input-disable;
1359	};
1360
1361	lt9611_vcc_pin: lt9611-vcc-pin-state {
1362		pins = "gpio83";
1363		function = "gpio";
1364		drive-strength = <8>;
1365		output-high;
1366		input-disable;
1367	};
1368
1369	usbhub_power: usbhub-power-state {
1370		pins = "gpio86";
1371		function = "gpio";
1372		drive-strength = <8>;
1373		bias-disable;
1374	};
1375
1376	pcie0_reset_n: pcie0-reset-n-state {
1377		pins = "gpio87";
1378		function = "gpio";
1379		drive-strength = <8>;
1380		bias-disable;
1381	};
1382
1383	pcie0_wake_n: pcie0-wake-n-state {
1384		pins = "gpio89";
1385		function = "gpio";
1386		drive-strength = <8>;
1387		bias-pull-up;
1388	};
1389
1390	wifi_power_on: wifi-power-on-state {
1391		pins = "gpio125";
1392		function = "gpio";
1393		drive-strength = <8>;
1394		bias-disable;
1395	};
1396
1397	usbhub_rest: usbhub-reset-state {
1398		pins = "gpio136";
1399		function = "gpio";
1400		drive-strength = <8>;
1401		bias-disable;
1402	};
1403
1404	bt_host_wake: bt-host-wake-state {
1405		pins = "gpio137";
1406		function = "gpio";
1407		drive-strength = <8>;
1408		bias-disable;
1409	};
1410};
1411