[PATCH v10 0/2] i2c: mux: Propagate firmware nodes to channel adapters

From: Ahmad Byagowi

Date: Tue Sep 08 2026 - 02:28:01 EST


Device Tree channel nodes are associated with the adapters created by
i2c-mux, but equivalent firmware-node descriptions are not. Convert the
existing lookup to generic firmware-node operations so software-node and
ACPI descriptions can use the same property traversal.

This is the remaining I2C prerequisite split out of the Time Card series.
The channel-node leak fix from v7 was applied to i2c-next as commit
385c7af4e3b9 ("i2c: mux: Fix channel node leak on adapter add failure"), so
it is no longer included here. The first patch factors the Device Tree
lookup into a helper without changing behavior. The second converts the
helper and node lifetime handling to generic firmware-node operations.

The existing acpi_preset_companion() call remains in place after the generic
lookup. A separate reference to the node returned by that lookup is retained
because ACPI companion setup may replace the adapter's primary firmware
node. The dependent ptp_ocp board profiles will be resent to net-next after
the LED and I2C prerequisites land.

Changes since v9:
- Declare dev_node, mux_node, and child on separate lines in both patches,
as requested by Peter Rosin and agreed by Andy Shevchenko.

The broader __free(fwnode_handle) cleanup remains a separate follow-up.

Validation:
- git diff --check
- strict checkpatch with an 80-column limit
- x86-64 GCC W=1 object build of drivers/i2c/i2c-mux.o
- mailbox replay onto the declared base with an identical resulting tree

v9: https://lore.kernel.org/r/cover.1788298883.git.ahmadexp@xxxxxxxxx/

Ahmad Byagowi (2):
i2c: mux: Factor out channel node lookup
i2c: mux: Propagate firmware nodes to channel adapters

drivers/i2c/i2c-mux.c | 98 +++++++++++++++++++++++--------------------
1 file changed, 52 insertions(+), 46 deletions(-)


base-commit: 1f3e66348d2527c31b9bedb0b4d9e28bdad9bc83
--
2.50.1 (Apple Git-155)