Re: Device tree representation of (hotplug) connectors: discussion at ELCE

Herve Codina <[email protected]> Tue, 23 Sep 2025 15:36:46 +0200
Newsgroups org.kernel.vger.devicetree-compiler,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Organization Bootlin
Message-ID <[email protected]>
On Tue, 23 Sep 2025 12:29:27 +0200
Geert Uytterhoeven <[email protected]> wrote:

> Hi Hervé,
> 
> On Tue, 23 Sept 2025 at 11:49, Herve Codina <[email protected]> wrote:
> > On Tue, 23 Sep 2025 18:09:13 +1000
> > David Gibson <[email protected]> wrote:  
> > > Ah, right.  To be clear: we absolutely don't want multiple addons
> > > altering the same nodes.  But I think we could do that in ways other
> > > than putting everything under a connector.  This is exactly why I
> > > think we should think this through as an end-to-end problem, rather
> > > trying to do it as a tweak to the existing (crap) overlay system.
> > >
> > > So, if we're thinking of this as an entirely new way of updating the
> > > base dt - not "an overlay" - we can decide on the rules to ensure that
> > > addition and removal is sane.  Two obvious ones I think we should
> > > definitely have are:
> > >
> > > a) Addons can only add completely new nodes, never modify existing
> > >    ones.  This means that whatever addons are present at runtime,
> > >    every node has a single well defined owner (either base board or
> > >    addon).  
> >
> > In this rule I suppose that "never modify existing ones" should be understood
> > as "never modify, add or remove properties in existing ones". Because, of course
> > adding a full node in a existing one is allowed (rule b).  
> 
> What if the add-on board contains a provider for the base board.
> E.g. the connector has a clock input, fed by an optional clock generator
> on the add-on board.  Hooking that into the system requires modifying
> a clocks property in the base board, cfr. [1].
> Or is there some other solution?
> 
> I was also wondering about endpoints, as they have two sides: one on
> the base board, and one on the add-on board. But it seems that typically
> both ends are added by the extension, so these fall under rule b.
> 
> Thanks!
> 
> [1] https://elixir.bootlin.com/linux/v6.16/source/arch/arm64/boot/dts/renesas/white-hawk-ard-audio-da7212.dtso#L165
> 

Hi Geert,

Addon DT we talk about is not a way to fine tune base board devices.

For the clock, you need a clock driver which is able to support clock hot-plugging.
Same for endpoint, the remote endpoint part should support hot-plugging.

I don't think that addon DT should support what is done in the dtso you pointed out.

Best regards,
Hervé