Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / sdm845-xiaomi-beryllium-common.dtsi
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 = "/*(DEBLOBBED)*/";
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 = "/*(DEBLOBBED)*/";
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 = "/*(DEBLOBBED)*/";
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 = "/*(DEBLOBBED)*/", "/*(DEBLOBBED)*/";
312 };
313
314 &ipa {
315         qcom,gsi-loader = "self";
316         memory-region = <&ipa_fw_mem>;
317         firmware-name = "/*(DEBLOBBED)*/";
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 &pm8998_resin {
359         linux,code = <KEY_VOLUMEDOWN>;
360         status = "okay";
361 };
362
363 /* QUAT I2S Uses 1 I2S SD Line for audio on TAS2559/60 amplifiers */
364 &q6afedai {
365         dai@22 {
366                 reg = <QUATERNARY_MI2S_RX>;
367                 qcom,sd-lines = <0>;
368         };
369 };
370
371 &q6asmdai {
372         dai@0 {
373                 reg = <0>;
374         };
375
376         dai@1 {
377                 reg = <1>;
378         };
379
380         dai@2 {
381                 reg = <2>;
382         };
383 };
384
385 &qupv3_id_0 {
386         status = "okay";
387 };
388
389 &sdhc_2 {
390         status = "okay";
391
392         pinctrl-names = "default";
393         pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
394
395         vmmc-supply = <&vreg_l21a_2p95>;
396         vqmmc-supply = <&vreg_l13a_2p95>;
397
398         bus-width = <4>;
399         cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>;
400 };
401
402 &sound {
403         compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
404         pinctrl-0 = <&quat_mi2s_active
405                         &quat_mi2s_sd0_active>;
406         pinctrl-names = "default";
407         model = "Xiaomi Poco F1";
408         audio-routing =
409                 "RX_BIAS", "MCLK",
410                 "AMIC1", "MIC BIAS1",
411                 "AMIC2", "MIC BIAS2",
412                 "AMIC3", "MIC BIAS3";
413
414         mm1-dai-link {
415                 link-name = "MultiMedia1";
416                 cpu {
417                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
418                 };
419         };
420
421         mm2-dai-link {
422                 link-name = "MultiMedia2";
423                 cpu {
424                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
425                 };
426         };
427
428         mm3-dai-link {
429                 link-name = "MultiMedia3";
430                 cpu {
431                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
432                 };
433         };
434
435         slim-dai-link {
436                 link-name = "SLIM Playback";
437                 cpu {
438                         sound-dai = <&q6afedai SLIMBUS_0_RX>;
439                 };
440
441                 platform {
442                         sound-dai = <&q6routing>;
443                 };
444
445                 codec {
446                         sound-dai = <&wcd9340 0>;
447                 };
448         };
449
450         slimcap-dai-link {
451                 link-name = "SLIM Capture";
452                 cpu {
453                         sound-dai = <&q6afedai SLIMBUS_0_TX>;
454                 };
455
456                 platform {
457                         sound-dai = <&q6routing>;
458                 };
459
460                 codec {
461                         sound-dai = <&wcd9340 1>;
462                 };
463         };
464 };
465
466 &tlmm {
467         gpio-reserved-ranges = <0 4>, <81 4>;
468
469         sdc2_default_state: sdc2-default-state {
470                 clk-pins {
471                         pins = "sdc2_clk";
472                         bias-disable;
473                         drive-strength = <16>;
474                 };
475
476                 cmd-pins {
477                         pins = "sdc2_cmd";
478                         bias-pull-up;
479                         drive-strength = <10>;
480                 };
481
482                 data-pins {
483                         pins = "sdc2_data";
484                         bias-pull-up;
485                         drive-strength = <10>;
486                 };
487         };
488
489         sdc2_card_det_n: sd-card-det-n-state {
490                 pins = "gpio126";
491                 function = "gpio";
492                 bias-pull-up;
493         };
494 };
495
496 &uart6 {
497         status = "okay";
498
499         pinctrl-0 = <&qup_uart6_4pin>;
500
501         bluetooth {
502                 compatible = "qcom,wcn3990-bt";
503
504                 vddio-supply = <&vreg_s4a_1p8>;
505                 vddxo-supply = <&vreg_l7a_1p8>;
506                 vddrf-supply = <&vreg_l17a_1p3>;
507                 vddch0-supply = <&vreg_l25a_3p3>;
508                 max-speed = <3200000>;
509         };
510 };
511
512 &ufs_mem_hc {
513         status = "okay";
514
515         reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
516
517         vcc-supply = <&vreg_l20a_2p95>;
518         vcc-max-microamp = <800000>;
519 };
520
521 &ufs_mem_phy {
522         status = "okay";
523
524         vdda-phy-supply = <&vreg_l1a_0p875>;
525         vdda-pll-supply = <&vreg_l26a_1p2>;
526 };
527
528 &usb_1 {
529         status = "okay";
530 };
531
532 &usb_1_dwc3 {
533         dr_mode = "peripheral";
534 };
535
536 &usb_1_hsphy {
537         status = "okay";
538
539         vdd-supply = <&vreg_l1a_0p875>;
540         vdda-pll-supply = <&vreg_l12a_1p8>;
541         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
542
543         qcom,imp-res-offset-value = <8>;
544         qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
545         qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
546         qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
547 };
548
549 &usb_1_qmpphy {
550         status = "okay";
551
552         vdda-phy-supply = <&vreg_l26a_1p2>;
553         vdda-pll-supply = <&vreg_l1a_0p875>;
554 };
555
556 &venus {
557         status = "okay";
558         firmware-name = "/*(DEBLOBBED)*/";
559 };
560
561 &wcd9340 {
562         reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
563         vdd-buck-supply = <&vreg_s4a_1p8>;
564         vdd-buck-sido-supply = <&vreg_s4a_1p8>;
565         vdd-tx-supply = <&vreg_s4a_1p8>;
566         vdd-rx-supply = <&vreg_s4a_1p8>;
567         vdd-io-supply = <&vreg_s4a_1p8>;
568         qcom,micbias1-microvolt = <2700000>;
569         qcom,micbias2-microvolt = <1800000>;
570         qcom,micbias3-microvolt = <2700000>;
571         qcom,micbias4-microvolt = <2700000>;
572 };
573
574 &wifi {
575         status = "okay";
576
577         vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
578         vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
579         vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
580         vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
581         vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
582 };