[PATCH v3 2/2] i2c-mux-gpmux: Support settle-time-us property

From: Horatiu Vultur
Date: Mon Nov 01 2021 - 08:26:23 EST


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