[U-Boot] [PATCH] gpio: add gpio-hog support
Michal Simek
michal.simek at xilinx.com
Mon May 27 11:15:51 UTC 2019
On 27. 05. 19 11:36, Heiko Schocher wrote:
> Hello Michal,
>
> Am 27.05.2019 um 09:13 schrieb Michal Simek:
>> On 27. 05. 19 8:30, Heiko Schocher wrote:
>>> add gpio-hog support. GPIO hogging is a mechanism
>>> providing automatic GPIO request and configuration
>>> as part of the gpio-controller's driver probe function.
>>>
>>> for more infos see:
>>> doc/device-tree-bindings/gpio/gpio.txt
>>>
>>> Signed-off-by: Heiko Schocher <hs at denx.de>
>>
>> I have tested it on zcu102 where I use gpio hogs for gt muxes.
>
> Thanks!
>
>> gpio hogs are handled and setup only when gpio controller is probed.
>
> Yes, with my current approach ... If you need a gpio-hog in a gpio
> device, wich is not used, you can add in board code:
>
> gpio_hog_lookup_name("name_of_the_gpio_hog");
>
> and gpio driver (and gpio hogs) get probed ... but not really nice...
>
>> Do we have a way how to say that controllers with gpio hogs should be
>> probed automatically?
>
> No yet, but I am open for suggestions ;-)
>
>> Right now you are calling it in post_probe which make sense but on the
>> other hand if you find gpio hog in bind you should probe the whole
>> driver without asking for request.
>
> Yes, I also thought about this approach, but the problem is in
>
> static int gpio_hog(struct udevice *dev)
> {
> ofnode node;
> struct gpio_dev_priv *uc_priv = NULL;
>
> uc_priv = dev_get_uclass_priv(dev);
> if (!uc_priv) {
> printf("%s: missing private data.\n", __func__);
> return -EINVAL;
> }
>
> uc_priv is not valid @bind stage ...
>
> But I can think of a function which scans all gpio nodes for
> gpio hog subnodes, and call device_probe() ?
>
> But from where should this function be called?
The question is if this patch is reading that gpio-hogs at right stage.
Right now you are decoding them in post_probe. Normally getting
information from DT is done in ofdata_to_platdata.
It is question if this approach is also working for non DT case.
Anyway let's say you setup a flag in ofdata_to_platdata that there are
gpio hogs and then you know if you should probe that device or not.
btw: didn't send this before you v2 but should be still valid.
Let me test v2 now.
M
More information about the U-Boot
mailing list