Commit e2af60f5 authored by Rasmus Villemoes's avatar Rasmus Villemoes Committed by Jonathan Cameron

iio: adc128s052: add proper .data members in adc128_of_match table

Prior to commit bd5d54e4 ("iio: adc128s052: add ACPI _HID
AANT1280"), the driver unconditionally used spi_get_device_id() to get
the index into the adc128_config array.

However, with that commit, OF-based boards now incorrectly treat all
supported sensors as if they are an adc128s052, because all the .data
members of the adc128_of_match table are implicitly 0. Our board,
which has an adc122s021, thus exposes 8 channels whereas it really
only has two.

Fixes: bd5d54e4 ("iio: adc128s052: add ACPI _HID AANT1280")
Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20221115132324.1078169-1-linux@rasmusvillemoes.dk
Cc: <Stable@vger.kernel.org>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 51bcacc6
...@@ -181,13 +181,13 @@ static int adc128_probe(struct spi_device *spi) ...@@ -181,13 +181,13 @@ static int adc128_probe(struct spi_device *spi)
} }
static const struct of_device_id adc128_of_match[] = { static const struct of_device_id adc128_of_match[] = {
{ .compatible = "ti,adc128s052", }, { .compatible = "ti,adc128s052", .data = (void*)0L, },
{ .compatible = "ti,adc122s021", }, { .compatible = "ti,adc122s021", .data = (void*)1L, },
{ .compatible = "ti,adc122s051", }, { .compatible = "ti,adc122s051", .data = (void*)1L, },
{ .compatible = "ti,adc122s101", }, { .compatible = "ti,adc122s101", .data = (void*)1L, },
{ .compatible = "ti,adc124s021", }, { .compatible = "ti,adc124s021", .data = (void*)2L, },
{ .compatible = "ti,adc124s051", }, { .compatible = "ti,adc124s051", .data = (void*)2L, },
{ .compatible = "ti,adc124s101", }, { .compatible = "ti,adc124s101", .data = (void*)2L, },
{ /* sentinel */ }, { /* sentinel */ },
}; };
MODULE_DEVICE_TABLE(of, adc128_of_match); MODULE_DEVICE_TABLE(of, adc128_of_match);
......
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