2013-03-01 06:42:42

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] regulator: palmas: use correct device node for DT parsing

On Wed, Feb 27, 2013 at 02:23:42PM +0000, Graeme Gregory wrote:
> On 27/02/13 14:10, Laxman Dewangan wrote:

> > When device is registered through the DT then regulators node
> > exist in the parent device node of regulator driver. Hence passing
> > parent device node for parsing DT in place of self-device node
> > which is typically NULL.

> > - struct device_node *node = pdev->dev.of_node;
> > + struct device_node *node = pdev->dev.parent->of_node;

> This is not correct, nor is the reasoning.

> I suspect your previous patch broke DT probing so your not getting nodes
> filled in.

So, the reason that this pattern has generally been followed is so that
the regulator core can do the equivalent of regulator_get(dev, supply)
to find the supplies. Using the parent device there is particularly
important in non-DT systems so that we can map the child regulator
supply in by using the dev_name() of the parent rather than the MFD
internal subdevice name but for pure DT systems where it's all just
direct links it's less of an issue.


Attachments:
(No filename) (1.02 kB)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-03-01 12:47:16

by Laxman Dewangan

[permalink] [raw]
Subject: Re: [PATCH] regulator: palmas: use correct device node for DT parsing

On Friday 01 March 2013 12:09 PM, Mark Brown wrote:
> * PGP Signed by an unknown key
>
> On Wed, Feb 27, 2013 at 02:23:42PM +0000, Graeme Gregory wrote:
>> On 27/02/13 14:10, Laxman Dewangan wrote:
>>> When device is registered through the DT then regulators node
>>> exist in the parent device node of regulator driver. Hence passing
>>> parent device node for parsing DT in place of self-device node
>>> which is typically NULL.
>>> - struct device_node *node = pdev->dev.of_node;
>>> + struct device_node *node = pdev->dev.parent->of_node;
>> This is not correct, nor is the reasoning.
>> I suspect your previous patch broke DT probing so your not getting nodes
>> filled in.
> So, the reason that this pattern has generally been followed is so that
> the regulator core can do the equivalent of regulator_get(dev, supply)
> to find the supplies. Using the parent device there is particularly
> important in non-DT systems so that we can map the child regulator
> supply in by using the dev_name() of the parent rather than the MFD
> internal subdevice name but for pure DT systems where it's all just
> direct links it's less of an issue.
>
>

If I make the dts file as
#gpio-cells = <2>;
gpio-controller;

palmas_pmic {
compatible = "ti,palmas-pmic";
ti,ldo6_vibrator = <0>;

regulators {
:::::::::::::
}
}


then regulator get registered properly.
And hence this patch is not require here.

2013-03-01 12:50:25

by Ian Lartey

[permalink] [raw]
Subject: Re: [PATCH] regulator: palmas: use correct device node for DT parsing

On 01/03/13 12:45, Laxman Dewangan wrote:
> On Friday 01 March 2013 12:09 PM, Mark Brown wrote:
>> * PGP Signed by an unknown key
>>
>> On Wed, Feb 27, 2013 at 02:23:42PM +0000, Graeme Gregory wrote:
>>> On 27/02/13 14:10, Laxman Dewangan wrote:
>>>> When device is registered through the DT then regulators node
>>>> exist in the parent device node of regulator driver. Hence passing
>>>> parent device node for parsing DT in place of self-device node
>>>> which is typically NULL.
>>>> - struct device_node *node = pdev->dev.of_node;
>>>> + struct device_node *node = pdev->dev.parent->of_node;
>>> This is not correct, nor is the reasoning.
>>> I suspect your previous patch broke DT probing so your not getting nodes
>>> filled in.
>> So, the reason that this pattern has generally been followed is so that
>> the regulator core can do the equivalent of regulator_get(dev, supply)
>> to find the supplies. Using the parent device there is particularly
>> important in non-DT systems so that we can map the child regulator
>> supply in by using the dev_name() of the parent rather than the MFD
>> internal subdevice name but for pure DT systems where it's all just
>> direct links it's less of an issue.
>>
>>
>
> If I make the dts file as
> #gpio-cells = <2>;
> gpio-controller;
>
> palmas_pmic {
> compatible = "ti,palmas-pmic";
> ti,ldo6_vibrator = <0>;
>
> regulators {
> :::::::::::::
> }
> }
>
>
> then regulator get registered properly.
> And hence this patch is not require here.
>

Yes that would do it.

> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/