From: Anton Vorontsov <avorontsov@ru.mvista.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: linuxppc-dev <Linuxppc-dev@ozlabs.org>
Subject: Re: Device treee syntax for expanding mpc5200 gpios
Date: Mon, 15 Sep 2008 17:02:06 +0400 [thread overview]
Message-ID: <20080915130206.GA25628@oksana.dev.rtsoft.ru> (raw)
In-Reply-To: <9e4733910809121343q641f4204pccf6ae110fbd6a04@mail.gmail.com>
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 = <>.
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
next prev parent reply other threads:[~2008-09-15 13:02 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 [this message]
2008-09-15 13:16 ` Jon Smirl
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=20080915130206.GA25628@oksana.dev.rtsoft.ru \
--to=avorontsov@ru.mvista.com \
--cc=Linuxppc-dev@ozlabs.org \
--cc=jonsmirl@gmail.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 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.