xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/sdm845-xiaomi-beryllium-common.dtsi (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1// SPDX-License-Identifier: GPL-2.0
2
3/dts-v1/;
4
5#include <dt-bindings/leds/common.h>
6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
7#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
8#include <dt-bindings/sound/qcom,q6afe.h>
9#include <dt-bindings/sound/qcom,q6asm.h>
10#include "sdm845.dtsi"
11#include "sdm845-wcd9340.dtsi"
12#include "pm8998.dtsi"
13#include "pmi8998.dtsi"
14
15/*
16 * Delete following upstream (sdm845.dtsi) reserved
17 * memory mappings which are different in this device.
18 */
19/delete-node/ &tz_mem;
20/delete-node/ &adsp_mem;
21/delete-node/ &wlan_msa_mem;
22/delete-node/ &mpss_region;
23/delete-node/ &venus_mem;
24/delete-node/ &cdsp_mem;
25/delete-node/ &mba_region;
26/delete-node/ &slpi_mem;
27/delete-node/ &spss_mem;
28/delete-node/ &rmtfs_mem;
29
30/ {
31	chassis-type = "handset";
32
33	/* required for bootloader to select correct board */
34	qcom,board-id = <69 0>;
35	qcom,msm-id = <321 0x20001>;
36
37	aliases {
38		serial1 = &uart6;
39	};
40
41	gpio-keys {
42		compatible = "gpio-keys";
43		autorepeat;
44
45		pinctrl-names = "default";
46		pinctrl-0 = <&vol_up_pin_a>;
47
48		key-vol-up {
49			label = "Volume Up";
50			linux,code = <KEY_VOLUMEUP>;
51			gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
52		};
53	};
54
55	/* Reserved memory changes from downstream */
56	reserved-memory {
57		tz_mem: memory@86200000 {
58			reg = <0 0x86200000 0 0x4900000>;
59			no-map;
60		};
61
62		adsp_mem: memory@8c500000 {
63			reg = <0 0x8c500000 0 0x1e00000>;
64			no-map;
65		};
66
67		wlan_msa_mem: memory@8e300000 {
68			reg = <0 0x8e300000 0 0x100000>;
69			no-map;
70		};
71
72		mpss_region: memory@8e400000 {
73			reg = <0 0x8e400000 0 0x7800000>;
74			no-map;
75		};
76
77		venus_mem: memory@95c00000 {
78			reg = <0 0x95c00000 0 0x500000>;
79			no-map;
80		};
81
82		cdsp_mem: memory@96100000 {
83			reg = <0 0x96100000 0 0x800000>;
84			no-map;
85		};
86
87		mba_region: memory@96900000 {
88			reg = <0 0x96900000 0 0x200000>;
89			no-map;
90		};
91
92		slpi_mem: memory@96b00000 {
93			reg = <0 0x96b00000 0 0x1400000>;
94			no-map;
95		};
96
97		spss_mem: memory@97f00000 {
98			reg = <0 0x97f00000 0 0x100000>;
99			no-map;
100		};
101
102		/* Cont splash region set up by the bootloader */
103		cont_splash_mem: framebuffer@9d400000 {
104			reg = <0 0x9d400000 0 0x2400000>;
105			no-map;
106		};
107
108		rmtfs_mem: memory@f6301000 {
109			compatible = "qcom,rmtfs-mem";
110			reg = <0 0xf6301000 0 0x200000>;
111			no-map;
112
113			qcom,client-id = <1>;
114			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
115		};
116	};
117
118	battery: battery {
119		compatible = "simple-battery";
120
121		charge-full-design-microamp-hours = <4000000>;
122		voltage-min-design-microvolt = <3400000>;
123		voltage-max-design-microvolt = <4400000>;
124	};
125
126	vreg_s4a_1p8: vreg-s4a-1p8 {
127		compatible = "regulator-fixed";
128		regulator-name = "vreg_s4a_1p8";
129
130		regulator-min-microvolt = <1800000>;
131		regulator-max-microvolt = <1800000>;
132		regulator-always-on;
133	};
134};
135
136&adsp_pas {
137	status = "okay";
138	firmware-name = "qcom/sdm845/beryllium/adsp.mbn";
139};
140
141&apps_rsc {
142	regulators-0 {
143		compatible = "qcom,pm8998-rpmh-regulators";
144		qcom,pmic-id = "a";
145
146		vreg_l1a_0p875: ldo1 {
147			regulator-min-microvolt = <880000>;
148			regulator-max-microvolt = <880000>;
149			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
150		};
151
152		vreg_l5a_0p8: ldo5 {
153			regulator-min-microvolt = <800000>;
154			regulator-max-microvolt = <800000>;
155			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
156		};
157
158		vreg_l7a_1p8: ldo7 {
159			regulator-min-microvolt = <1800000>;
160			regulator-max-microvolt = <1800000>;
161			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
162		};
163
164		vreg_l12a_1p8: ldo12 {
165			regulator-min-microvolt = <1800000>;
166			regulator-max-microvolt = <1800000>;
167			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
168		};
169
170		vreg_l13a_2p95: ldo13 {
171			regulator-min-microvolt = <1800000>;
172			regulator-max-microvolt = <2960000>;
173			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
174		};
175
176		vreg_l14a_1p8: ldo14 {
177			regulator-min-microvolt = <1800000>;
178			regulator-max-microvolt = <1800000>;
179			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
180			regulator-boot-on;
181			regulator-always-on;
182		};
183
184		vreg_l17a_1p3: ldo17 {
185			regulator-min-microvolt = <1304000>;
186			regulator-max-microvolt = <1304000>;
187			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
188		};
189
190		vreg_l20a_2p95: ldo20 {
191			regulator-min-microvolt = <2960000>;
192			regulator-max-microvolt = <2968000>;
193			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
194		};
195
196		vreg_l21a_2p95: ldo21 {
197			regulator-min-microvolt = <2960000>;
198			regulator-max-microvolt = <2968000>;
199			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
200		};
201
202		vreg_l23a_3p3: ldo23 {
203			regulator-min-microvolt = <3300000>;
204			regulator-max-microvolt = <3312000>;
205			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
206		};
207
208		vreg_l24a_3p075: ldo24 {
209			regulator-min-microvolt = <3088000>;
210			regulator-max-microvolt = <3088000>;
211			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
212		};
213
214		vreg_l25a_3p3: ldo25 {
215			regulator-min-microvolt = <3300000>;
216			regulator-max-microvolt = <3312000>;
217			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
218		};
219
220		vreg_l26a_1p2: ldo26 {
221			regulator-min-microvolt = <1200000>;
222			regulator-max-microvolt = <1200000>;
223			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
224			regulator-boot-on;
225		};
226	};
227};
228
229&cdsp_pas {
230	status = "okay";
231	firmware-name = "qcom/sdm845/beryllium/cdsp.mbn";
232};
233
234&gcc {
235	protected-clocks = <GCC_QSPI_CORE_CLK>,
236			   <GCC_QSPI_CORE_CLK_SRC>,
237			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
238			   <GCC_LPASS_Q6_AXI_CLK>,
239			   <GCC_LPASS_SWAY_CLK>;
240};
241
242&gmu {
243	status = "okay";
244};
245
246&gpu {
247	status = "okay";
248
249	zap-shader {
250		memory-region = <&gpu_mem>;
251		firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn";
252	};
253};
254
255&ibb {
256	regulator-min-microvolt = <4600000>;
257	regulator-max-microvolt = <6000000>;
258	regulator-over-current-protection;
259	regulator-pull-down;
260	regulator-soft-start;
261	qcom,discharge-resistor-kohms = <300>;
262};
263
264&lab {
265	regulator-min-microvolt = <4600000>;
266	regulator-max-microvolt = <6000000>;
267	regulator-over-current-protection;
268	regulator-pull-down;
269	regulator-soft-start;
270};
271
272&mdss {
273	status = "okay";
274};
275
276&mdss_dsi0 {
277	status = "okay";
278	vdda-supply = <&vreg_l26a_1p2>;
279
280	display_panel: panel@0 {
281		reg = <0>;
282		vddio-supply = <&vreg_l14a_1p8>;
283		vddpos-supply = <&lab>;
284		vddneg-supply = <&ibb>;
285
286		backlight = <&pmi8998_wled>;
287		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
288
289		status = "disabled";
290
291		port {
292			panel_in_0: endpoint {
293				remote-endpoint = <&mdss_dsi0_out>;
294			};
295		};
296	};
297};
298
299&mdss_dsi0_out {
300	remote-endpoint = <&panel_in_0>;
301	data-lanes = <0 1 2 3>;
302};
303
304&mdss_dsi0_phy {
305	status = "okay";
306	vdds-supply = <&vreg_l1a_0p875>;
307};
308
309&mss_pil {
310	status = "okay";
311	firmware-name = "qcom/sdm845/beryllium/mba.mbn", "qcom/sdm845/beryllium/modem.mbn";
312};
313
314&ipa {
315	qcom,gsi-loader = "self";
316	memory-region = <&ipa_fw_mem>;
317	firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn";
318	status = "okay";
319};
320
321&pm8998_gpios {
322	vol_up_pin_a: vol-up-active-state {
323		pins = "gpio6";
324		function = "normal";
325		input-enable;
326		bias-pull-up;
327		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
328	};
329};
330
331&pmi8998_lpg {
332	status = "okay";
333
334	led@5 {
335		reg = <5>;
336		color = <LED_COLOR_ID_WHITE>;
337		function = LED_FUNCTION_STATUS;
338	};
339};
340
341&pmi8998_wled {
342	status = "okay";
343	qcom,current-boost-limit = <970>;
344	qcom,ovp-millivolt = <29600>;
345	qcom,current-limit-microamp = <20000>;
346	qcom,num-strings = <2>;
347	qcom,switching-freq = <600>;
348	qcom,external-pfet;
349	qcom,cabc;
350};
351
352&pmi8998_charger {
353	monitored-battery = <&battery>;
354
355	status = "okay";
356};
357
358&pmi8998_flash {
359	status = "okay";
360
361	led-0 {
362		function = LED_FUNCTION_FLASH;
363		color = <LED_COLOR_ID_WHITE>;
364		led-sources = <1>;
365		led-max-microamp = <500000>;
366		flash-max-microamp = <1500000>;
367		flash-max-timeout-us = <1280000>;
368	};
369
370	led-1 {
371		function = LED_FUNCTION_FLASH;
372		color = <LED_COLOR_ID_YELLOW>;
373		led-sources = <2>;
374		led-max-microamp = <500000>;
375		flash-max-microamp = <1500000>;
376		flash-max-timeout-us = <1280000>;
377	};
378};
379
380&pm8998_resin {
381	linux,code = <KEY_VOLUMEDOWN>;
382	status = "okay";
383};
384
385/* QUAT I2S Uses 1 I2S SD Line for audio on TAS2559/60 amplifiers */
386&q6afedai {
387	dai@22 {
388		reg = <QUATERNARY_MI2S_RX>;
389		qcom,sd-lines = <0>;
390	};
391};
392
393&q6asmdai {
394	dai@0 {
395		reg = <0>;
396	};
397
398	dai@1 {
399		reg = <1>;
400	};
401
402	dai@2 {
403		reg = <2>;
404	};
405};
406
407&qupv3_id_0 {
408	status = "okay";
409};
410
411&sdhc_2 {
412	status = "okay";
413
414	pinctrl-names = "default";
415	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
416
417	vmmc-supply = <&vreg_l21a_2p95>;
418	vqmmc-supply = <&vreg_l13a_2p95>;
419
420	bus-width = <4>;
421	cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>;
422};
423
424&sound {
425	compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
426	pinctrl-0 = <&quat_mi2s_active
427			&quat_mi2s_sd0_active>;
428	pinctrl-names = "default";
429	model = "Xiaomi Poco F1";
430	audio-routing =
431		"RX_BIAS", "MCLK",
432		"AMIC1", "MIC BIAS1",
433		"AMIC2", "MIC BIAS2",
434		"AMIC3", "MIC BIAS3";
435
436	mm1-dai-link {
437		link-name = "MultiMedia1";
438		cpu {
439			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
440		};
441	};
442
443	mm2-dai-link {
444		link-name = "MultiMedia2";
445		cpu {
446			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
447		};
448	};
449
450	mm3-dai-link {
451		link-name = "MultiMedia3";
452		cpu {
453			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
454		};
455	};
456
457	slim-dai-link {
458		link-name = "SLIM Playback";
459		cpu {
460			sound-dai = <&q6afedai SLIMBUS_0_RX>;
461		};
462
463		platform {
464			sound-dai = <&q6routing>;
465		};
466
467		codec {
468			sound-dai = <&wcd9340 0>;
469		};
470	};
471
472	slimcap-dai-link {
473		link-name = "SLIM Capture";
474		cpu {
475			sound-dai = <&q6afedai SLIMBUS_0_TX>;
476		};
477
478		platform {
479			sound-dai = <&q6routing>;
480		};
481
482		codec {
483			sound-dai = <&wcd9340 1>;
484		};
485	};
486};
487
488&tlmm {
489	gpio-reserved-ranges = <0 4>, <81 4>;
490
491	sdc2_default_state: sdc2-default-state {
492		clk-pins {
493			pins = "sdc2_clk";
494			bias-disable;
495			drive-strength = <16>;
496		};
497
498		cmd-pins {
499			pins = "sdc2_cmd";
500			bias-pull-up;
501			drive-strength = <10>;
502		};
503
504		data-pins {
505			pins = "sdc2_data";
506			bias-pull-up;
507			drive-strength = <10>;
508		};
509	};
510
511	sdc2_card_det_n: sd-card-det-n-state {
512		pins = "gpio126";
513		function = "gpio";
514		bias-pull-up;
515	};
516};
517
518&uart6 {
519	status = "okay";
520
521	pinctrl-0 = <&qup_uart6_4pin>;
522
523	bluetooth {
524		compatible = "qcom,wcn3990-bt";
525
526		vddio-supply = <&vreg_s4a_1p8>;
527		vddxo-supply = <&vreg_l7a_1p8>;
528		vddrf-supply = <&vreg_l17a_1p3>;
529		vddch0-supply = <&vreg_l25a_3p3>;
530		max-speed = <3200000>;
531	};
532};
533
534&ufs_mem_hc {
535	status = "okay";
536
537	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
538
539	vcc-supply = <&vreg_l20a_2p95>;
540	vcc-max-microamp = <800000>;
541};
542
543&ufs_mem_phy {
544	status = "okay";
545
546	vdda-phy-supply = <&vreg_l1a_0p875>;
547	vdda-pll-supply = <&vreg_l26a_1p2>;
548};
549
550&usb_1 {
551	status = "okay";
552};
553
554&usb_1_dwc3 {
555	dr_mode = "peripheral";
556};
557
558&usb_1_hsphy {
559	status = "okay";
560
561	vdd-supply = <&vreg_l1a_0p875>;
562	vdda-pll-supply = <&vreg_l12a_1p8>;
563	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
564
565	qcom,imp-res-offset-value = <8>;
566	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
567	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
568	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
569};
570
571&usb_1_qmpphy {
572	status = "okay";
573
574	vdda-phy-supply = <&vreg_l26a_1p2>;
575	vdda-pll-supply = <&vreg_l1a_0p875>;
576};
577
578&venus {
579	status = "okay";
580	firmware-name = "qcom/sdm845/beryllium/venus.mbn";
581};
582
583&wcd9340 {
584	reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
585	vdd-buck-supply = <&vreg_s4a_1p8>;
586	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
587	vdd-tx-supply = <&vreg_s4a_1p8>;
588	vdd-rx-supply = <&vreg_s4a_1p8>;
589	vdd-io-supply = <&vreg_s4a_1p8>;
590	qcom,micbias1-microvolt = <2700000>;
591	qcom,micbias2-microvolt = <1800000>;
592	qcom,micbias3-microvolt = <2700000>;
593	qcom,micbias4-microvolt = <2700000>;
594};
595
596&wifi {
597	status = "okay";
598
599	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
600	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
601	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
602	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
603	vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
604};
605