RE: [PATCH v2 2/4] scsi: ufs: Update VCCQ2 and VCCQ min/max voltage hard codes

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

 



> 
> On 2019-11-18 15:15, Avri Altman wrote:
> >>
> >> From: Can Guo <cang@xxxxxxxxxxxxxx>
> >>
> >> Per UFS 3.0 JEDEC standard, the VCCQ2 min voltage is 1.7v and the
> >> VCCQ voltage range is 1.14v ~ 1.26v. Update their hard codes
> >> accordingly to make sure they work in a safe range compliant for ver
> >> 1.0/2.0/2.1/3.0 UFS devices.
> > So to keep it safe, we need to use largest range:
> > min_uV = min over all spec ranges, and max_uV = max over all spec
> > ranges.
> > Meaning leave it as it is if we want to be backward compatible with
> > UFS1.0.
> >
> > Thanks,
> > Avri
> >
> 
> Hi Avri,
> 
> Sorry I don't quite follow you here.
> Leaving it as it is means for UFS2.1 devices, when boot up, if we call
> regulator_set_voltage(1.65, 1.95) to setup its VCCQ2,
> regulator_set_voltage() will
> give you 1.65v on VCCQ2 if the voltage level of this regulator is wider, say (1.60,
> 1.95).
> Meaning you will finally set 1.65v to VCCQ2. But 1.65v is out of spec for UFS
> v2.1 as it requires min voltage to be 1.7v on VCCQ2. So, the smallest range is
> safe.
> Of course, in real board design, the regulator's voltage level is limited/designed
> by power team to be in a safe range, say (1.8, 1.92), so that calling
> regulator_set_voltage(1.65, 1.95) still gives you 1.8v. But it does not mean the
> current hard codes are compliant for all UFS devices.
You are correct - the narrowest the range the better - as long as you don't cross the limits of previous spec.
So changing 1.1 -> 1.14  and 1.65 -> 1.7 is fine.
While at it, Vccq max in UFS3.0 is 1.26, why not change 1.3 -> 1.26, like you indicated in your commit log?

Thanks,
Avri

> 
> Best Regards,
> Can Guo.
> 
> >>
> >> Signed-off-by: Can Guo <cang@xxxxxxxxxxxxxx>
> >> ---
> >>  drivers/scsi/ufs/ufs.h | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h index
> >> 385bac8..9df4f4d
> >> 100644
> >> --- a/drivers/scsi/ufs/ufs.h
> >> +++ b/drivers/scsi/ufs/ufs.h
> >> @@ -500,9 +500,9 @@ struct ufs_query_res {
> >>  #define UFS_VREG_VCC_MAX_UV       3600000 /* uV */
> >>  #define UFS_VREG_VCC_1P8_MIN_UV    1700000 /* uV */
> >>  #define UFS_VREG_VCC_1P8_MAX_UV    1950000 /* uV */
> >> -#define UFS_VREG_VCCQ_MIN_UV      1100000 /* uV */
> >> +#define UFS_VREG_VCCQ_MIN_UV      1140000 /* uV */
> >>  #define UFS_VREG_VCCQ_MAX_UV      1300000 /* uV */
> >> -#define UFS_VREG_VCCQ2_MIN_UV     1650000 /* uV */
> >> +#define UFS_VREG_VCCQ2_MIN_UV     1700000 /* uV */
> >>  #define UFS_VREG_VCCQ2_MAX_UV     1950000 /* uV */
> >>
> >>  /*
> >> --
> >> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
> >> Forum, a Linux Foundation Collaborative Project




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux