Back to home page

OSCL-LXR

 
 

    


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 };