From: robherring2@gmail.com (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] gpio: pl061: add DT binding support
Date: Wed, 03 Aug 2011 18:18:45 -0500 [thread overview]
Message-ID: <4E39D755.2030700@gmail.com> (raw)
In-Reply-To: <CACxGe6u1g_XZCvWB=7Z=0hGhZKfcQaiRm1WaQfJMrkkHTTqn8Q@mail.gmail.com>
Grant,
On 08/03/2011 05:22 PM, Grant Likely wrote:
> On Wed, Aug 3, 2011 at 7:54 PM, Rob Herring <robherring2@gmail.com> wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>>
>> This adds devicetree binding support to the ARM pl061 driver removing the
>> platform_data dependency. When DT binding is used, the gpio numbering is
>> assigned dynamically. The interrupt assignment is converted to use the
>> irq_domain infrastructure.
>>
>> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
>> Cc: Grant Likely <grant.likely@secretlab.ca>
>> ---
>> drivers/gpio/gpio-pl061.c | 32 +++++++++++++++++++++++---------
>> 1 files changed, 23 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
>> index 2c5a18f..7ea74ff 100644
>> --- a/drivers/gpio/gpio-pl061.c
>> +++ b/drivers/gpio/gpio-pl061.c
>> @@ -23,6 +23,7 @@
>> #include <linux/amba/bus.h>
>> #include <linux/amba/pl061.h>
>> #include <linux/slab.h>
>> +#include <linux/of_irq.h>
>>
>> #define GPIODIR 0x400
>> #define GPIOIS 0x404
>> @@ -246,6 +247,20 @@ static int pl061_probe(struct amba_device *dev, const struct amba_id *id)
>> if (chip == NULL)
>> return -ENOMEM;
>>
>> + pdata = dev->dev.platform_data;
>> + if (pdata) {
>> + chip->gc.base = pdata->gpio_base;
>> + chip->irq_base = pdata->irq_base;
>> + } else if (dev->dev.of_node) {
>> + u32 intspec = 0;
>> + chip->gc.base = -1;
>> + chip->irq_base = irq_create_of_mapping(dev->dev.of_node,
>> + &intspec, 1);
>
> This looks wrong. intspec is always 0 here, when I would assume you
> would want the value of the interrupts property from this device's
> node. Is this the cascade irq number? Or is it supposed to be the
> starting interrupt number for the gpios? If it is starting interrupt
> number, then it should actually be dynamically assigned. If it is the
> cascade, then platform_get_irq() should work.
>
It's the latter case that I need to retrieve. I have this platform code
assigning the linux irq numbers:
struct device_node *node;
int n = 0;
node = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-gic");
if (!node)
panic("missing gic devicetree node\n");
irq_domain_add_simple(node, 0);
for_each_compatible_node(node, NULL, "arm,pl061") {
irq_domain_add_simple(node, 160 + (8 * n));
n++;
}
In this case with simple translation, intspec is really a don't care.
irq_create_of_mapping just finds the domain that matches the gpio
ctrlr's node and returns the domain's irq_base (+ 0) as the translate
function will just return the intspec value for the hw_irq.
Have I missed something? There is not yet any dynamic assignment of
linux irq numbers?
Rob
next prev parent reply other threads:[~2011-08-03 23:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-03 18:54 [PATCH] gpio: pl061: add DT binding support Rob Herring
2011-08-03 19:10 ` Baruch Siach
2011-08-03 22:22 ` Grant Likely
2011-08-03 23:18 ` Rob Herring [this message]
2011-10-24 22:26 ` Grant Likely
2011-10-24 22:48 ` Rob Herring
2011-08-10 21:31 ` [PATCH v2] " Rob Herring
2011-08-11 6:36 ` Baruch Siach
2011-08-11 16:48 ` Rob Herring
2011-09-22 23:08 ` Rob Herring
2011-10-24 15:40 ` Rob Herring
2011-10-24 22:24 ` Grant Likely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E39D755.2030700@gmail.com \
--to=robherring2@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.