linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Jon Smirl" <jonsmirl@gmail.com>
To: avorontsov@ru.mvista.com
Cc: linuxppc-dev <Linuxppc-dev@ozlabs.org>
Subject: Re: Device treee syntax for expanding mpc5200 gpios
Date: Mon, 15 Sep 2008 09:16:58 -0400	[thread overview]
Message-ID: <9e4733910809150616u3c50797cwbf48e139b239146c@mail.gmail.com> (raw)
In-Reply-To: <20080915130206.GA25628@oksana.dev.rtsoft.ru>

On Mon, Sep 15, 2008 at 9:02 AM, Anton Vorontsov
<avorontsov@ru.mvista.com> wrote:
> On Fri, Sep 12, 2008 at 04:43:22PM -0400, Jon Smirl wrote:
>> I need to implement some more of the mpc5200's gpio capabilities.
>>
>> Right now we have:
>> gpios = <&gpio_wkup 0 0>;
>> first cell is index into the bank, and second is unused.
>>
>> What do we need to fully describe a mpc5200 gpio?
>>
>> 1) open drain: 1 enable
>
> This can be described in the gpios = <> property via second cell.
>
>> 2) interrupt: 0 no int, 1 simple, 2 wakeup, 3 both
>> 3) interrupt type: 0 any transition, 1 rising, 2 falling, 3 pulse
>
> These we describe via interrupts = <> proprty, so..
>
>> A gpio pin would then have four cells?
>>
>> Or should all of this be encoded into a single cell so that the
>> existing two cell syntax can be preserved?
>
> It is still possible to preserve two cells syntax and encode
> irq-specific information there, but this isn't pretty.
>
> I think that interrupts and their information could be encoded in
> the "interrupts" property... something like (QE example):
>
> qe_pio_e: gpio-controller@1460 {
>        #gpio-cells = <2>;
>        compatible = "fsl,mpc8360-qe-pario-bank",
>                     "fsl,mpc8323-qe-pario-bank";
>        reg = <0x1460 0x18>;
>        interrupts = <0 1 2 3 4 5 6 7 8 9 ...>;
>        interrupt-parent = <&qeic>;
>        gpio-controller;
> };
>
> qeic: interrupt-controller@80 {
>        #address-cells = <0>;
>        #interrupt-cells = <1>;
>        compatible = "fsl,qe-ic";
>        interrupt-controller;
>        reg = <0x80 0x80>;
>        big-endian;
>        interrupts = <32 8 33 8>;
>        interrupt-parent = <&ipic>;
> };
>
> That way it is easy to implement gpio_to_irq() call, and we won't
> need to bother with interrupt-specific information in the gpios = <>.

The easiest way to implement gpio_to_irq() is to arrange things so
that the gpio number used internally by linux is the same as the virq
number.  I did this in the code I posted in the other thread,

In the mpc5200 the level sensitivity of each gpio interrupt can be set
independently, but there is a kernel API for doing it.

By doing these two things none of the interrupt info needs to be
encoded into the device tree.


>
> It also correctly describes the hardware, there are really two
> distinct hw units: interrupt controller and gpio controller.
>
> Also, I think that gpio_to_irq() call would be a rare case, since
> you can always specify interrupts directly, i.e.
>
> device {
>        gpios = <&qe_pio_e 0 0>;
>        interrupts = <0>;
>        interrupt-parent = <&qeic>;
> };
>
> --
> Anton Vorontsov
> email: cbouatmailru@gmail.com
> irc://irc.freenode.net/bd2
>



-- 
Jon Smirl
jonsmirl@gmail.com

      reply	other threads:[~2008-09-15 13:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-12 20:43 Device treee syntax for expanding mpc5200 gpios Jon Smirl
2008-09-15  2:40 ` David Gibson
2008-09-15  2:59   ` Jon Smirl
2008-09-15 13:02 ` Anton Vorontsov
2008-09-15 13:16   ` Jon Smirl [this message]

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=9e4733910809150616u3c50797cwbf48e139b239146c@mail.gmail.com \
    --to=jonsmirl@gmail.com \
    --cc=Linuxppc-dev@ozlabs.org \
    --cc=avorontsov@ru.mvista.com \
    /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).