diff --git a/qcom/yupik-atp.dtsi b/qcom/yupik-atp.dtsi index 22b41f6b4b60..9678e7ce7b0a 100644 --- a/qcom/yupik-atp.dtsi +++ b/qcom/yupik-atp.dtsi @@ -49,6 +49,46 @@ }; }; +&ufsphy_mem { + compatible = "qcom,ufs-phy-qmp-v4-yupik"; + + vdda-phy-supply = <&L10C>; + vdda-pll-supply = <&L6B>; + vdda-phy-max-microamp = <97500>; + vdda-pll-max-microamp = <18400>; + + status = "ok"; +}; + +&ufshc_mem { + vdd-hba-supply = <&gcc_ufs_phy_gdsc>; + vdd-hba-fixed-regulator; + + vcc-supply = <&L7B>; + vcc-voltage-level = <2504000 2952000>; + vcc-low-voltage-sup; + vcc-max-microamp = <800000>; + + vccq-supply = <&L9B>; + vccq-max-microamp = <900000>; + vccq-min-microamp = <10000>; + + /* + * Vccq2 voltage level should be 1.8V but in case of yupik + * vccq2 is supplied via eLDO, and that is controlled via + * L9B which supports a max voltage of 1.2V, but eLDO would + * supply 1.8V. + */ + vccq2-supply = <&L9B>; + vccq2-voltage-level = <1200000 1200000>; + vccq2-max-microamp = <800000>; + + qcom,vddp-ref-clk-supply = <&L9B>; + qcom,vddp-ref-clk-max-microamp = <100>; + + status = "ok"; +}; + &pmk8350_vadc { pm8350b_ref_gnd { reg = ; diff --git a/qcom/yupik-idp.dtsi b/qcom/yupik-idp.dtsi index ba10bba6ac2c..8fa1b341d6dd 100644 --- a/qcom/yupik-idp.dtsi +++ b/qcom/yupik-idp.dtsi @@ -50,6 +50,46 @@ }; }; +&ufsphy_mem { + compatible = "qcom,ufs-phy-qmp-v4-yupik"; + + vdda-phy-supply = <&L10C>; + vdda-pll-supply = <&L6B>; + vdda-phy-max-microamp = <97500>; + vdda-pll-max-microamp = <18400>; + + status = "ok"; +}; + +&ufshc_mem { + vdd-hba-supply = <&gcc_ufs_phy_gdsc>; + vdd-hba-fixed-regulator; + + vcc-supply = <&L7B>; + vcc-voltage-level = <2504000 2952000>; + vcc-low-voltage-sup; + vcc-max-microamp = <800000>; + + vccq-supply = <&L9B>; + vccq-max-microamp = <900000>; + vccq-min-microamp = <10000>; + + /* + * Vccq2 voltage level should be 1.8V but in case of yupik + * vccq2 is supplied via eLDO, and that is controlled via + * L9B which supports a max voltage of 1.2V, but eLDO would + * supply 1.8V. + */ + vccq2-supply = <&L9B>; + vccq2-voltage-level = <1200000 1200000>; + vccq2-max-microamp = <800000>; + + qcom,vddp-ref-clk-supply = <&L9B>; + qcom,vddp-ref-clk-max-microamp = <100>; + + status = "ok"; +}; + &pmk8350_vadc { pm7325b_ref_gnd { reg = ; diff --git a/qcom/yupik-qrd.dtsi b/qcom/yupik-qrd.dtsi index ff6886b8f7a3..6ef06157b5ad 100644 --- a/qcom/yupik-qrd.dtsi +++ b/qcom/yupik-qrd.dtsi @@ -50,6 +50,46 @@ }; }; +&ufsphy_mem { + compatible = "qcom,ufs-phy-qmp-v4-yupik"; + + vdda-phy-supply = <&L10C>; + vdda-pll-supply = <&L6B>; + vdda-phy-max-microamp = <97500>; + vdda-pll-max-microamp = <18400>; + + status = "ok"; +}; + +&ufshc_mem { + vdd-hba-supply = <&gcc_ufs_phy_gdsc>; + vdd-hba-fixed-regulator; + + vcc-supply = <&L7B>; + vcc-voltage-level = <2504000 2952000>; + vcc-low-voltage-sup; + vcc-max-microamp = <800000>; + + vccq-supply = <&L9B>; + vccq-max-microamp = <900000>; + vccq-min-microamp = <10000>; + + /* + * Vccq2 voltage level should be 1.8V but in case of yupik + * vccq2 is supplied via eLDO, and that is controlled via + * L9B which supports a max voltage of 1.2V, but eLDO would + * supply 1.8V. + */ + vccq2-supply = <&L9B>; + vccq2-voltage-level = <1200000 1200000>; + vccq2-max-microamp = <800000>; + + qcom,vddp-ref-clk-supply = <&L9B>; + qcom,vddp-ref-clk-max-microamp = <100>; + + status = "ok"; +}; + &pmk8350_vadc { pm8350b_ref_gnd { reg = ; diff --git a/qcom/yupik.dtsi b/qcom/yupik.dtsi index ba2f30811dfe..20d2a57f6d2f 100644 --- a/qcom/yupik.dtsi +++ b/qcom/yupik.dtsi @@ -1203,6 +1203,10 @@ <0 0>, <0 0>; + interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>, + <&gem_noc MASTER_APPSS_PROC &cnoc2 SLAVE_UFS_MEM_CFG>; + interconnect-names = "ufs-ddr", "cpu-ufs"; + qcom,ufs-bus-bw,name = "ufshc_mem"; qcom,ufs-bus-bw,num-cases = <26>; qcom,ufs-bus-bw,num-paths = <2>; @@ -1263,21 +1267,30 @@ resets = <&gcc GCC_UFS_PHY_BCR>; reset-names = "rst"; + iommus = <&apps_smmu 0x80 0x0>; + qcom,iommu-dma = "fastmap"; dma-coherent; rpm-level = <3>; + /* + * UFS2.2 is drawing 40mA current during APPS PC. + * Issue is seen only if PX10 is turned off and Vccq2 is ON. + * Since Vccq2 is always-on supply we can't turn it off, + * so don't turn off PX10, by updating spm_lvl to 3. + * In sleep state (spm-lvl=3) its drawing only .5mA. + */ spm-level = <3>; status = "disabled"; qos0 { mask = <0xf0>; - vote = <59>; + vote = <65>; }; qos1 { mask = <0x0f>; - vote = <65>; + vote = <59>; }; };