[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <78e6233799f54428b6601896b8bd7b5c@quicinc.com>
Date: Fri, 4 Aug 2023 08:04:18 +0000
From: "Naveen Kumar Goud Arepalli (QUIC)" <quic_narepall@...cinc.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Andrew Halaney <ahalaney@...hat.com>
CC: "Nitin Rawat (QUIC)" <quic_nitirawa@...cinc.com>,
"agross@...nel.org" <agross@...nel.org>,
"andersson@...nel.org" <andersson@...nel.org>,
"konrad.dybcio@...aro.org" <konrad.dybcio@...aro.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
"krzysztof.kozlowski+dt@...aro.org"
<krzysztof.kozlowski+dt@...aro.org>,
"conor+dt@...nel.org" <conor+dt@...nel.org>,
"linux-arm-msm@...r.kernel.org" <linux-arm-msm@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH V1] arm64: dts: qcom: sa8775p-ride: Remove min and max
voltages for L8A
On 26/07/2023 14:32, Naveen Kumar Goud Arepalli (QUIC) wrote:
> On Tue, Jul 25, 2023 at 03:30:07PM +0530, Naveen Kumar Goud Arepalli wrote:
>> L8A is the supply for UFS VCC, UFS specification allows different VCC
>> configurations for UFS devices.
>> -UFS 2.x devices: 2.70V - 3.60V
>> -UFS 3.x devices: 2.40V - 2.70V
>>
>> As sa8775p-ride supports both ufs 2.x and ufs 3.x devices, remove
>> min/max voltages for L8A regulator. Initial voltage of L8A will be
>> set to 2.504v or 2.952v during PON depending on the UFS device type.
>> On sa8775, UFS is the only client in Linux for L8A and this regulator
>> will be voted only for enabling/disabling.
>>
>> Signed-off-by: Naveen Kumar Goud Arepalli <quic_narepall@...cinc.com>
>> ---
>> arch/arm64/boot/dts/qcom/sa8775p-ride.dts | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dts
>> b/arch/arm64/boot/dts/qcom/sa8775p-ride.dts
>> index ed76680410b4..6f3891a09e59 100644
>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dts
>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dts
>> @@ -98,8 +98,6 @@
>>
>> vreg_l8a: ldo8 {
>> regulator-name = "vreg_l8a";
>> - regulator-min-microvolt = <2504000>;
>> - regulator-max-microvolt = <3300000>;
>> regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> regulator-allow-set-load;
>> regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
>> --
>> 2.17.1
>>
>
> Reviewing with very little expertise in the area....
> A few questions below that would help me understand this a bit better.
>
> Does it make sense to *not* set the range of the regulator at all?:
>>>> Yes, we are removing the range of the regulator.
>
> 1. A board dts knows its UFS device
> 2. Is UFS backwards compatible with respect to UFS2/UFS3?
> I don't know how the version is determined, but if it's a
> "start at UFS2, go to UFS3" should it be scaled as that goes?
> >>>> For a UFS device 3.x, we cannot start as UFS 2.0. vcc has to be as per UFS 3.x recommendations.
>
> Relying on the bootloader to set up the device before the kernel
> starts seems like a direction that should be actively avoided instead
> of depended on in my opinion.
I have trouble finding which part is your reply and which is quote of Andrew. Please reconfigure your mail client.
>>>>> As per upstream UFS driver, voltage voting is not there and we vote only for enable/disable .
> Since UFS is the only client in Linux for this rail (L8A ), we don't
> need min and max range to support UFS 2.x and 3.x cards.
I would assume some reasonable range is always desired. Why it cannot be the wider range from both? 2.4 - 3.6?
Wider range cannot be mentioned in DT, For UFS 2.x range is 2.7 V to 3.6 V and for UFS 3.x range is 2.4V to 2.7V.
Giving the wider range will not set the correct voltage.
For example:
If the range is mentioned as 2.4V to 3.6V in DT and we have connected UFS 2.x device, Since UFS driver is voting only for
regulator_enable(voltage is not being set) the voltage will be 2.4V(min voltage) from pmic driver which is wrong voltage for
UFS 2.x devices, which is violation of spec.
Regards
Naveen
Powered by blists - more mailing lists