Commit 39aa5040 authored by Vincent Whitchurch's avatar Vincent Whitchurch Committed by Jonathan Cameron
Browse files

iio: multiplexer: iio-mux: Support settle-time-us property



If the devicetree specifies that the hardware requires a settle time,
pass this time on to the mux APIs.

Signed-off-by: default avatarVincent Whitchurch <vincent.whitchurch@axis.com>
Reviewed-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Tested-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarPeter Rosin <peda@axentia.se>
Link: https://lore.kernel.org/r/20211007134641.13417-4-vincent.whitchurch@axis.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent b9221f71
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ struct mux {
	struct iio_chan_spec *chan;
	struct iio_chan_spec_ext_info *ext_info;
	struct mux_child *child;
	u32 delay_us;
};

static int iio_mux_select(struct mux *mux, int idx)
@@ -42,7 +43,8 @@ static int iio_mux_select(struct mux *mux, int idx)
	int ret;
	int i;

	ret = mux_control_select(mux->control, chan->channel);
	ret = mux_control_select_delay(mux->control, chan->channel,
				       mux->delay_us);
	if (ret < 0) {
		mux->cached_state = -1;
		return ret;
@@ -392,6 +394,9 @@ static int mux_probe(struct platform_device *pdev)
	mux->parent = parent;
	mux->cached_state = -1;

	mux->delay_us = 0;
	of_property_read_u32(np, "settle-time-us", &mux->delay_us);

	indio_dev->name = dev_name(dev);
	indio_dev->info = &mux_info;
	indio_dev->modes = INDIO_DIRECT_MODE;