Re: [PATCH V3 2/2] pinctrl: tegra: Add driver to configure voltage and power of io pads

From: Laxman Dewangan
Date: Wed Nov 23 2016 - 07:00:20 EST

On Tuesday 22 November 2016 06:28 PM, Linus Walleij wrote:
On Tue, Nov 22, 2016 at 11:20 AM, Laxman Dewangan <ldewangan@xxxxxxxxxx> wrote:

+ rinfo->regulator = devm_regulator_get_optional(dev,
+ soc_data->cfg[i].vsupply);
Please just use devm_regulator_get().

As has been discussed at lenth elsewhere "optional" in regulator_get_optional
does *not* mean "software optional", it means "hardware optional".

Such as a terminal that may have a voltage connected or not be
connected to anything at all.

If the system does not define a regulator you will anyway get a
dummy regulator.

The issue with dummy regulator is that the other regulator APIs with dummy regulator fails.
Once we get the dummy regulator, there is no way to know whether the returned regulator is actual or dummy and when calling the regulator_get_voltage() it failed.

[ 2.917176] pinctrl-t210-io-pad.0 supply vddio-audio-hv not found, using dummy regulator
[ 2.925510] pinctrl-tegra-io-pad pinctrl-t210-io-pad.0: Failed to get voltage for rail vddio-aud2

Here, we need the regulator handle which can support the other regulator APIs.

In some of platforms, we do not use some of the io-pins and on this case, we do not connect the IO rail supply for these pins. So this is like a hardware optional.

If the IO pins are used then it need to have the proper regulator handle.
Missing regulator handle on DT will be like that IO pads are not used.