Re: [PATCH v7 1/5] leds: populate the device's of_node when possible

From: Jacek Anaszewski
Date: Wed Oct 02 2019 - 15:47:27 EST


Hi Jean,

On 10/2/19 3:58 PM, Jean-Jacques Hiblot wrote:
> Hi Jacek,
>
> On 24/09/2019 23:03, Jacek Anaszewski wrote:
>> Hi Jean,
>>
>> Thank you for rebasing the set
>>
>> On 9/18/19 4:57 PM, Jean-Jacques Hiblot wrote:
>>> If initialization data is available and its fwnode is actually a
>>> of_node,
>>> store this information in the led device's structure. This will allow
>>> the
>>> device to use or provide OF-based API such (devm_xxx).
>>>
>>> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@xxxxxx>
>>> ---
>>> Â drivers/leds/led-class.c | 5 ++++-
>>> Â 1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
>>> index 647b1263c579..c2167b66b61f 100644
>>> --- a/drivers/leds/led-class.c
>>> +++ b/drivers/leds/led-class.c
>>> @@ -276,8 +276,11 @@ int led_classdev_register_ext(struct device
>>> *parent,
>>> ÂÂÂÂÂÂÂÂÂ mutex_unlock(&led_cdev->led_access);
>>> ÂÂÂÂÂÂÂÂÂ return PTR_ERR(led_cdev->dev);
>>> ÂÂÂÂÂ }
>>> -ÂÂÂ if (init_data && init_data->fwnode)
>>> +ÂÂÂ if (init_data && init_data->fwnode) {
>>> ÂÂÂÂÂÂÂÂÂ led_cdev->dev->fwnode = init_data->fwnode;
>>> +ÂÂÂÂÂÂÂ if (is_of_node(init_data->fwnode))
>>> +ÂÂÂÂÂÂÂÂÂÂÂ led_cdev->dev->of_node = to_of_node(init_data->fwnode);
>> It would be step backwards. You can do the conversion in the place of
>> use i.e. in devm_led_get().
>
> Could be done. But it would break another use case I have. I'm also
> working on the regulator support and for this one, of_node needs to be
> populated.

I thought that regulator core can do the conversion to of_node itself,
but this seems not to be the case.

> Is there a problem populating of_node if the LED is indeed described in
> the DT ?

No, if it is not possible to do it otherwise.

--
Best regards,
Jacek Anaszewski