From a7c1456eb3e8f99ed908b2ccce9a4045c2d3c85e Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 14 Mar 2024 09:55:31 +0000 Subject: [PATCH 0965/1085] i2c: mux: Add support for generic base-nr property i2c_mux_add_adapter takes a force_nr parameter that allows an explicit bus number to be associated with a channel. However, only i2c-mux-reg and i2c-mux-gpio make use of it. To help with situations where it is desirable to have a fixed, known base address for the channels of a mux, create a "base-nr" property. When force_nr is 0 and base-nr is set and non-zero, form a force_nr value from the sum of base-nr and the channel ID. Signed-off-by: Phil Elwell --- drivers/i2c/i2c-mux.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -355,8 +355,13 @@ int i2c_mux_add_adapter(struct i2c_mux_c if (muxc->dev->of_node) { struct device_node *dev_node = muxc->dev->of_node; struct device_node *mux_node, *child = NULL; + u32 base_nr = 0; u32 reg; + of_property_read_u32(dev_node, "base-nr", &base_nr); + if (!force_nr) + force_nr = base_nr; + if (muxc->arbitrator) mux_node = of_get_child_by_name(dev_node, "i2c-arb"); else if (muxc->gate)