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.
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.
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/