Add support for settle-time-us property. If this is defined in device tree then add this delay to mux APIs. Signed-off-by: Lars Povlsen <lars.povlsen@xxxxxxxxxxxxx> Signed-off-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> --- drivers/i2c/muxes/i2c-mux-gpmux.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/muxes/i2c-mux-gpmux.c b/drivers/i2c/muxes/i2c-mux-gpmux.c index d3acd8d66c32..f64a4b6034df 100644 --- a/drivers/i2c/muxes/i2c-mux-gpmux.c +++ b/drivers/i2c/muxes/i2c-mux-gpmux.c @@ -16,6 +16,7 @@ struct mux { struct mux_control *control; + u32 delay_us; bool do_not_deselect; }; @@ -25,7 +26,7 @@ static int i2c_mux_select(struct i2c_mux_core *muxc, u32 chan) struct mux *mux = i2c_mux_priv(muxc); int ret; - ret = mux_control_select(mux->control, chan); + ret = mux_control_select_delay(mux->control, chan, mux->delay_us); mux->do_not_deselect = ret < 0; return ret; @@ -106,6 +107,7 @@ static int i2c_mux_probe(struct platform_device *pdev) platform_set_drvdata(pdev, muxc); + of_property_read_u32(np, "settle-time-us", &mux->delay_us); muxc->mux_locked = of_property_read_bool(np, "mux-locked"); for_each_child_of_node(np, child) { -- 2.33.0