[PATCH 3/5] gpio/omap: Add DT support to GPIO driver
Linus Walleij
linus.walleij at linaro.org
Wed Jun 12 05:43:23 EDT 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 linux-arm-kernel
mailing list