Re: DT connectors, thoughts

From: Stephen Boyd
Date: Thu Aug 25 2016 - 21:44:17 EST


Quoting David Gibson (2016-07-21 21:25:56)
> On Thu, Jul 21, 2016 at 02:15:57PM -0500, Rob Herring wrote:
> > On Mon, Jul 18, 2016 at 9:20 AM, David Gibson
> > <david@xxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > I understand how you are using i2c alias, but not the intc. It would
> > help if the same names were not used in multiple places unless they
> > are the same thing.
>
> Yes, sorry. We have both the /soc/intc node which is the base board's
> master interrupt controller. Then we have the connector local 'intc'
> alias which describes the local interrupt space for just the
> connector.
>
> > What does using aliases here buy us vs. just properties with a
> > phandle?
>
> Um.. I'm not sure what you mean.

I think Rob means drop the aliases node and just have:

property = &phandle;

In this example:

i2c = &i2c;
intc = &w1_irqs;
mmio = &mmio;

or perhaps to have a list of phandles and names that map to them?

targets = <&i2c>, <&w1_irqs>, <&mmio>;
target-names = "i2c", "intc", "mmio";

?

>
> > > mmio = &mmio;
> > > };
> > > };
> > > };
> > > };
> > >
> > > Note that the symbols are local to the connector, and explicitly
> > > listed, rather than including all labels in the tree. This is to
> > > enforce (or at the very least encourage) plugins to only access those
> > > parts of the base tree.
> > >
> > > Note also the use of an interrupt nexus node contained within the
> > > connector to control which irqs the socketed device can use. I think
> > > this needs some work to properly handle unit addresses, but hope
> > > that's enough to give the rough idea.
> > >
> > > So, what does the thing that goes in the socket look like? I'm
> > > thinking some new dts syntax like this:
> > >
> > > /dts-v1/;
> > >
> > > /plugin/ foo,widget-socket {
> > > compatible = "foo,whirligig-widget";
> > > };
> > >
> > > &i2c {
> > > whirligig-controller@... {
> > > ...
> > > interrupt-parent = <&widget-irqs>;
> > > interrupts = <0>;
> > > };
> > > };

How would we support an expansion board that goes onto two
sockets/connectors provided by the baseboard when the connectors
"export" the same phandle aliases? From what I can tell with this design
we'll be unable to describe a device on the expansion board that is
wired to properties provided by the two connectors.