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

Andrew Davis
2025-09-23T16:53:05Z

On 9/23/25 8:36 AM, Herve Codina wrote:
> On Tue, 23 Sep 2025 12:29:27 +0200
> Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
>> Hi Hervé,
>>
>> On Tue, 23 Sept 2025 at 11:49, Herve Codina <herve.codina@bootlin.com> wrote:
>>> On Tue, 23 Sep 2025 18:09:13 +1000
>>> David Gibson <david@gibson.dropbear.id.au> 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.

Why should these drivers need hot-plug support, they are attached and then
the board is booted. Nothing is hot-plugged here.

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

The pointed out DTSO is a good example of exactly what needs to be supported,
clocks, pinmux, bidirectional endpoints will all be needed to support a large
number of add-on boards.

Andrew

> Best regards,
> Hervé
>