All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	Jason Cooper <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,
	Michael Walle <michael-QKn5cuLxLXY@public.gmane.org>,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH v2 01/12] ARM: Orion: DT support for IRQ and GPIO Controllers
Date: Thu, 5 Jul 2012 12:25:55 +0000	[thread overview]
Message-ID: <201207051225.55390.arnd@arndb.de> (raw)
In-Reply-To: <1341325365-21393-2-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>

On Tuesday 03 July 2012, Andrew Lunn wrote:
> Both IRQ and GPIO controllers can now be represented in DT.  The IRQ
> controllers are setup first, and then the GPIO controllers. Interrupts
> for GPIO lines are placed directly after the main interrupts in the
> interrupt space.

Overall looks very good.

> diff --git a/Documentation/devicetree/bindings/arm/mrvl/intc.txt b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> index 80b9a94..8927e10 100644
> --- a/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> +++ b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> @@ -38,3 +38,22 @@ Example:
>  		reg-names = "mux status", "mux mask";
>  		mrvl,intc-nr-irqs = <2>;
>  	};
> +
> +* Marvell Orion Interrupt controller
> +
> +Required properties
> +- compatible :  Should be "marvell,orion-intc".
> +- #interrupt-cells: Specifies the number of cells needed to encode an
> +  interrupt source. Supported value is <1>.
> +- interrupt-controller : Declare this node to be an interrupt controller.
> +- reg : Interrupt mask address.

I think you should clarify that the "reg" property can be multiple
4-byte ranges, because that is fairly unusual.

> +#ifdef CONFIG_OF
> +static int __init orion_add_irq_domain(struct device_node *np,
> +				       struct device_node *interrupt_parent)
> +{
> +	int i = 0, irq_gpio;
> +	void __iomem *base;
> +
> +	do {
> +		base = of_iomap(np, i);
> +		if (base) {
> +			orion_irq_init(i * 32, base);
> +			i++;
> +		}
> +	} while (base);
> +
> +	irq_domain_add_legacy(np, i * 32, 0, 0,
> +			      &irq_domain_simple_ops, NULL);
> +
> +	irq_gpio = i * 32;
> +	orion_gpio_of_init(irq_gpio);
> +
> +	return 0;
> +}
> +
> +static const struct of_device_id orion_irq_match[] = {
> +	{ .compatible = "marvell,orion-intc",
> +	  .data = orion_add_irq_domain, },
> +	{},
> +};
> +
> +void __init orion_dt_init_irq(void)
> +{
> +	of_irq_init(orion_irq_match);
> +}
> +#endif

I'm wondering about this one.  The other platforms usually put the secondary
interrupt controllers into the same match table, while you call orion_gpio_of_init
from orion_add_irq_domain. Can you explain why you do this? Does it have
any disadvantages?

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 01/12] ARM: Orion: DT support for IRQ and GPIO Controllers
Date: Thu, 5 Jul 2012 12:25:55 +0000	[thread overview]
Message-ID: <201207051225.55390.arnd@arndb.de> (raw)
In-Reply-To: <1341325365-21393-2-git-send-email-andrew@lunn.ch>

On Tuesday 03 July 2012, Andrew Lunn wrote:
> Both IRQ and GPIO controllers can now be represented in DT.  The IRQ
> controllers are setup first, and then the GPIO controllers. Interrupts
> for GPIO lines are placed directly after the main interrupts in the
> interrupt space.

Overall looks very good.

> diff --git a/Documentation/devicetree/bindings/arm/mrvl/intc.txt b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> index 80b9a94..8927e10 100644
> --- a/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> +++ b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> @@ -38,3 +38,22 @@ Example:
>  		reg-names = "mux status", "mux mask";
>  		mrvl,intc-nr-irqs = <2>;
>  	};
> +
> +* Marvell Orion Interrupt controller
> +
> +Required properties
> +- compatible :  Should be "marvell,orion-intc".
> +- #interrupt-cells: Specifies the number of cells needed to encode an
> +  interrupt source. Supported value is <1>.
> +- interrupt-controller : Declare this node to be an interrupt controller.
> +- reg : Interrupt mask address.

