iio: adc: max1027: Ensure a default cnvst trigger configuration
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 21 Sep 2021 11:54:00 +0000 (13:54 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 19 Oct 2021 07:27:33 +0000 (08:27 +0100)
We don't expect the (hardware) cnvst trigger to be enabled at boot time,
this is a user choice made in sysfs and there is a dedicated callback to
enable/disable this trigger. Hence, we can just ensure it is disabled in
the probe at initialization time and then assume that whenever a
->read_raw() call happens, the trigger has been disabled and conversions
will start on register write.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20210921115408.66711-9-miquel.raynal@bootlin.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/max1027.c

index 66a040c..fe5e9f9 100644 (file)
@@ -303,10 +303,6 @@ static int max1027_read_single_value(struct iio_dev *indio_dev,
                return -EBUSY;
        }
 
-       ret = max1027_enable_trigger(indio_dev, false);
-       if (ret)
-               return ret;
-
        /* Configure conversion register with the requested chan */
        st->reg = MAX1027_CONV_REG | MAX1027_CHAN(chan->channel) |
                  MAX1027_NOSCAN;
@@ -558,6 +554,11 @@ static int max1027_probe(struct spi_device *spi)
                return ret;
        }
 
+       /* Assume conversion on register write for now */
+       ret = max1027_enable_trigger(indio_dev, false);
+       if (ret)
+               return ret;
+
        return devm_iio_device_register(&spi->dev, indio_dev);
 }