[PATCH 3/5] gpio/omap: Add DT support to GPIO driver

Linus Walleij linus.walleij at linaro.org
Wed Jun 12 19:43:23 EST 2013


On Tue, Jun 11, 2013 at 11:25 PM, Grant Likely
<grant.likely at secretlab.ca> wrote:
> On Fri, 26 Apr 2013 16:31:24 -0500, Jon Hunter <jon-hunter at ti.com> wrote:
>>
>> On 04/26/2013 02:31 AM, Linus Walleij wrote:
>> > On Wed, Apr 17, 2013 at 2:41 AM, Javier Martinez Canillas
>> > <martinez.javier at gmail.com> wrote:
>> >
>> > So:
>> >
>> >> +static int omap_gpio_irq_domain_xlate(struct irq_domain *d,
>> >> +                                     struct device_node *ctrlr,
>> >> +                                     const u32 *intspec, unsigned int intsize,
>> >> +                                     irq_hw_number_t *out_hwirq,
>> >> +                                     unsigned int *out_type)
>> >> +{
>> >> +       int ret;
>> >> +       struct gpio_bank *bank = d->host_data;
>> >> +       int gpio = bank->chip.base + intspec[0];
>> >> +
>> >> +       if (WARN_ON(intsize < 2))
>> >> +               return -EINVAL;
>> >> +
>> >> +       ret = gpio_request_one(gpio, GPIOF_IN, ctrlr->full_name);
>> >> +       if (ret)
>> >> +               return ret;
>> >
>> > So how to figure out if a device is already requesting this GPIO
>> > on some orthogonal axis?
>>
>> I really don't think that is necessary. Hopefully, my other email [1]
>> elaborates on why. Let me know if this makes sense.
>
> I would agree here. If the irq specified happens to be a GPIO; then the
> onus is on the GPIO/IRQ controller driver to make sure that GPIO is
> actually set up to work as an IRQ.

Hm, re-reading this I guess the gpio_request_one() will block
others from using the pin for anything else.

Isn't that the answer to my actual question...?

It seems more like I was asking a pretty stupid question
actually.

Yours,
Linus Walleij


More information about the devicetree-discuss mailing list