Re: [PATCH 1/1] gpio: add a driver for the Synopsys DesignWare APBGPIO block

From: Sebastian Hesselbarth
Date: Wed Nov 20 2013 - 18:46:21 EST


On 11/21/2013 12:40 AM, Rob Herring wrote:
On Wed, Nov 20, 2013 at 3:47 PM, delicious quinoa
<delicious.quinoa@xxxxxxxxx> wrote:
On Thu, Nov 7, 2013 at 6:33 AM, Sebastian Hesselbarth
<sebastian.hesselbarth@xxxxxxxxx> wrote:
On 11/06/13 23:49, Alan Tull wrote:

[snip]

BTW, what if we get rid of port child nodes completely and rather
use:

gpio: gpio-controller@20000 {
compatible = "snps,dw-apb-gpio";
reg = <0x20000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
interrupt-parent = <&vic1>;
interrupts = <0 1 2 3 4 5 6 7>;
snps,port-widths = <8 8 0 0>;
};

The only draw-back compared to child-nodes is, that you'll reference
gpios with <&gpio 13> instead of <&banka 5>. I have no strong opinion
about it, so I leave the correct answer to either LinusW or DT
maintainers.

I left this as-is for now.

I generally favor less nodes of things, but I think we discussed this
when originally posted and keeping them seemed to be the right choice.
What if you have sparsely populated banks like this:

snps,port-widths = <4 4 0 0>;
snps,port-widths = <8 0 8 0>;

Also, you would need to define how the interrupts are done. You may
have 1 per port or 1 per gpio line or a mixture if the h/w folks
really hate you.

Actually, dw-apb-gpio only allows irqs on portA. Also, we only need to
register all upstream irqs to have our handler called which looks for
the right downstream irq to trigger.

But as I said, I have nothing against sub-nodes - at least it makes
referencing gpio lines of different ports easier.

Sebastian

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/