Subject: [PATCH 2/9] regulator: helper routine to extract regulator_init_data

From: [email-masked] (Cousson, Benoit)
Date: Fri, 30 Sep 2011 13:35:40 +0200

On 9/30/2011 1:09 PM, Nayak, Rajendra wrote:
> On Friday 30 September 2011 04:18 PM, Mark Brown wrote:
>> On Fri, Sep 30, 2011 at 11:28:49AM +0100, Mark Brown wrote:
>>> On Fri, Sep 30, 2011 at 09:57:30AM +0530, Rajendra Nayak wrote:
>>
>>>>>> +  init_data->supply_regulator = (char *)of_get_property(dev->of_node,
>>>>>> +                                          "regulator-supplies", NULL);
>>
>>>> Mark, I still seem to be a little confused with this one as to why
>>>> we would need a phandle *and* a supply-name to reference a parent
>>>> regulator/supply.
>>>> The phandle would point to a regulator dt node and that node internally
>>>> would have just one name associated with it.
>>
>>> To repeat: the supply name is for the consumer.  It is needed so that
>>> the consumer can tell which supply is provided by which regulator.
>>> Almost all devices have more than one supply and if the device does
>>> anything more complicated than just turning on all the supplies when the
>>> device is active it's going to need to figure out which supply is which.
>>
>> Hang on, I now have no idea what this is supposed to be doing.  Later on
>> in the series you had examples in your commit logs with perfectly
>> sensible bindings for supplies:
>>
>>                   vmmc-supply =<&regulator1>;
>>                   vpll-supply =<&regulator1>;
>>
>> which have both a unique name and a direct reference to the supplying
>> regulator.  What are these "regulator-supplies" properties supposed to
>> be?
>
> :-), yes, I was confused for a while as well after reading your response.
>
> The "regulator-supplies" is used to specific the regulator *parent*.
> Same as what was earlier passed by using the
> "supply_regulator" field of regulator_init_data structure.
> Grant wanted the bindings to support specifying multiple parents
> and hence I was thinking of either a list of names *or*
> a list of phandles to specify multiple parents to a regulator.

I'm confused too now :-)

You can not have multiple to one kind of connection from a power supply 
to a single power rail of an IP (vmmc, vpll...).
So I do not see the need for more any other binding that the one you did:
	vmmc-supply = <&regulator1>;

That kind of binding does not really exist in the real world:

	vmmc-supply = <&regulator1 &regulator2>;

At least not without a power switch in between.

Regards,
Benoit