I think you should clarify that the "reg" property can be multiple
4-byte ranges, because that is fairly unusual.

> +#ifdef CONFIG_OF
> +static int __init orion_add_irq_domain(struct device_node *np,
> +				       struct device_node *interrupt_parent)
> +{
> +	int i = 0, irq_gpio;
> +	void __iomem *base;
> +
> +	do {
> +		base = of_iomap(np, i);
> +		if (base) {
> +			orion_irq_init(i * 32, base);
> +			i++;
> +		}
> +	} while (base);
> +
> +	irq_domain_add_legacy(np, i * 32, 0, 0,
> +			      &irq_domain_simple_ops, NULL);
> +
> +	irq_gpio = i * 32;
> +	orion_gpio_of_init(irq_gpio);
> +
> +	return 0;
> +}
> +
> +static const struct of_device_id orion_irq_match[] = {
> +	{ .compatible = "marvell,orion-intc",
> +	  .data = orion_add_irq_domain, },
> +	{},
> +};
> +
> +void __init orion_dt_init_irq(void)
> +{
> +	of_irq_init(orion_irq_match);
> +}
> +#endif

I'm wondering about this one.  The other platforms usually put the secondary
interrupt controllers into the same match table, while you call orion_gpio_of_init
from orion_add_irq_domain. Can you explain why you do this? Does it have
any disadvantages?

	Arnd

  parent reply	other threads:[~2012-07-05 12:25 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-03 14:22 [PATCH v2 00/12] IRQ, GPIO SPI, I2C, etc DTC support Andrew Lunn
2012-07-03 14:22 ` Andrew Lunn
     [not found] ` <1341325365-21393-1-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-07-03 14:22   ` [PATCH v2 01/12] ARM: Orion: DT support for IRQ and GPIO Controllers Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-05  8:15     ` Andrew Lunn
     [not found]     ` <1341325365-21393-2-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-07-05  9:02       ` Thomas Petazzoni
2012-07-05  9:02         ` Thomas Petazzoni
2012-07-05  9:48         ` Andrew Lunn
2012-07-05  9:48           ` Andrew Lunn
2012-07-05 10:11           ` Arnaud Patard
2012-07-05 10:11             ` Arnaud Patard (Rtp)
     [not found]             ` <87sjd6ikkj.fsf-0gaJ4kiyQU6khWr4QmshqB2eb7JE58TQ@public.gmane.org>
2012-07-05 10:20               ` Thomas Petazzoni
2012-07-05 10:20                 ` Thomas Petazzoni
2012-07-05 10:38                 ` Arnaud Patard
2012-07-05 10:38                   ` Arnaud Patard (Rtp)
     [not found]                   ` <87liiyijb8.fsf-0gaJ4kiyQU6khWr4QmshqB2eb7JE58TQ@public.gmane.org>
2012-07-05 11:42                     ` Thomas Petazzoni
2012-07-05 11:42                       ` Thomas Petazzoni
2012-07-05 11:48                       ` Andrew Lunn
2012-07-05 11:48                         ` Andrew Lunn
     [not found]                         ` <20120705114815.GT17534-g2DYL2Zd6BY@public.gmane.org>
2012-07-05 12:09                           ` Sebastian Hesselbarth
2012-07-05 12:09                             ` Sebastian Hesselbarth
     [not found]           ` <20120705094824.GO17534-g2DYL2Zd6BY@public.gmane.org>
2012-07-05 10:10             ` Thomas Petazzoni
2012-07-05 10:10               ` Thomas Petazzoni
2012-07-05 10:25               ` Andrew Lunn
2012-07-05 10:25                 ` Andrew Lunn
2012-07-05 12:58             ` Thomas Petazzoni
2012-07-05 12:58               ` Thomas Petazzoni
2012-07-05 13:15               ` Andrew Lunn
2012-07-05 13:15                 ` Andrew Lunn
     [not found]                 ` <20120705131522.GW17534-g2DYL2Zd6BY@public.gmane.org>
2012-07-05 13:28                   ` Thomas Petazzoni
2012-07-05 13:28                     ` Thomas Petazzoni
2012-07-05 13:33                     ` Andrew Lunn
2012-07-05 13:36                       ` Thomas Petazzoni
2012-07-05 12:25       ` Arnd Bergmann [this message]
2012-07-05 12:25         ` Arnd Bergmann
     [not found]         ` <201207051225.55390.arnd-r2nGTMty4D4@public.gmane.org>
2012-07-05 13:08           ` Andrew Lunn
2012-07-05 13:08             ` Andrew Lunn
     [not found]             ` <20120705130819.GV17534-g2DYL2Zd6BY@public.gmane.org>
2012-07-05 13:47               ` Arnd Bergmann
2012-07-05 13:47                 ` Arnd Bergmann
     [not found]                 ` <201207051347.38887.arnd-r2nGTMty4D4@public.gmane.org>
2012-07-05 13:54                   ` Andrew Lunn
2012-07-05 13:54                     ` Andrew Lunn
     [not found]                     ` <20120705135449.GZ17534-g2DYL2Zd6BY@public.gmane.org>
2012-07-05 15:47                       ` Arnd Bergmann
2012-07-05 15:47                         ` Arnd Bergmann
2012-07-05 14:14               ` Sebastian Hesselbarth
2012-07-05 14:14                 ` Sebastian Hesselbarth
     [not found]                 ` <4FF5A15A.8070309-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2012-07-05 14:43                   ` Andrew Lunn
2012-07-05 14:43                     ` Andrew Lunn
2012-07-05 14:54                   ` Arnd Bergmann
2012-07-05 14:54                     ` Arnd Bergmann
     [not found]                     ` <201207051454.24475.arnd-r2nGTMty4D4@public.gmane.org>
2012-07-05 15:51                       ` Sebastian Hesselbarth
2012-07-05 15:51                         ` Sebastian Hesselbarth
     [not found]                         ` <4FF5B7F9.9020507-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2012-07-05 16:30                           ` Arnaud Patard
2012-07-05 16:30                             ` Arnaud Patard (Rtp)
2012-07-05 16:16                       ` Andrew Lunn
2012-07-05 16:16                         ` Andrew Lunn
     [not found]                         ` <20120705161600.GA28860-g2DYL2Zd6BY@public.gmane.org>
2012-07-06 20:08                           ` Arnd Bergmann
2012-07-06 20:08                             ` Arnd Bergmann
     [not found]                             ` <201207062008.23952.arnd-r2nGTMty4D4@public.gmane.org>
2012-07-06 21:00                               ` Andrew Lunn
2012-07-06 21:00                                 ` Andrew Lunn
     [not found]                                 ` <20120706210009.GC11470-g2DYL2Zd6BY@public.gmane.org>
2012-07-07  0:24                                   ` Where to put a large bootloader-supplied device tree on ARM ? Mitch Bradley
2012-07-07  0:24                                     ` Mitch Bradley
     [not found]                                     ` <4FF781D8.3040206-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-07-07  1:23                                       ` David VomLehn (dvomlehn)
2012-07-07  1:23                                         ` David VomLehn (dvomlehn)
     [not found]                                         ` <2966DB01BC317A4DA23684BA0F653415013701-WE/xwOPrfQKHONfmNwMhBaBKnGwkPULj@public.gmane.org>
2012-07-07  1:59                                           ` Mitch Bradley
2012-07-07  1:59                                             ` Mitch Bradley
     [not found]                                             ` <4FF7980E.7050705-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-07-09  4:30                                               ` Nicolas Pitre
2012-07-09  4:30                                                 ` Nicolas Pitre
     [not found]                                                 ` <alpine.LFD.2.02.1207090015270.31100-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
2012-07-12  6:52                                                   ` Mitch Bradley
2012-07-12  6:52                                                     ` Mitch Bradley
     [not found]                                                     ` <4FFE743B.6080504-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-07-12 18:16                                                       ` Nicolas Pitre
2012-07-12 18:16                                                         ` Nicolas Pitre
2012-07-12 20:34                                                     ` Rob Herring
2012-07-12 20:34                                                       ` [U-Boot] " Rob Herring
2012-07-12 20:34                                                       ` Rob Herring
2012-07-12 21:38                                                       ` Albert ARIBAUD
2012-07-12 21:38                                                         ` [U-Boot] " Albert ARIBAUD
2012-07-12 21:38                                                         ` Albert ARIBAUD
2012-07-12 21:47                                                         ` Wolfgang Denk
2012-07-12 21:47                                                           ` [U-Boot] " Wolfgang Denk
2012-07-12 21:47                                                           ` Wolfgang Denk
2012-07-13  1:28                                                           ` Rob Herring
2012-07-13  1:28                                                             ` [U-Boot] " Rob Herring
2012-07-13  1:28                                                             ` Rob Herring
     [not found]                                                             ` <4FFF79B6.6040508-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-07-13  6:45                                                               ` Albert ARIBAUD
2012-07-13  6:45                                                                 ` Albert ARIBAUD
2012-07-13  6:45                                                                 ` Albert ARIBAUD
2012-07-05 18:36                       ` [PATCH v2 01/12] ARM: Orion: DT support for IRQ and GPIO Controllers Mitch Bradley
2012-07-05 18:36                         ` Mitch Bradley
2012-07-03 14:22   ` [PATCH v2 02/12] SPI: Refactor spi-orion to use SPI framework queue Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 03/12] spi-orion: remove uneeded spi_info Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 04/12] spi-orion: add device tree binding Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 05/12] ARM: kirkwood: use devicetree for orion-spi Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 06/12] ARM: kirkwood: use devicetree for SPI on dreamplug Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 07/12] I2C: MV64XXX: Add Device Tree support Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
     [not found]     ` <1341325365-21393-8-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-07-03 15:59       ` Florian Fainelli
