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: [EMAIL PROTECTED] {
        #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: [EMAIL PROTECTED] {
        #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: [EMAIL PROTECTED]
irc://irc.freenode.net/bd2
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to