Re: [PATCH v4 05/29] dt-bindings: bus: Add simple-platform-bus

Rob Herring
2025-10-30T14:14:59Z

On Wed, Oct 15, 2025 at 09:13:52AM +0200, Herve Codina wrote:
> A Simple Platform Bus is a transparent bus that doesn't need a specific
> driver to perform operations at bus level.
>
> Similar to simple-bus, a Simple Platform Bus allows to automatically
> instantiate devices connected to this bus.
>
> Those devices are instantiated only by the Simple Platform Bus probe
> function itself.

Don't let Greg see this... :)

I can't say I'm a fan either. "Platform bus" is a kernel thing, and the
distinction here between the 2 compatibles is certainly a kernel thing.

I think this needs to be solved within the kernel.

What I previously said is define a list of compatibles to not
instantiate the child devices. This would essentially be any case having
a specific compatible and having its own driver. So if someone has
'compatible = "vendor,not-so-simple-bus", "simple-bus"', when and if
they add a driver for "vendor,not-so-simple-bus", then they have to add
the compatible to the list in the simple-pm-bus driver. I wouldn't
expect this to be a large list. There's only a handful of cases where
"simple-bus" has a more specific compatible. And only a few of those
have a driver. A more general and complicated solution would be making
linux handle 2 (or more) drivers matching a node and picking the driver
with most specific match. That gets complicated with built-in vs.
modules. I'm not sure we really need to solve that problem.

If we have to do something in the DT, then I think I prefer a property
to control the behavior. That way we have the option to ignore it.

Rob