Re: [PATCH v5 05/10] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings

From: Rob Herring
Date: Wed Feb 13 2019 - 15:40:34 EST


On Wed, Feb 13, 2019 at 07:26:20AM -0800, Tony Lindgren wrote:
> * Lokesh Vutla <lokeshvutla@xxxxxx> [190213 04:26]:
> > Hi Tony,
> >
> > On 12/02/19 9:52 PM, Tony Lindgren wrote:
> > > Hi,
> > >
> > > * Lokesh Vutla <lokeshvutla@xxxxxx> [190212 07:43]:
> > >> +Example:
> > >> +--------
> > >> +The following example demonstrates both interrupt router node and the consumer
> > >> +node(main gpio) on the AM654 SoC:
> > >> +
> > >> +main_intr: interrupt-controller0 {
> > >> + compatible = "ti,sci-intr";
> > >> + interrupt-controller;
> > >> + interrupt-parent = <&gic500>;
> > >> + #interrupt-cells = <4>;
> > >> + ti,sci = <&dmsc>;
> > >> + ti,sci-dst-id = <56>;
> > >> + ti,sci-rm-range-girq = <0x1>;
> > >> +};
> > >
> > > Can you describe a bit what the "ti,sci-dst-id" is above?
> > >
> > > These IDs seem to be listed at at [0] below, but is it really a property
> > > of the hardware? Or is it some enumeration of SoC devices in the firmware?
> >
> > This is the way that sysfw describes the hardware. In this case it is GIC and it
> > is identified by this ID.
>
> If this ID is an enumeration in the sysfw rather than an actual
> hardware property it should not be in the device tree. If so,
> the device driver should request the id from the sysfw based
> on a name. That is, if no struct device or device phandle can
> be used.
>
> The problem with using enumeration in the dts is that it
> requires maintaining the dts, driver(s) and possibly firmware
> in sync. And that might change between SoCs variants when new
> devices get added and removed.

IOW, don't repeat h/w designers mistakes and make your firmware
discoverable. We have DT only for what is not discoverable.

Rob