2012-07-03 15:59         ` Florian Fainelli
2012-07-03 16:58         ` Andrew Lunn
2012-07-03 16:58           ` Andrew Lunn
     [not found]           ` <20120703165839.GA1519-g2DYL2Zd6BY@public.gmane.org>
2012-07-04 19:49             ` Florian Fainelli
2012-07-04 19:49               ` Florian Fainelli
2012-07-05  6:52               ` Andrew Lunn
2012-07-05  6:52                 ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 08/12] Kirkwood: Add basic device tree support for QNAP TS219 Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
     [not found]     ` <1341325365-21393-9-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-07-03 15:47       ` Florian Fainelli
2012-07-03 15:47         ` Florian Fainelli
2012-07-03 17:09         ` Andrew Lunn
2012-07-03 17:09           ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 09/12] ARM: Kirkwood: DTify the watchdog timer Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 10/12] ATA: sata_mv: Add device tree support Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 11/12] ARM: Kirkwood: Use DT to configure SATA device Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
     [not found]     ` <1341325365-21393-12-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-07-03 14:52       ` Josh Coombs
2012-07-03 14:52         ` Josh Coombs
     [not found]         ` <CAMW5Ufa2bsYs9VD2g9hJWKpcQNcZt+WXCA1ohYoHeLk9SambSg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-07-03 15:32           ` Andrew Lunn
2012-07-03 15:32             ` Andrew Lunn
2012-07-03 14:22   ` [PATCH v2 12/12] Crypto: CESA: Add support for DT based instantiation Andrew Lunn
2012-07-03 14:22     ` Andrew Lunn
     [not found]     ` <1341325365-21393-13-git-send-email-andrew-g2DYL2Zd6BY@public.gmane.org>
2012-07-03 15:50       ` Florian Fainelli
2012-07-03 15:50         ` Florian Fainelli
2012-07-03 17:03         ` Andrew Lunn
2012-07-03 17:03           ` Andrew Lunn

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=201207051225.55390.arnd@arndb.de \
    --to=arnd-r2ngtmty4d4@public.gmane.org \
    --cc=andrew-g2DYL2Zd6BY@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=michael-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 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.