Commit ae47d009 authored by Miquel Raynal's avatar Miquel Raynal Committed by Jonathan Cameron

iio: adc: max1027: Introduce 12-bit devices support

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: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 7af5257d
...@@ -508,8 +508,8 @@ config MAX1027 ...@@ -508,8 +508,8 @@ config MAX1027
select IIO_BUFFER select IIO_BUFFER
select IIO_TRIGGERED_BUFFER select IIO_TRIGGERED_BUFFER
help help
Say yes here to build support for Maxim SPI ADC models Say yes here to build support for Maxim SPI {10,12}-bit ADC models:
max1027, max1029 and max1031. max1027, max1029, max1031, max1227, max1229 and max1231.
To compile this driver as a module, choose M here: the module will be To compile this driver as a module, choose M here: the module will be
called max1027. called max1027.
......
...@@ -63,12 +63,18 @@ enum max1027_id { ...@@ -63,12 +63,18 @@ enum max1027_id {
max1027, max1027,
max1029, max1029,
max1031, max1031,
max1227,
max1229,
max1231,
}; };
static const struct spi_device_id max1027_id[] = { static const struct spi_device_id max1027_id[] = {
{"max1027", max1027}, {"max1027", max1027},
{"max1029", max1029}, {"max1029", max1029},
{"max1031", max1031}, {"max1031", max1031},
{"max1227", max1227},
{"max1229", max1229},
{"max1231", max1231},
{} {}
}; };
MODULE_DEVICE_TABLE(spi, max1027_id); MODULE_DEVICE_TABLE(spi, max1027_id);
...@@ -78,6 +84,9 @@ static const struct of_device_id max1027_adc_dt_ids[] = { ...@@ -78,6 +84,9 @@ static const struct of_device_id max1027_adc_dt_ids[] = {
{ .compatible = "maxim,max1027" }, { .compatible = "maxim,max1027" },
{ .compatible = "maxim,max1029" }, { .compatible = "maxim,max1029" },
{ .compatible = "maxim,max1031" }, { .compatible = "maxim,max1031" },
{ .compatible = "maxim,max1227" },
{ .compatible = "maxim,max1229" },
{ .compatible = "maxim,max1231" },
{}, {},
}; };
MODULE_DEVICE_TABLE(of, max1027_adc_dt_ids); MODULE_DEVICE_TABLE(of, max1027_adc_dt_ids);
...@@ -153,6 +162,18 @@ static const struct iio_chan_spec max1031_channels[] = { ...@@ -153,6 +162,18 @@ static const struct iio_chan_spec max1031_channels[] = {
MAX1X31_CHANNELS(10), 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[] = { static const unsigned long max1027_available_scan_masks[] = {
0x000001ff, 0x000001ff,
0x00000000, 0x00000000,
...@@ -190,6 +211,21 @@ static const struct max1027_chip_info max1027_chip_info_tbl[] = { ...@@ -190,6 +211,21 @@ static const struct max1027_chip_info max1027_chip_info_tbl[] = {
.num_channels = ARRAY_SIZE(max1031_channels), .num_channels = ARRAY_SIZE(max1031_channels),
.available_scan_masks = max1031_available_scan_masks, .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 { struct max1027_state {
...@@ -486,5 +522,5 @@ static struct spi_driver max1027_driver = { ...@@ -486,5 +522,5 @@ static struct spi_driver max1027_driver = {
module_spi_driver(max1027_driver); module_spi_driver(max1027_driver);
MODULE_AUTHOR("Philippe Reynes <tremyfr@yahoo.fr>"); MODULE_AUTHOR("Philippe Reynes <tremyfr@yahoo.fr>");
MODULE_DESCRIPTION("MAX1027/MAX1029/MAX1031 ADC"); MODULE_DESCRIPTION("MAX1X27/MAX1X29/MAX1X31 ADC");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment