RE: [PATCH V1] arm64: dts: qcom: sa8775p-ride: Remove min and max voltages for L8A

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>
>> ---
>>  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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux