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");