On Fri, Nov 13, 2020 at 06:55:27PM +0300, Dmitry Osipenko wrote:
13.11.2020 17:29, Mark Brown пишет:
quoted
It's not clear if it matters - it's more a policy decision on the part
of the driver about what it thinks safe error handling is. If it's not
If regulator_get() returns a dummy regulator, then this means that
regulator isn't specified in a device-tree. But then the only way for a
consumer driver to check whether regulator is dummy, is to check
presence of the supply property in a device-tree.
My point here is that the driver shouldn't be checking for a dummy
regulator, the driver should be checking the features that are provided
to it by the regulator and handling those. It doesn't matter if this is
a dummy regulator or an actual regulator with limited features, the
effect is the same and the handling should be the same. If the driver
is doing anything to handle dummy regulators explicitly as dummy
regulators it is doing it wrong.
We want to emit error messages when something goes wrong, for example
when regulator voltage fails to change. It's fine that voltage changes
are failing for a dummy regulator, but then consumer driver shouldn't
recognize it as a error condition.
If you're fine with that you should also be fine with any other
regulator for which you failed to enumerate any voltages which you can
set.
The regulator_get_optional() provides a more consistent and
straightforward way for consumer drivers to check presence of a physical
voltage regulator in comparison to dealing with a regulator_get(). The
dummy regulator is nice to use when there is no need to change
regulator's voltage, which doesn't work for a dummy regulator.
To repeat you should *only* be using regulator_get_optional() in the
case where the supply may be physically absent which is not the case
here.