Re: [PATCH v2 5/7] iio: adc: max1027: Introduce 12-bit devices support

From: Jonathan Cameron
Date: Sun Oct 06 2019 - 06:25:20 EST


On Thu, 3 Oct 2019 19:33:59 +0200
Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:

> 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@xxxxxxxxxxx>
Looks good.

Thanks,

Jonathan

> ---
> drivers/iio/adc/Kconfig | 4 ++--
> drivers/iio/adc/max1027.c | 44 ++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 45 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
> index f0af3a42f53c..6ac16d738822 100644
> --- a/drivers/iio/adc/Kconfig
> +++ b/drivers/iio/adc/Kconfig
> @@ -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.
> diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
> index 5d5d223dd42a..0d7116e9a63b 100644
> --- a/drivers/iio/adc/max1027.c
> +++ b/drivers/iio/adc/max1027.c
> @@ -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,21 @@ 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[] = {
> + MAX1X27_CHANNELS(12),
> + MAX1X29_CHANNELS(12)
> +};
> +
> +static const struct iio_chan_spec max1231_channels[] = {
> + MAX1X27_CHANNELS(12),
> + MAX1X29_CHANNELS(12),
> + MAX1X31_CHANNELS(12)
> +};
> +
> static const unsigned long max1027_available_scan_masks[] = {
> 0x000001ff,
> 0x00000000,
> @@ -194,6 +218,24 @@ static const struct max1027_chip_info max1027_chip_info_tbl[] = {
> .depth = 10,
> .available_scan_masks = max1031_available_scan_masks,
> },
> + [max1227] = {
> + .channels = max1227_channels,
> + .num_channels = ARRAY_SIZE(max1227_channels),
> + .depth = 12,
> + .available_scan_masks = max1027_available_scan_masks,
> + },
> + [max1229] = {
> + .channels = max1229_channels,
> + .num_channels = ARRAY_SIZE(max1229_channels),
> + .depth = 12,
> + .available_scan_masks = max1029_available_scan_masks,
> + },
> + [max1231] = {
> + .channels = max1231_channels,
> + .num_channels = ARRAY_SIZE(max1231_channels),
> + .depth = 12,
> + .available_scan_masks = max1031_available_scan_masks,
> + },
> };
>
> struct max1027_state {
> @@ -490,5 +532,5 @@ static struct spi_driver max1027_driver = {
> module_spi_driver(max1027_driver);
>
> MODULE_AUTHOR("Philippe Reynes <tremyfr@xxxxxxxx>");
> -MODULE_DESCRIPTION("MAX1027/MAX1029/MAX1031 ADC");
> +MODULE_DESCRIPTION("MAX1X27/MAX1X29/MAX1X31 ADC");
> MODULE_LICENSE("GPL v2");