Re: [PATCH v4 3/4] regulator: tps65086: Add regulator driver for the TPS65086 PMIC
From: Andrew F. Davis <hidden>
Date: 2015-11-23 19:18:33
Also in:
linux-gpio, lkml
On 11/23/2015 01:00 PM, Mark Brown wrote:
On Mon, Nov 23, 2015 at 11:40:55AM -0600, Andrew F. Davis wrote:quoted
But which of_node?quoted
regulator_config->of_node regulator_config->dev->of_nodequoted
The second is the only one I see getting used, the first is only used when drivers provide their own init_data and automatic init data getting fails.The configuration of_node is there to override the device one if there were some reason to do it. This should only happen in a situation where we weren't able to use the core parsing, with modern drivers it indicates a problematic binding so the code deliberately doesn't handle it. Anything with a problematic binding will have generated the init_data in driver code anyway. If we come up with a reason to extend the interface we can do that but for now there is no need.
Right, so this is the kind of description that would be nice with the declaration.
quoted
The same issue is present in GPIO (gpiolib.c:612), where the of_nodeLine number references are complately unhelpful if you don't say what you're looking at (for me that's a call to irq_find_mapping() which I'm guessing isn't what you were talking about).
My bad, that is for v4.4-rc1 line 694. The lines are:
of_node = gpiochip->dev->of_node; #ifdef CONFIG_OF_GPIO /* * If the gpiochip has an assigned OF node this takes precedence * FIXME: get rid of this and use gpiochip->dev->of_node everywhere */ if (gpiochip->of_node) of_node = gpiochip->of_node; #endif
So, if we have a config->of_node it is used over config->dev->of_node.
quoted
in the config takes precedence over the one in config->dev, the opposite is true for regulators, this is very confusing and should be standardized.No, they both do the same thing.
I don't see that, config->dev->of_node is checked for the init data in regulator_of_get_init_data, then config->of_node is then ignored if that succeeds.