0001 // SPDX-License-Identifier: GPL-2.0
0002
0003 /dts-v1/;
0004
0005 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0006 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0007 #include <dt-bindings/sound/qcom,q6afe.h>
0008 #include <dt-bindings/sound/qcom,q6asm.h>
0009 #include "sdm845.dtsi"
0010 #include "pm8998.dtsi"
0011 #include "pmi8998.dtsi"
0012
0013 /*
0014 * Delete following upstream (sdm845.dtsi) reserved
0015 * memory mappings which are different in this device.
0016 */
0017 /delete-node/ &tz_mem;
0018 /delete-node/ &adsp_mem;
0019 /delete-node/ &wlan_msa_mem;
0020 /delete-node/ &mpss_region;
0021 /delete-node/ &venus_mem;
0022 /delete-node/ &cdsp_mem;
0023 /delete-node/ &mba_region;
0024 /delete-node/ &slpi_mem;
0025 /delete-node/ &spss_mem;
0026 /delete-node/ &rmtfs_mem;
0027
0028 / {
0029 model = "Xiaomi Pocophone F1";
0030 compatible = "xiaomi,beryllium", "qcom,sdm845";
0031 chassis-type = "handset";
0032
0033 /* required for bootloader to select correct board */
0034 qcom,board-id = <69 0>;
0035 qcom,msm-id = <321 0x20001>;
0036
0037 aliases {
0038 hsuart0 = &uart6;
0039 };
0040
0041 gpio-keys {
0042 compatible = "gpio-keys";
0043 autorepeat;
0044
0045 pinctrl-names = "default";
0046 pinctrl-0 = <&vol_up_pin_a>;
0047
0048 key-vol-up {
0049 label = "Volume Up";
0050 linux,code = <KEY_VOLUMEUP>;
0051 gpios = <&pm8998_gpio 6 GPIO_ACTIVE_LOW>;
0052 };
0053 };
0054
0055 /* Reserved memory changes from downstream */
0056 reserved-memory {
0057 tz_mem: memory@86200000 {
0058 reg = <0 0x86200000 0 0x4900000>;
0059 no-map;
0060 };
0061
0062 adsp_mem: memory@8c500000 {
0063 reg = <0 0x8c500000 0 0x1e00000>;
0064 no-map;
0065 };
0066
0067 wlan_msa_mem: memory@8e300000 {
0068 reg = <0 0x8e300000 0 0x100000>;
0069 no-map;
0070 };
0071
0072 mpss_region: memory@8e400000 {
0073 reg = <0 0x8e400000 0 0x7800000>;
0074 no-map;
0075 };
0076
0077 venus_mem: memory@95c00000 {
0078 reg = <0 0x95c00000 0 0x500000>;
0079 no-map;
0080 };
0081
0082 cdsp_mem: memory@96100000 {
0083 reg = <0 0x96100000 0 0x800000>;
0084 no-map;
0085 };
0086
0087 mba_region: memory@96900000 {
0088 reg = <0 0x96900000 0 0x200000>;
0089 no-map;
0090 };
0091
0092 slpi_mem: memory@96b00000 {
0093 reg = <0 0x96b00000 0 0x1400000>;
0094 no-map;
0095 };
0096
0097 spss_mem: memory@97f00000 {
0098 reg = <0 0x97f00000 0 0x100000>;
0099 no-map;
0100 };
0101
0102 rmtfs_mem: memory@f6301000 {
0103 compatible = "qcom,rmtfs-mem";
0104 reg = <0 0xf6301000 0 0x200000>;
0105 no-map;
0106
0107 qcom,client-id = <1>;
0108 qcom,vmid = <15>;
0109 };
0110 };
0111
0112 vreg_s4a_1p8: vreg-s4a-1p8 {
0113 compatible = "regulator-fixed";
0114 regulator-name = "vreg_s4a_1p8";
0115
0116 regulator-min-microvolt = <1800000>;
0117 regulator-max-microvolt = <1800000>;
0118 regulator-always-on;
0119 };
0120 };
0121
0122 &adsp_pas {
0123 status = "okay";
0124 firmware-name = "qcom/sdm845/beryllium/adsp.mbn";
0125 };
0126
0127 &apps_rsc {
0128 pm8998-rpmh-regulators {
0129 compatible = "qcom,pm8998-rpmh-regulators";
0130 qcom,pmic-id = "a";
0131
0132 vreg_l1a_0p875: ldo1 {
0133 regulator-min-microvolt = <880000>;
0134 regulator-max-microvolt = <880000>;
0135 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0136 };
0137
0138 vreg_l5a_0p8: ldo5 {
0139 regulator-min-microvolt = <800000>;
0140 regulator-max-microvolt = <800000>;
0141 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0142 };
0143
0144 vreg_l7a_1p8: ldo7 {
0145 regulator-min-microvolt = <1800000>;
0146 regulator-max-microvolt = <1800000>;
0147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0148 };
0149
0150 vreg_l12a_1p8: ldo12 {
0151 regulator-min-microvolt = <1800000>;
0152 regulator-max-microvolt = <1800000>;
0153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0154 };
0155
0156 vreg_l13a_2p95: ldo13 {
0157 regulator-min-microvolt = <1800000>;
0158 regulator-max-microvolt = <2960000>;
0159 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0160 };
0161
0162 vreg_l14a_1p8: ldo14 {
0163 regulator-min-microvolt = <1800000>;
0164 regulator-max-microvolt = <1800000>;
0165 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0166 regulator-boot-on;
0167 regulator-always-on;
0168 };
0169
0170 vreg_l17a_1p3: ldo17 {
0171 regulator-min-microvolt = <1304000>;
0172 regulator-max-microvolt = <1304000>;
0173 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0174 };
0175
0176 vreg_l20a_2p95: ldo20 {
0177 regulator-min-microvolt = <2960000>;
0178 regulator-max-microvolt = <2968000>;
0179 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0180 };
0181
0182 vreg_l21a_2p95: ldo21 {
0183 regulator-min-microvolt = <2960000>;
0184 regulator-max-microvolt = <2968000>;
0185 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0186 };
0187
0188 vreg_l23a_3p3: ldo23 {
0189 regulator-min-microvolt = <3300000>;
0190 regulator-max-microvolt = <3312000>;
0191 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0192 };
0193
0194 vreg_l24a_3p075: ldo24 {
0195 regulator-min-microvolt = <3088000>;
0196 regulator-max-microvolt = <3088000>;
0197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0198 };
0199
0200 vreg_l25a_3p3: ldo25 {
0201 regulator-min-microvolt = <3300000>;
0202 regulator-max-microvolt = <3312000>;
0203 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0204 };
0205
0206 vreg_l26a_1p2: ldo26 {
0207 regulator-min-microvolt = <1200000>;
0208 regulator-max-microvolt = <1200000>;
0209 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0210 regulator-boot-on;
0211 };
0212 };
0213 };
0214
0215 &cdsp_pas {
0216 status = "okay";
0217 firmware-name = "qcom/sdm845/beryllium/cdsp.mbn";
0218 };
0219
0220 &dsi0 {
0221 status = "okay";
0222 vdda-supply = <&vreg_l26a_1p2>;
0223
0224 panel@0 {
0225 compatible = "tianma,fhd-video";
0226 reg = <0>;
0227 vddio-supply = <&vreg_l14a_1p8>;
0228 vddpos-supply = <&lab>;
0229 vddneg-supply = <&ibb>;
0230
0231 #address-cells = <1>;
0232 #size-cells = <0>;
0233
0234 backlight = <&pmi8998_wled>;
0235 reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
0236
0237 port {
0238 tianma_nt36672a_in_0: endpoint {
0239 remote-endpoint = <&dsi0_out>;
0240 };
0241 };
0242 };
0243 };
0244
0245 &dsi0_out {
0246 remote-endpoint = <&tianma_nt36672a_in_0>;
0247 data-lanes = <0 1 2 3>;
0248 };
0249
0250 &dsi0_phy {
0251 status = "okay";
0252 vdds-supply = <&vreg_l1a_0p875>;
0253 };
0254
0255 &gcc {
0256 protected-clocks = <GCC_QSPI_CORE_CLK>,
0257 <GCC_QSPI_CORE_CLK_SRC>,
0258 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
0259 <GCC_LPASS_Q6_AXI_CLK>,
0260 <GCC_LPASS_SWAY_CLK>;
0261 };
0262
0263 &gmu {
0264 status = "okay";
0265 };
0266
0267 &gpu {
0268 status = "okay";
0269
0270 zap-shader {
0271 memory-region = <&gpu_mem>;
0272 firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn";
0273 };
0274 };
0275
0276 &ibb {
0277 regulator-min-microvolt = <4600000>;
0278 regulator-max-microvolt = <6000000>;
0279 regulator-over-current-protection;
0280 regulator-pull-down;
0281 regulator-soft-start;
0282 qcom,discharge-resistor-kohms = <300>;
0283 };
0284
0285 &lab {
0286 regulator-min-microvolt = <4600000>;
0287 regulator-max-microvolt = <6000000>;
0288 regulator-over-current-protection;
0289 regulator-pull-down;
0290 regulator-soft-start;
0291 };
0292
0293 &mdss {
0294 status = "okay";
0295 };
0296
0297 &mss_pil {
0298 status = "okay";
0299 firmware-name = "qcom/sdm845/beryllium/mba.mbn", "qcom/sdm845/beryllium/modem.mbn";
0300 };
0301
0302 &ipa {
0303 status = "okay";
0304 memory-region = <&ipa_fw_mem>;
0305 firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn";
0306 };
0307
0308 &pm8998_gpio {
0309 vol_up_pin_a: vol-up-active-state {
0310 pins = "gpio6";
0311 function = "normal";
0312 input-enable;
0313 bias-pull-up;
0314 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
0315 };
0316 };
0317
0318 &pmi8998_wled {
0319 status = "okay";
0320 qcom,current-boost-limit = <970>;
0321 qcom,ovp-millivolt = <29600>;
0322 qcom,current-limit-microamp = <20000>;
0323 qcom,num-strings = <2>;
0324 qcom,switching-freq = <600>;
0325 qcom,external-pfet;
0326 qcom,cabc;
0327 };
0328
0329 &pm8998_pon {
0330 resin {
0331 compatible = "qcom,pm8941-resin";
0332 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
0333 debounce = <15625>;
0334 bias-pull-up;
0335 linux,code = <KEY_VOLUMEDOWN>;
0336 };
0337 };
0338
0339 /* QUAT I2S Uses 1 I2S SD Line for audio on TAS2559/60 amplifiers */
0340 &q6afedai {
0341 qi2s@22 {
0342 reg = <QUATERNARY_MI2S_RX>;
0343 qcom,sd-lines = <0>;
0344 };
0345 };
0346
0347 &q6asmdai {
0348 dai@0 {
0349 reg = <0>;
0350 };
0351
0352 dai@1 {
0353 reg = <1>;
0354 };
0355
0356 dai@2 {
0357 reg = <2>;
0358 };
0359 };
0360
0361 &qupv3_id_0 {
0362 status = "okay";
0363 };
0364
0365 &sdhc_2 {
0366 status = "okay";
0367
0368 pinctrl-names = "default";
0369 pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
0370
0371 vmmc-supply = <&vreg_l21a_2p95>;
0372 vqmmc-supply = <&vreg_l13a_2p95>;
0373
0374 bus-width = <4>;
0375 cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>;
0376 };
0377
0378 &sound {
0379 compatible = "qcom,db845c-sndcard";
0380 pinctrl-0 = <&quat_mi2s_active
0381 &quat_mi2s_sd0_active>;
0382 pinctrl-names = "default";
0383 model = "Xiaomi Poco F1";
0384 audio-routing =
0385 "RX_BIAS", "MCLK",
0386 "AMIC1", "MIC BIAS1",
0387 "AMIC2", "MIC BIAS2",
0388 "AMIC3", "MIC BIAS3";
0389
0390 mm1-dai-link {
0391 link-name = "MultiMedia1";
0392 cpu {
0393 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
0394 };
0395 };
0396
0397 mm2-dai-link {
0398 link-name = "MultiMedia2";
0399 cpu {
0400 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
0401 };
0402 };
0403
0404 mm3-dai-link {
0405 link-name = "MultiMedia3";
0406 cpu {
0407 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
0408 };
0409 };
0410
0411 slim-dai-link {
0412 link-name = "SLIM Playback";
0413 cpu {
0414 sound-dai = <&q6afedai SLIMBUS_0_RX>;
0415 };
0416
0417 platform {
0418 sound-dai = <&q6routing>;
0419 };
0420
0421 codec {
0422 sound-dai = <&wcd9340 0>;
0423 };
0424 };
0425
0426 slimcap-dai-link {
0427 link-name = "SLIM Capture";
0428 cpu {
0429 sound-dai = <&q6afedai SLIMBUS_0_TX>;
0430 };
0431
0432 platform {
0433 sound-dai = <&q6routing>;
0434 };
0435
0436 codec {
0437 sound-dai = <&wcd9340 1>;
0438 };
0439 };
0440 };
0441
0442 &tlmm {
0443 gpio-reserved-ranges = <0 4>, <81 4>;
0444
0445 sdc2_default_state: sdc2-default {
0446 clk {
0447 pins = "sdc2_clk";
0448 bias-disable;
0449 drive-strength = <16>;
0450 };
0451
0452 cmd {
0453 pins = "sdc2_cmd";
0454 bias-pull-up;
0455 drive-strength = <10>;
0456 };
0457
0458 data {
0459 pins = "sdc2_data";
0460 bias-pull-up;
0461 drive-strength = <10>;
0462 };
0463 };
0464
0465 sdc2_card_det_n: sd-card-det-n {
0466 pins = "gpio126";
0467 function = "gpio";
0468 bias-pull-up;
0469 };
0470
0471 wcd_intr_default: wcd_intr_default {
0472 pins = <54>;
0473 function = "gpio";
0474
0475 input-enable;
0476 bias-pull-down;
0477 drive-strength = <2>;
0478 };
0479 };
0480
0481 &uart6 {
0482 status = "okay";
0483
0484 bluetooth {
0485 compatible = "qcom,wcn3990-bt";
0486
0487 vddio-supply = <&vreg_s4a_1p8>;
0488 vddxo-supply = <&vreg_l7a_1p8>;
0489 vddrf-supply = <&vreg_l17a_1p3>;
0490 vddch0-supply = <&vreg_l25a_3p3>;
0491 max-speed = <3200000>;
0492 };
0493 };
0494
0495 &ufs_mem_hc {
0496 status = "okay";
0497
0498 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
0499
0500 vcc-supply = <&vreg_l20a_2p95>;
0501 vcc-max-microamp = <800000>;
0502 };
0503
0504 &ufs_mem_phy {
0505 status = "okay";
0506
0507 vdda-phy-supply = <&vreg_l1a_0p875>;
0508 vdda-pll-supply = <&vreg_l26a_1p2>;
0509 };
0510
0511 &usb_1 {
0512 status = "okay";
0513 };
0514
0515 &usb_1_dwc3 {
0516 dr_mode = "peripheral";
0517 };
0518
0519 &usb_1_hsphy {
0520 status = "okay";
0521
0522 vdd-supply = <&vreg_l1a_0p875>;
0523 vdda-pll-supply = <&vreg_l12a_1p8>;
0524 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
0525
0526 qcom,imp-res-offset-value = <8>;
0527 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
0528 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
0529 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
0530 };
0531
0532 &usb_1_qmpphy {
0533 status = "okay";
0534
0535 vdda-phy-supply = <&vreg_l26a_1p2>;
0536 vdda-pll-supply = <&vreg_l1a_0p875>;
0537 };
0538
0539 &venus {
0540 status = "okay";
0541 firmware-name = "qcom/sdm845/beryllium/venus.mbn";
0542 };
0543
0544 &wcd9340{
0545 pinctrl-0 = <&wcd_intr_default>;
0546 pinctrl-names = "default";
0547 clock-names = "extclk";
0548 clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
0549 reset-gpios = <&tlmm 64 0>;
0550 vdd-buck-supply = <&vreg_s4a_1p8>;
0551 vdd-buck-sido-supply = <&vreg_s4a_1p8>;
0552 vdd-tx-supply = <&vreg_s4a_1p8>;
0553 vdd-rx-supply = <&vreg_s4a_1p8>;
0554 vdd-io-supply = <&vreg_s4a_1p8>;
0555 qcom,micbias1-microvolt = <2700000>;
0556 qcom,micbias2-microvolt = <1800000>;
0557 qcom,micbias3-microvolt = <2700000>;
0558 qcom,micbias4-microvolt = <2700000>;
0559 };
0560
0561 &wifi {
0562 status = "okay";
0563
0564 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
0565 vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
0566 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
0567 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
0568 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
0569 };
0570
0571 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
0572
0573 &qup_uart6_default {
0574 pinmux {
0575 pins = "gpio45", "gpio46", "gpio47", "gpio48";
0576 function = "qup6";
0577 };
0578
0579 cts {
0580 pins = "gpio45";
0581 bias-disable;
0582 };
0583
0584 rts-tx {
0585 pins = "gpio46", "gpio47";
0586 drive-strength = <2>;
0587 bias-disable;
0588 };
0589
0590 rx {
0591 pins = "gpio48";
0592 bias-pull-up;
0593 };
0594 };