On Thu, 7 Dec 2023 15:38:53 -0300 Marcelo Schmitt <marcelo.schmitt@xxxxxxxxxx> wrote: > The ad7091r-base driver sets up an interrupt handler for firing events > when inputs are either above or below a certain threshold. > However, for the interrupt signal to come from the device it must be > configured to enable the ALERT/BUSY/GPO pin to be used as ALERT, which > was not being done until now. > Enable interrupt signals on the ALERT/BUSY/GPO pin by setting the proper > bit in the configuration register. > > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@xxxxxxxxxx> Also a fix? Feels like people expect this to work but I guess we could in theory call it a 'feature' given it never did :) Jonathan > --- > drivers/iio/adc/ad7091r-base.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/iio/adc/ad7091r-base.c b/drivers/iio/adc/ad7091r-base.c > index 0f192fbecbd4..6056a66d756c 100644 > --- a/drivers/iio/adc/ad7091r-base.c > +++ b/drivers/iio/adc/ad7091r-base.c > @@ -28,6 +28,7 @@ > #define AD7091R_REG_RESULT_CONV_RESULT(x) ((x) & 0xfff) > > /* AD7091R_REG_CONF */ > +#define AD7091R_REG_CONF_ALERT_EN BIT(4) > #define AD7091R_REG_CONF_AUTO BIT(8) > #define AD7091R_REG_CONF_CMD BIT(10) > > @@ -232,6 +233,11 @@ int ad7091r_probe(struct device *dev, const char *name, > iio_dev->channels = chip_info->channels; > > if (irq) { > + ret = regmap_update_bits(st->map, AD7091R_REG_CONF, > + AD7091R_REG_CONF_ALERT_EN, BIT(4)); > + if (ret) > + return ret; > + > dev_set_drvdata(st->dev, iio_dev); > ret = devm_request_threaded_irq(dev, irq, NULL, > ad7091r_event_handler,