Messages in this thread | | | Date | Thu, 21 Nov 2013 00:46:08 +0100 | From | Sebastian Hesselbarth <> | Subject | Re: [PATCH 1/1] gpio: add a driver for the Synopsys DesignWare APB GPIO block |
| |
On 11/21/2013 12:40 AM, Rob Herring wrote: > On Wed, Nov 20, 2013 at 3:47 PM, delicious quinoa > <delicious.quinoa@gmail.com> wrote: >> On Thu, Nov 7, 2013 at 6:33 AM, Sebastian Hesselbarth >> <sebastian.hesselbarth@gmail.com> 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
| |