[PATCH v2] i2c: mux: Fix the crash when the i2c-arbitrator node is present
Heiko Schocher
hs at denx.de
Tue Jun 24 05:43:23 CEST 2025
Hello Venkatesh Yadav Abbarapu,
On 23.06.25 10:06, Venkatesh Yadav Abbarapu wrote:
> Observing the crash when we add the i2c-arbitrator node in the device
> tree as per the DT bindings. The issue is with the child node of
> i2c-arbitrator at 72 i.e., i2c at f1950000->i2c-arbitrator at 72->i2c-arb, as the
> arbitrator uses the uclass of mux(UCLASS_I2C_MUX) and the mux uclass driver
> checks for the "reg" property using the i2c_mux_child_post_bind() function,
> if it won't find the "reg" property it will return -EINVAL which is leading
> to the crash.
> So, add the logic to check whether the child node has the "reg" property,
> if the "reg" property exists then read the "reg" and update the channel.
>
> https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-arb.txt
>
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu at amd.com>
> ---
> Changes in v2:
> - Return immediately if "reg" property is missing for arbitrator case.
> ---
> drivers/i2c/muxes/i2c-mux-uclass.c | 5 +++++
> 1 file changed, 5 insertions(+)
Reviewed-by: Heiko Schocher <hs at denx.de>
@Tom: The fix looks valid for me, but I am unsure if it is not to
late for 2025.07. What do you think?
Thanks!
> diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c
> index d1999d21feb..012881de05b 100644
> --- a/drivers/i2c/muxes/i2c-mux-uclass.c
> +++ b/drivers/i2c/muxes/i2c-mux-uclass.c
> @@ -40,6 +40,11 @@ static int i2c_mux_child_post_bind(struct udevice *dev)
> struct i2c_mux_bus *plat = dev_get_parent_plat(dev);
> int channel;
>
> + ofnode node = dev_ofnode(dev);
> +
> + if (!ofnode_has_property(node, "reg"))
> + return 0;
> +
> channel = dev_read_u32_default(dev, "reg", -1);
> if (channel < 0)
> return -EINVAL;
>
bye,
Heiko
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs at denx.de
More information about the U-Boot
mailing list