From aa625017ef6d9c3c5cf2a11a642f7f2beb50d0da Mon Sep 17 00:00:00 2001 From: Ram Prakash Gupta Date: Thu, 21 Jan 2021 13:02:56 +0530 Subject: [PATCH] ARM: dts: msm: Vote vccq2 via vccq to support GKI vccq2 is supplied by eLDO and this eLDO is controlled via L9B regulator which only supports max 1.2V but since for gki build QTI flag is disabled vote for vccq2 regulator is taking default values from driver and not from dt. Hence use vccq to vote on L9B to enable eLDO for UFS2.2 devices since L9B is common regulator as both vccq & vccq2. Change-Id: Icf8c9f169d693a6dad608c16baa9ed9666905430 --- qcom/yupik-atp.dtsi | 26 ++++++++++++++++---------- qcom/yupik-idp.dtsi | 26 ++++++++++++++++---------- qcom/yupik-qrd.dtsi | 26 ++++++++++++++++---------- 3 files changed, 48 insertions(+), 30 deletions(-) diff --git a/qcom/yupik-atp.dtsi b/qcom/yupik-atp.dtsi index 45631c00e0c6..cbac0b4584c9 100644 --- a/qcom/yupik-atp.dtsi +++ b/qcom/yupik-atp.dtsi @@ -70,20 +70,26 @@ vcc-low-voltage-sup; vcc-max-microamp = <800000>; + /* + * Yupik target supports both UFS2.2 & UFS3.1, here + * 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. and same L9B acts as vccq voltage for UFS3.1 + * devices. + * Here L9B can max support for 1.2V but UFS GKI driver code + * votes for 1.8V, which is leading to failure from pmic + * regulator. + * + * Now since vccq and control of eLDO are common that is L9B + * we can use vccq vote as control of eLDO for vccq2. + * Hence vccq entries shall be used for both type of UFS + * devices only. And vccq entries should not be changed/removed + * for any design alteration. + */ 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>; diff --git a/qcom/yupik-idp.dtsi b/qcom/yupik-idp.dtsi index 291879aeb65d..7b366fdab1b2 100644 --- a/qcom/yupik-idp.dtsi +++ b/qcom/yupik-idp.dtsi @@ -71,20 +71,26 @@ vcc-low-voltage-sup; vcc-max-microamp = <800000>; + /* + * Yupik target supports both UFS2.2 & UFS3.1, here + * 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. and same L9B acts as vccq voltage for UFS3.1 + * devices. + * Here L9B can max support for 1.2V but UFS GKI driver code + * votes for 1.8V, which is leading to failure from pmic + * regulator. + * + * Now since vccq and control of eLDO are common that is L9B + * we can use vccq vote as control of eLDO for vccq2. + * Hence vccq entries shall be used for both type of UFS + * devices only. And vccq entries should not be changed/removed + * for any design alteration. + */ 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>; diff --git a/qcom/yupik-qrd.dtsi b/qcom/yupik-qrd.dtsi index 4d6aedc0a0ca..d95343329818 100644 --- a/qcom/yupik-qrd.dtsi +++ b/qcom/yupik-qrd.dtsi @@ -72,20 +72,26 @@ vcc-low-voltage-sup; vcc-max-microamp = <800000>; + /* + * Yupik target supports both UFS2.2 & UFS3.1, here + * 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. and same L9B acts as vccq voltage for UFS3.1 + * devices. + * Here L9B can max support for 1.2V but UFS GKI driver code + * votes for 1.8V, which is leading to failure from pmic + * regulator. + * + * Now since vccq and control of eLDO are common that is L9B + * we can use vccq vote as control of eLDO for vccq2. + * Hence vccq entries shall be used for both type of UFS + * devices only. And vccq entries should not be changed/removed + * for any design alteration. + */ 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>;