diff options
author | Vincent Whitchurch <vincent.whitchurch@axis.com> | 2021-10-07 15:46:39 +0200 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2021-10-21 20:02:42 +0100 |
commit | 17b5b576ff5faff99a4c8140d521cd4d7fff5c16 (patch) | |
tree | c0b7b88fc7c5bea50391a4322156218ed37fdfe8 /include/linux/mux/driver.h | |
parent | 796e5d0b1e9baa2c80c234efd54d561e6d1cf1e7 (diff) |
mux: add support for delay after muxing
Hardware may require some time for the muxed analog signals to settle
after the muxing is changed. Allow users of the mux subsystem to
specify this delay with the new mux_control_select_delay() function (and
the _try equivalent).
Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Peter Rosin <peda@axentia.se>
Link: https://lore.kernel.org/r/20211007134641.13417-2-vincent.whitchurch@axis.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'include/linux/mux/driver.h')
-rw-r--r-- | include/linux/mux/driver.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/mux/driver.h b/include/linux/mux/driver.h index 627a2c6bc02d..18824064f8c0 100644 --- a/include/linux/mux/driver.h +++ b/include/linux/mux/driver.h @@ -12,6 +12,7 @@ #include <dt-bindings/mux/mux.h> #include <linux/device.h> +#include <linux/ktime.h> #include <linux/semaphore.h> struct mux_chip; @@ -33,6 +34,7 @@ struct mux_control_ops { * @states: The number of mux controller states. * @idle_state: The mux controller state to use when inactive, or one * of MUX_IDLE_AS_IS and MUX_IDLE_DISCONNECT. + * @last_change: Timestamp of last change * * Mux drivers may only change @states and @idle_state, and may only do so * between allocation and registration of the mux controller. Specifically, @@ -47,6 +49,8 @@ struct mux_control { unsigned int states; int idle_state; + + ktime_t last_change; }; /** |