File Index
Files and directories
Sign in
FILE

sdm845-xiaomi-beryllium-common.dtsi

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi DEVICETREE
  1// SPDX-License-Identifier: GPL-2.0
  2
  3/dts-v1/;
  4
  5#include <dt-bindings/arm/qcom,ids.h>
  6#include <dt-bindings/leds/common.h>
  7#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
  9#include <dt-bindings/sound/qcom,q6afe.h>
 10#include <dt-bindings/sound/qcom,q6asm.h>
 11#include "sdm845.dtsi"
 12#include "sdm845-wcd9340.dtsi"
 13#include "pm8998.dtsi"
 14#include "pmi8998.dtsi"
 15
 16/*
 17 * Delete following upstream (sdm845.dtsi) reserved
 18 * memory mappings which are different in this device.
 19 */
 20/delete-node/ &tz_mem;
 21/delete-node/ &adsp_mem;
 22/delete-node/ &wlan_msa_mem;
 23/delete-node/ &mpss_region;
 24/delete-node/ &venus_mem;
 25/delete-node/ &cdsp_mem;
 26/delete-node/ &mba_region;
 27/delete-node/ &slpi_mem;
 28/delete-node/ &spss_mem;
 29/delete-node/ &rmtfs_mem;
 30
 31/ {
 32	chassis-type = "handset";
 33
 34	/* required for bootloader to select correct board */
 35	qcom,board-id = <69 0>;
 36	qcom,msm-id = <QCOM_ID_SDM845 0x20001>;
 37
 38	aliases {
 39		serial1 = &uart6;
 40	};
 41
 42	gpio-keys {
 43		compatible = "gpio-keys";
 44		autorepeat;
 45
 46		pinctrl-names = "default";
 47		pinctrl-0 = <&vol_up_pin_a>;
 48
 49		key-vol-up {
 50			label = "Volume Up";
 51			linux,code = <KEY_VOLUMEUP>;
 52			gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
 53		};
 54	};
 55
 56	/* Reserved memory changes from downstream */
 57	reserved-memory {
 58		tz_mem: memory@86200000 {
 59			reg = <0 0x86200000 0 0x4900000>;
 60			no-map;
 61		};
 62
 63		adsp_mem: memory@8c500000 {
 64			reg = <0 0x8c500000 0 0x1e00000>;
 65			no-map;
 66		};
 67
 68		wlan_msa_mem: memory@8e300000 {
 69			reg = <0 0x8e300000 0 0x100000>;
 70			no-map;
 71		};
 72
 73		mpss_region: memory@8e400000 {
 74			reg = <0 0x8e400000 0 0x7800000>;
 75			no-map;
 76		};
 77
 78		venus_mem: memory@95c00000 {
 79			reg = <0 0x95c00000 0 0x500000>;
 80			no-map;
 81		};
 82
 83		cdsp_mem: memory@96100000 {
 84			reg = <0 0x96100000 0 0x800000>;
 85			no-map;
 86		};
 87
 88		mba_region: memory@96900000 {
 89			reg = <0 0x96900000 0 0x200000>;
 90			no-map;
 91		};
 92
 93		slpi_mem: memory@96b00000 {
 94			reg = <0 0x96b00000 0 0x1400000>;
 95			no-map;
 96		};
 97
 98		spss_mem: memory@97f00000 {
 99			reg = <0 0x97f00000 0 0x100000>;
100			no-map;
101		};
102
103		/* Cont splash region set up by the bootloader */
104		cont_splash_mem: framebuffer@9d400000 {
105			reg = <0 0x9d400000 0 0x2400000>;
106			no-map;
107		};
108
109		rmtfs_mem: memory@f6301000 {
110			compatible = "qcom,rmtfs-mem";
111			reg = <0 0xf6301000 0 0x200000>;
112			no-map;
113
114			qcom,client-id = <1>;
115			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
116		};
117	};
118
119	battery: battery {
120		compatible = "simple-battery";
121
122		charge-full-design-microamp-hours = <4000000>;
123		voltage-min-design-microvolt = <3400000>;
124		voltage-max-design-microvolt = <4400000>;
125	};
126
127	vreg_s4a_1p8: vreg-s4a-1p8 {
128		compatible = "regulator-fixed";
129		regulator-name = "vreg_s4a_1p8";
130
131		regulator-min-microvolt = <1800000>;
132		regulator-max-microvolt = <1800000>;
133		regulator-always-on;
134	};
135};
136
137&adsp_pas {
138	status = "okay";
139	firmware-name = "qcom/sdm845/beryllium/adsp.mbn";
140};
141
142&apps_rsc {
143	regulators-0 {
144		compatible = "qcom,pm8998-rpmh-regulators";
145		qcom,pmic-id = "a";
146
147		vreg_l1a_0p875: ldo1 {
148			regulator-min-microvolt = <880000>;
149			regulator-max-microvolt = <880000>;
150			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
151		};
152
153		vreg_l5a_0p8: ldo5 {
154			regulator-min-microvolt = <800000>;
155			regulator-max-microvolt = <800000>;
156			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
157		};
158
159		vreg_l7a_1p8: ldo7 {
160			regulator-min-microvolt = <1800000>;
161			regulator-max-microvolt = <1800000>;
162			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
163		};
164
165		vreg_l12a_1p8: ldo12 {
166			regulator-min-microvolt = <1800000>;
167			regulator-max-microvolt = <1800000>;
168			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
169		};
170
171		vreg_l13a_2p95: ldo13 {
172			regulator-min-microvolt = <1800000>;
173			regulator-max-microvolt = <2960000>;
174			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
175		};
176
177		vreg_l14a_1p8: ldo14 {
178			regulator-min-microvolt = <1800000>;
179			regulator-max-microvolt = <1800000>;
180			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
181			regulator-boot-on;
182			regulator-always-on;
183		};
184
185		vreg_l17a_1p3: ldo17 {
186			regulator-min-microvolt = <1304000>;
187			regulator-max-microvolt = <1304000>;
188			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
189		};
190
191		vreg_l20a_2p95: ldo20 {
192			regulator-min-microvolt = <2960000>;
193			regulator-max-microvolt = <2968000>;
194			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
195		};
196
197		vreg_l21a_2p95: ldo21 {
198			regulator-min-microvolt = <2960000>;
199			regulator-max-microvolt = <2968000>;
200			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
201		};
202
203		vreg_l23a_3p3: ldo23 {
204			regulator-min-microvolt = <3300000>;
205			regulator-max-microvolt = <3312000>;
206			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
207		};
208
209		vreg_l24a_3p075: ldo24 {
210			regulator-min-microvolt = <3088000>;
211			regulator-max-microvolt = <3088000>;
212			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
213		};
214
215		vreg_l25a_3p3: ldo25 {
216			regulator-min-microvolt = <3300000>;
217			regulator-max-microvolt = <3312000>;
218			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
219		};
220
221		vreg_l26a_1p2: ldo26 {
222			regulator-min-microvolt = <1200000>;
223			regulator-max-microvolt = <1200000>;
224			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
225			regulator-boot-on;
226		};
227	};
228};
229
230&cdsp_pas {
231	status = "okay";
232	firmware-name = "qcom/sdm845/beryllium/cdsp.mbn";
233};
234
235&gcc {
236	protected-clocks = <GCC_QSPI_CORE_CLK>,
237			   <GCC_QSPI_CORE_CLK_SRC>,
238			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
239			   <GCC_LPASS_Q6_AXI_CLK>,
240			   <GCC_LPASS_SWAY_CLK>;
241};
242
243&gpi_dma1 {
244	status = "okay";
245};
246
247&gpu {
248	status = "okay";
249};
250
251&gpu_zap_shader {
252	firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn";
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 = <MSM_FRONTEND_DAI_MULTIMEDIA1>;
396	};
397
398	dai@1 {
399		reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>;
400	};
401
402	dai@2 {
403		reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>;
404	};
405};
406
407&qupv3_id_0 {
408	status = "okay";
409};
410
411&qupv3_id_1 {
412	status = "okay";
413};
414
415&sdhc_2 {
416	status = "okay";
417
418	pinctrl-names = "default";
419	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
420
421	vmmc-supply = <&vreg_l21a_2p95>;
422	vqmmc-supply = <&vreg_l13a_2p95>;
423
424	bus-width = <4>;
425	cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>;
426};
427
428&sound {
429	compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
430	pinctrl-0 = <&quat_mi2s_active
431			&quat_mi2s_sd0_active>;
432	pinctrl-names = "default";
433	model = "Xiaomi Poco F1";
434	audio-routing =
435		"RX_BIAS", "MCLK",
436		"AMIC1", "MIC BIAS1",
437		"AMIC2", "MIC BIAS2",
438		"AMIC3", "MIC BIAS3";
439
440	mm1-dai-link {
441		link-name = "MultiMedia1";
442		cpu {
443			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
444		};
445	};
446
447	mm2-dai-link {
448		link-name = "MultiMedia2";
449		cpu {
450			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
451		};
452	};
453
454	mm3-dai-link {
455		link-name = "MultiMedia3";
456		cpu {
457			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
458		};
459	};
460
461	slim-dai-link {
462		link-name = "SLIM Playback";
463		cpu {
464			sound-dai = <&q6afedai SLIMBUS_0_RX>;
465		};
466
467		platform {
468			sound-dai = <&q6routing>;
469		};
470
471		codec {
472			sound-dai = <&wcd9340 0>;
473		};
474	};
475
476	slimcap-dai-link {
477		link-name = "SLIM Capture";
478		cpu {
479			sound-dai = <&q6afedai SLIMBUS_0_TX>;
480		};
481
482		platform {
483			sound-dai = <&q6routing>;
484		};
485
486		codec {
487			sound-dai = <&wcd9340 1>;
488		};
489	};
490};
491
492&tlmm {
493	gpio-reserved-ranges = <0 4>, <81 4>;
494
495	sdc2_default_state: sdc2-default-state {
496		clk-pins {
497			pins = "sdc2_clk";
498			bias-disable;
499			drive-strength = <16>;
500		};
501
502		cmd-pins {
503			pins = "sdc2_cmd";
504			bias-pull-up;
505			drive-strength = <10>;
506		};
507
508		data-pins {
509			pins = "sdc2_data";
510			bias-pull-up;
511			drive-strength = <10>;
512		};
513	};
514
515	sdc2_card_det_n: sd-card-det-n-state {
516		pins = "gpio126";
517		function = "gpio";
518		bias-pull-up;
519	};
520
521	ts_int_default: ts-int-default-state {
522		pins = "gpio31";
523		function = "gpio";
524		drive-strength = <16>;
525		bias-pull-down;
526		output-disable;
527	};
528
529	ts_reset_default: ts-reset-default-state {
530		pins = "gpio32";
531		function = "gpio";
532		drive-strength = <16>;
533		output-high;
534	};
535
536	ts_int_sleep: ts-int-sleep-state {
537		pins = "gpio31";
538		function = "gpio";
539		drive-strength = <2>;
540		bias-pull-down;
541		output-disable;
542	};
543
544	ts_reset_sleep: ts-reset-sleep-state {
545		pins = "gpio32";
546		function = "gpio";
547		drive-strength = <2>;
548		bias-disable;
549		output-low;
550	};
551};
552
553&uart6 {
554	status = "okay";
555
556	pinctrl-0 = <&qup_uart6_4pin>;
557
558	bluetooth {
559		compatible = "qcom,wcn3990-bt";
560
561		vddio-supply = <&vreg_s4a_1p8>;
562		vddxo-supply = <&vreg_l7a_1p8>;
563		vddrf-supply = <&vreg_l17a_1p3>;
564		vddch0-supply = <&vreg_l25a_3p3>;
565		max-speed = <3200000>;
566	};
567};
568
569&ufs_mem_hc {
570	status = "okay";
571
572	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
573
574	vcc-supply = <&vreg_l20a_2p95>;
575	vcc-max-microamp = <800000>;
576};
577
578&ufs_mem_phy {
579	status = "okay";
580
581	vdda-phy-supply = <&vreg_l1a_0p875>;
582	vdda-pll-supply = <&vreg_l26a_1p2>;
583};
584
585&usb_1 {
586	status = "okay";
587};
588
589&usb_1_dwc3 {
590	dr_mode = "peripheral";
591};
592
593&usb_1_hsphy {
594	status = "okay";
595
596	vdd-supply = <&vreg_l1a_0p875>;
597	vdda-pll-supply = <&vreg_l12a_1p8>;
598	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
599
600	qcom,imp-res-offset-value = <8>;
601	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
602	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
603	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
604};
605
606&usb_1_qmpphy {
607	status = "okay";
608
609	vdda-phy-supply = <&vreg_l26a_1p2>;
610	vdda-pll-supply = <&vreg_l1a_0p875>;
611};
612
613&venus {
614	status = "okay";
615	firmware-name = "qcom/sdm845/beryllium/venus.mbn";
616};
617
618&wcd9340 {
619	reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
620	vdd-buck-supply = <&vreg_s4a_1p8>;
621	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
622	vdd-tx-supply = <&vreg_s4a_1p8>;
623	vdd-rx-supply = <&vreg_s4a_1p8>;
624	vdd-io-supply = <&vreg_s4a_1p8>;
625	qcom,micbias1-microvolt = <2700000>;
626	qcom,micbias2-microvolt = <1800000>;
627	qcom,micbias3-microvolt = <2700000>;
628	qcom,micbias4-microvolt = <2700000>;
629};
630
631&wifi {
632	status = "okay";
633
634	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
635	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
636	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
637	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
638	vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
639};
~/ Read-only file preview.