[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211028125341.2457171-3-horatiu.vultur@microchip.com>
Date: Thu, 28 Oct 2021 14:53:41 +0200
From: Horatiu Vultur <horatiu.vultur@...rochip.com>
To: <peda@...ntia.se>, <robh+dt@...nel.org>,
<linux-i2c@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
CC: Horatiu Vultur <horatiu.vultur@...rochip.com>,
Lars Povlsen <lars.povlsen@...rochip.com>
Subject: [PATCH v2 2/2] i2c-mux-gpmux: Support settle-time-us property
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@...rochip.com>
Signed-off-by: Horatiu Vultur <horatiu.vultur@...rochip.com>
---
drivers/i2c/muxes/i2c-mux-gpmux.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/muxes/i2c-mux-gpmux.c b/drivers/i2c/muxes/i2c-mux-gpmux.c
index d3acd8d66c32..569de1d8fdc1 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;
@@ -89,6 +90,9 @@ static int i2c_mux_probe(struct platform_device *pdev)
return dev_err_probe(dev, PTR_ERR(mux->control),
"failed to get control-mux\n");
+ mux->delay_us = 0;
+ of_property_read_u32(np, "settle-time-us", &mux->delay_us);
+
parent = mux_parent_adapter(dev);
if (IS_ERR(parent))
return dev_err_probe(dev, PTR_ERR(parent),
--
2.33.0
Powered by blists - more mailing lists