Re: [PATCH V4 27/28] PCI: tegra: Add support for GPIO based PERST#

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 14, 2019 at 10:00:49PM +0530, Manikanta Maddireddy wrote:

[...]

> GPIO based PERST# is per-platform requirement.
> If DT prop is not present, then devm_gpiod_get_from_of_node() returns
> NULL gpio_desc.
> 
> struct gpio_desc *gpiod_get_from_of_node(struct device_node *node,
>                                          const char *propname, int index,
>                                          enum gpiod_flags dflags,
>                                          const char *label)
> {
>         struct gpio_desc *desc;
>         unsigned long lflags = 0;
>         enum of_gpio_flags flags;
>         bool active_low = false;
>         bool single_ended = false;
>         bool open_drain = false;
>         bool transitory = false;
>         int ret;
> 
>         desc = of_get_named_gpiod_flags(node, propname,
>                                         index, &flags);
> 
>         if (!desc || IS_ERR(desc)) {
> */* If it is not there, just return NULL */****if (PTR_ERR(desc) == -ENOENT)****return NULL;*
>                 return desc;
>         }
> 	...
> 
> }

Ok. My point then is that you have no way to enforce this requirement on
platforms that actually need it, I do not even know if there is a
way you can do it (I was thinking along the lines of using a
compatible string to detect whether the GPIO #PERST reset is mandatory)
but maybe this is not even a SOC property.

Maybe what I am asking is overkill, I just wanted to understand.

I was just asking a question to understand how you handle the case
where a GPIO pin definition is missing in DT for a platform that
actually needs it, the driver will probe but nothing will work.

It would be good to describe this and capture it in the commit log.

Thanks,
Lorenzo



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux