From: Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org> To: Sebastian Hesselbarth <sebastian.hesselbarth-gM/Ye1E23mwN+BqQ9rBEUg@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, linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Subject: Re: [PATCH v2 01/12] ARM: Orion: DT support for IRQ and GPIO Controllers Date: Thu, 5 Jul 2012 16:43:11 +0200 [thread overview] Message-ID: <20120705144311.GB17534@lunn.ch> (raw) In-Reply-To: <4FF5A15A.8070309-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> On Thu, Jul 05, 2012 at 04:14:50PM +0200, Sebastian Hesselbarth wrote: > On 07/05/2012 03:08 PM, Andrew Lunn wrote: > >The issue is knowing what IRQ number to use for the secondary > >interrupts. > > > >Orion use generic chip interrupts, both for the main interrupts and > >the GPIO interrupts. This does not yet support irq domain, so i have > >to layer a legacy domain on top. The legacy domain needs to know the > >first IRQ and the number of IRQs. For the primary IRQs that is > >easy. However, GPIO IRQ is not so easy, it depends on how many primary > >IRQs there are. This is not fixed. Orion5x has 32, Dove 64, kirkwood, > >64, and mv78xx0 has 96. I need to know this number when adding the > >GPIO secondary IRQ legacy domain. By calling orion_gpio_of_init() in > >the orion_add_irq_domain() i have this number to hand. If i used to > >entries in the match table, i would have to put this number into some > >global variable, or somehow ask the IRQ subsystem what the next free > >IRQ number is. > > Andrew, > > is it possible to group all gpio banks into one DT description? Everything is possible. I did think about having just one gpio controller, since as you said, it makes it easier to describe gpios = <&gpio 71 0>; instead of gpios = <&gpio3 7 0>; But most SoCs seem to have multiple GPIO controllers in the .dtsi files. Only picoxcell has banks inside a single gpio controller. So it would be a bit unusual. What you suggest also adds a lot of complexity to the code and probably means a lot less of the code can be shared with non-DT GPIO handling code. The natural size of a GPIO controller is 32 lines, not 8. The current interrupt handling does not actually care which IRQ of a bank of 32 lines fired, it looks at all lines. The handler_data in the IRQ points to the GPIO chip, not a subsection of the GPIO chip. > bank5@e8400 { > reg = <0xe8400 0x20>; > ngpio = <8>; > marvell,orion-gpio-output-only; Some Orions mixed GPIOs GPOs and GPIs within one controller. So that is not generic enough. Probably the pinmux DT description needs to be able to specify per pin what a line can do. Andrew
WARNING: multiple messages have this Message-ID (diff)
From: andrew@lunn.ch (Andrew Lunn) 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 16:43:11 +0200 [thread overview] Message-ID: <20120705144311.GB17534@lunn.ch> (raw) In-Reply-To: <4FF5A15A.8070309@googlemail.com> On Thu, Jul 05, 2012 at 04:14:50PM +0200, Sebastian Hesselbarth wrote: > On 07/05/2012 03:08 PM, Andrew Lunn wrote: > >The issue is knowing what IRQ number to use for the secondary > >interrupts. > > > >Orion use generic chip interrupts, both for the main interrupts and > >the GPIO interrupts. This does not yet support irq domain, so i have > >to layer a legacy domain on top. The legacy domain needs to know the > >first IRQ and the number of IRQs. For the primary IRQs that is > >easy. However, GPIO IRQ is not so easy, it depends on how many primary > >IRQs there are. This is not fixed. Orion5x has 32, Dove 64, kirkwood, > >64, and mv78xx0 has 96. I need to know this number when adding the > >GPIO secondary IRQ legacy domain. By calling orion_gpio_of_init() in > >the orion_add_irq_domain() i have this number to hand. If i used to > >entries in the match table, i would have to put this number into some > >global variable, or somehow ask the IRQ subsystem what the next free > >IRQ number is. > > Andrew, > > is it possible to group all gpio banks into one DT description? Everything is possible. I did think about having just one gpio controller, since as you said, it makes it easier to describe gpios = <&gpio 71 0>; instead of gpios = <&gpio3 7 0>; But most SoCs seem to have multiple GPIO controllers in the .dtsi files. Only picoxcell has banks inside a single gpio controller. So it would be a bit unusual. What you suggest also adds a lot of complexity to the code and probably means a lot less of the code can be shared with non-DT GPIO handling code. The natural size of a GPIO controller is 32 lines, not 8. The current interrupt handling does not actually care which IRQ of a bank of 32 lines fired, it looks at all lines. The handler_data in the IRQ points to the GPIO chip, not a subsection of the GPIO chip. > bank5 at e8400 { > reg = <0xe8400 0x20>; > ngpio = <8>; > marvell,orion-gpio-output-only; Some Orions mixed GPIOs GPOs and GPIs within one controller. So that is not generic enough. Probably the pinmux DT description needs to be able to specify per pin what a line can do. Andrew
next prev parent reply other threads:[~2012-07-05 14:43 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 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 [this message] 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=20120705144311.GB17534@lunn.ch \ --to=andrew-g2dyl2zd6by@public.gmane.org \ --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@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=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \ --cc=sebastian.hesselbarth-gM/Ye1E23mwN+BqQ9rBEUg@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: linkBe 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.