Re: [PATCH 1/2] regulator: add QCOM RPMh regulator driver

From: David Collins
Date: Tue Apr 24 2018 - 16:46:32 EST

On 04/24/2018 10:41 AM, Mark Brown wrote:
> On Fri, Apr 20, 2018 at 12:28:21PM -0700, David Collins wrote:

>> RPMh hardware enforces the requested minimum headroom voltage for all
>> regulators with a parent. It has full knowledge of the parent-child
>> connections of regulators on the board (as programmed by the bootloader).
>> It automatically reconfigures the parent voltage when needed as a result
>> of requests changing the voltage of any of its child regulators.
> If the hardware has full knowledge of all these constraints and enforces
> them transparently then why does the kernel care that it's doing that?
> Doesn't it defeat the point of it doing all this stuff if we have to
> know about it?

The RPMh hardware is aware of the parent-child connections between
regulators as well as minimum headroom to ensure stable LDO voltage output
for subregulated LDOs. The intention of having the headroom be a
configurable property for processors is to support usecases in which
subregulated LDO loads are particularly sensitive to noise and require
additional headroom. Such usecases are board dependent and beyond the
baseline configurations set in RPMh hardware.

>>> Ideally future versions of the RPM will have improved interfaces,
>>> there's a bunch of problems like this :(
>> Do you have a preference for qcom,regulator-initial-microvolt vs a generic
>> framework supported regulator-initial-microvolt property for configuring a
>> specific voltage at registration time? We'll need to have support for one
>> or the other in order for the qcom_rpmh-regulator driver to be functional.
> This is basically specific to Qualcomm, I can't off hand think of any
> other devices with similar issues.

I will go with qcom,regulator-initial-microvolt then.

>>> Yes, constraints that specify a single voltage are done by setting min
>>> and max to the same value. fixed_uV is *only* for regulators that have
>>> a physically fixed voltage.
>> XOB managed regulators physically cannot change voltage. Therefore, do
>> you agree that it is reasonable to use fixed_uV for them? Note that I
>> removed init_data->constraints.apply_uV manipulation in version 2 of this
>> patch.
> If these regulators can't change voltage then surely we know what
> voltage they have without needing it to be specified in DT?

In the case of XOB managed LDO regulators, the LDOs physically can be
configured to different voltages by the bootloader. However, the RPMh
interface provides no mechanism for the application processor to read or
change that voltage. Therefore, we need a way to specify such voltages in
a board specific (as opposed to driver specific) manner (i.e. device tree).

Take care,

The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project