linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org,
	grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	machael-QKn5cuLxLXY@public.gmane.org
Subject: Re: [PATCH 1/9] ARM: Kirkwood: Add interrupt controller support for DT boards
Date: Thu, 14 Jun 2012 11:18:58 +0200	[thread overview]
Message-ID: <20120614091858.GD4799@lunn.ch> (raw)
In-Reply-To: <201206140812.34399.arnd-r2nGTMty4D4@public.gmane.org>

On Thu, Jun 14, 2012 at 08:12:34AM +0000, Arnd Bergmann wrote:
> On Sunday 10 June 2012, Andrew Lunn wrote:
> > +static int __init kirkwood_add_irq_domain(struct device_node *np,
> > +                                         struct device_node *interrupt_parent)
> > +{
> > +       kirkwood_init_irq();
> > +       irq_domain_add_legacy(np, 64, 0, 0, &irq_domain_simple_ops, NULL);
> > +       return 0;
> > +}
> > +
> > +static const struct of_device_id kirkwood_irq_match[] = {
> > +       { .compatible = "marvell,orion-intc",
> > +         .data = kirkwood_add_irq_domain, },
> > +       {},
> > +};
> > +
> > +static void __init kirkwood_dt_init_irq(void)
> > +{
> > +       of_irq_init(kirkwood_irq_match);
> > +}
> > +
> 
> I think if you compute the number of interrupts in the domain from the number of
> registers that are described in the device tree, call orion_irq_init()
> based on those registers, and use irq domains for the gpio stuff as Rob suggested,
> this init_irq function can become completely generic to all orion platforms.

I'm reworking the GPIO stuff at the moment, moving it to use IRQ
domains for its interrupts. That code will be generic to all Orion
platforms. I'm modeling the code on the AT91 GPIO handler, since that
has a similar structure, one hardware interrupt for a number of GPIO
lines, which is in software demultiplexed and triggers secondary level
interrupts. The major difference is that AT91 has one hardware
interrupt for a GPIO chip with 32 lines, where as Orion has 4 hardware
interrupt lines, so maybe four interrupt domains, for one GPIO chip
with 32 lines.

Non-GPIO interrupts are more of a problem. Underneath it uses the
generic-chip interrupt code. The patchset to add _domain versions of
these calls is stalled. So i think for the moment, we need to stay
with the domain bolted on top, until generic-chip gets domain
support. I would also expect that generic-chip also gets a common DT
binding which any SoC can use.

My aim at the moment is to get something which works well enough that
we can add DT support to other drivers. Without interrupts, we are not
going to get very far. We can later rip it out what i create now and
replace it once generic-chip becomes domain and DT aware, and there
should be no effect on other drivers.

       Andrew

  parent reply	other threads:[~2012-06-14  9:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-10 10:31 [PATCH 1/9] ARM: Kirkwood: Add interrupt controller support for DT boards Andrew Lunn
     [not found] ` <1339324322-29388-2-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-06-10 16:48   ` Jason Cooper
2012-06-10 21:21   ` Michael Walle
2012-06-11 12:49   ` Rob Herring
2012-06-14  8:12   ` Arnd Bergmann
     [not found]     ` <201206140812.34399.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-14  9:18       ` Andrew Lunn [this message]
     [not found]         ` <20120614091858.GD4799-g2DYL2Zd6BY@public.gmane.org>
2012-06-14 11:55           ` Arnd Bergmann

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=20120614091858.GD4799@lunn.ch \
    --to=andrew-g2dyl2zd6by@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org \
    --cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=machael-QKn5cuLxLXY@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).