Adding DT & regulator maintainers. FTR, we are discussing the revert of patch 60f0187031c0 in the UFSHC driver. On 09/02/2019 09:42, Alim Akhtar wrote: > On 08/02/19 8:29 PM, Jeffrey Hugo wrote: > >> The evidence seems simple. We have properly described in DT all the >> regulators that are consumed by the UFS host controller, and by >> extension, the UFS storage chip as well. >> >> By default, with no kernel changes, UFS does not work. >> >> Marc and I debugged the issue, and found that the VCCQ regulator was not >> being handled properly, and reverting the change we are discussing fixes >> the VCCQ regulator issue, and, as a result, UFS works. > > OK, fair, before we revert this patch, Marc can you try below patch, > or let me know if you have already tried this and share your > result/observation: > > --- a/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi > +++ b/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi > @@ -212,6 +212,7 @@ > vreg_l26a_1p2: l26 { > regulator-min-microvolt = <1200000>; > regulator-max-microvolt = <1200000>; > + regulator-always-on; This property will make _regulator_disable() be (mostly) a NOP for vreg_l26a_1p2. So the UFSHC driver will not be able to disable vccq, and UFS will work. I tested something similar by making regulator_disable() a NOP which returns immediately. That's actually how I found the issue in the UFSHC driver ;-) But this is not a proper solution. This makes it impossible to disable l26, even when there is no UFS driver, or when the UFSHC goes into sleep mode. >> Our analysis is that VCCQ is required and 60f0187031c05e >> prevents the proper configuration of VCCQ, thus a required >> resource (VCCQ) is not in the proper state. > > Not in proper state or vccq regulator is disabled? The improper state is being disabled, instead of enabled. Regards.