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