Re: [PATCH v7 3/3] i2c: mux: Propagate software nodes to channel adapters
From: Andy Shevchenko
Date: Thu Aug 27 2026 - 02:11:44 EST
On Wed, Aug 26, 2026 at 08:29:47AM -0700, Ahmad Byagowi wrote:
> Hi Peter, Andy,
>
> Yes, software-node handling is needed for the ptp_ocp use case.
That driver is a mess. I'm surprised nobody told to the authors of
the respective changes to look at the auxiliary implementation.
> ptp_ocp is a PCI driver. It creates its board-specific I2C topology at
> runtime with software nodes: the mux, its channel nodes, sensors, and LED
> controller. Firmware does not provide ACPI nodes for this topology.
>
> The existing acpi_preset_companion() path only associates a mux adapter
> with an existing ACPI child. It does not associate the adapter with one of
> these dynamically created software-node channel nodes. Without that
> association, i2c_get_adapter_by_fwnode() cannot find the channel adapter by
> the channel software node, so ptp_ocp cannot instantiate the downstream I2C
> devices on the correct channel.
>
> Does this address the concern, or would you prefer a different way to
> represent this dynamically created topology?
Wouldn't it be possible to use some kind of DT overlay to have that?
> Thanks, Andi, for taking the first patch into i2c/i2c-fixes. I will drop it
> from the next revision and rebase the remaining two patches once this
> question is resolved.
> On Mon, Aug 24, 2026 at 10:50 PM Peter Rosin <peda@xxxxxxxxxxxxxx> wrote:
> > Den Sun, Aug 23, 2026 at 09:34:38AM -0700, skrev Ahmad Byagowi:
> > > Device Tree channel nodes are associated with the adapters created by
> > > i2c-mux, but equivalent software-node descriptions are not.
> > >
> > > Use generic firmware-node operations for the existing channel lookup and
> > > accept either an OF node or a software node. Associate the returned node
> > > with the adapter so child I2C devices can be instantiated from
> > > software-node properties.
> > >
> > > Save the adapter firmware node before adapter deletion and release the
> > > reference afterwards, following the lifetime pattern in i2c-atr.
--
With Best Regards,
Andy Shevchenko