]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iio: adc: max1027: Introduce 12-bit devices support
authorMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 11 Oct 2019 14:43:44 +0000 (16:43 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 15 Oct 2019 20:11:03 +0000 (21:11 +0100)
Maxim's max12xx series is very similar to the max10xx series, with the
difference of the measurements depth which is upgraded from 10 to 12
bits per channel. Everything else looks the same.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/Kconfig
drivers/iio/adc/max1027.c

index f0af3a42f53cf6d605b3c1ad413468bcdd9138dd..6ac16d738822eda2db8bdeffdb10f8eae59f65b4 100644 (file)
@@ -508,8 +508,8 @@ config MAX1027
        select IIO_BUFFER
        select IIO_TRIGGERED_BUFFER
        help
-         Say yes here to build support for Maxim SPI ADC models
-         max1027, max1029 and max1031.
+         Say yes here to build support for Maxim SPI {10,12}-bit ADC models:
+         max1027, max1029, max1031, max1227, max1229 and max1231.
 
          To compile this driver as a module, choose M here: the module will be
          called max1027.
index 8b449044bef5cc6405d8d8f886a8c95792031171..e171db20c04a7bbcc8d1c2745abcf5ebf4e47b2a 100644 (file)
@@ -63,12 +63,18 @@ enum max1027_id {
        max1027,
        max1029,
        max1031,
+       max1227,
+       max1229,
+       max1231,
 };
 
 static const struct spi_device_id max1027_id[] = {
        {"max1027", max1027},
        {"max1029", max1029},
        {"max1031", max1031},
+       {"max1227", max1227},
+       {"max1229", max1229},
+       {"max1231", max1231},
        {}
 };
 MODULE_DEVICE_TABLE(spi, max1027_id);
@@ -78,6 +84,9 @@ static const struct of_device_id max1027_adc_dt_ids[] = {
        { .compatible = "maxim,max1027" },
        { .compatible = "maxim,max1029" },
        { .compatible = "maxim,max1031" },
+       { .compatible = "maxim,max1227" },
+       { .compatible = "maxim,max1229" },
+       { .compatible = "maxim,max1231" },
        {},
 };
 MODULE_DEVICE_TABLE(of, max1027_adc_dt_ids);
@@ -153,6 +162,18 @@ static const struct iio_chan_spec max1031_channels[] = {
        MAX1X31_CHANNELS(10),
 };
 
+static const struct iio_chan_spec max1227_channels[] = {
+       MAX1X27_CHANNELS(12),
+};
+
+static const struct iio_chan_spec max1229_channels[] = {
+       MAX1X29_CHANNELS(12),
+};
+
+static const struct iio_chan_spec max1231_channels[] = {
+       MAX1X31_CHANNELS(12),
+};
+
 static const unsigned long max1027_available_scan_masks[] = {
        0x000001ff,
        0x00000000,
@@ -190,6 +211,21 @@ static const struct max1027_chip_info max1027_chip_info_tbl[] = {
                .num_channels = ARRAY_SIZE(max1031_channels),
                .available_scan_masks = max1031_available_scan_masks,
        },
+       [max1227] = {
+               .channels = max1227_channels,
+               .num_channels = ARRAY_SIZE(max1227_channels),
+               .available_scan_masks = max1027_available_scan_masks,
+       },
+       [max1229] = {
+               .channels = max1229_channels,
+               .num_channels = ARRAY_SIZE(max1229_channels),
+               .available_scan_masks = max1029_available_scan_masks,
+       },
+       [max1231] = {
+               .channels = max1231_channels,
+               .num_channels = ARRAY_SIZE(max1231_channels),
+               .available_scan_masks = max1031_available_scan_masks,
+       },
 };
 
 struct max1027_state {
@@ -486,5 +522,5 @@ static struct spi_driver max1027_driver = {
 module_spi_driver(max1027_driver);
 
 MODULE_AUTHOR("Philippe Reynes <tremyfr@yahoo.fr>");
-MODULE_DESCRIPTION("MAX1027/MAX1029/MAX1031 ADC");
+MODULE_DESCRIPTION("MAX1X27/MAX1X29/MAX1X31 ADC");
 MODULE_LICENSE("GPL v2");