Re: [PATCH 1/3] misc: Add crossbar driver

From: Tony Lindgren
Date: Tue Aug 13 2013 - 04:10:25 EST


* Santosh Shilimkar <santosh.shilimkar@xxxxxx> [130724 12:06]:
> On Wednesday 24 July 2013 02:51 PM, Nishanth Menon wrote:
> > On 07/24/2013 01:43 PM, Sricharan R wrote:
> >> On Wednesday 24 July 2013 10:17 PM, Nishanth Menon wrote:
> >>> On 07/24/2013 11:38 AM, Santosh Shilimkar wrote:
> >>>> On Wednesday 24 July 2013 12:08 PM, Nishanth Menon wrote:
> >>>>> That said, maybe a intermediate pinctrl approach might be more pragmatic and less theoretically flexible.
> >>>>> an option might be to "statically allocate" default number of interrupts to a domain - example:
> >>>>> * GIC IRQ 72->78 allotted to UARTs
> >>>>> * pinctrl mapping provided for those but only 6 can be used (rest are marked status="disabled" as default) at any given time (choice of pinctrl option determines GIC interrupt line to use)
> >>>>> * All modules will have a pinctrl definition to have a mapping - to avoid bootloader overriding default cross bar setting in ways un-expected by kernel.
> >>>>>
> >>>>> Does that sound fair trade off?
> >>>> This sounds better. That way we can get all the devices in the DT at least.
> >>>
> >>> Fair enough - if Linus and Tony are still ok with this approach to the problem, seeing a patch series with the effect would be beneficial.
> >>>
> >> Ok, i will use this idea of certain number interrupts to groups.
> >> Yes on DRA7XX, we have about 160 gic lines and 320 irq crossbar device inputs contending for it.
> >> 1:2 and fully arbitrary. But will we be really exhausting them ?
> >>
> > Depends on how we allocate :). The default arbitary allocation can be made more logical in your series ofcourse :).
> >
> I would just most logical peripherals rather than providing every single
> IP connected to cross bar. Otherwise we will end up wth hwmod like
> scenario where now started removing the unused stuff because of
> maintenance and loc issues ;-)

Sorry for the delay on this, I think the best way to set this up
is as a separate drivers/irqchip controller. Then just map the
configured interrupts for the board with interrupt-map and
interrupt-map-mask binding. No need to stuff all the SoC specific
maps to the .dts, just the ones used for the board.

Regards,

Tony

--
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/