]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: ti-adc081c: use individual model structures instead of array
authorDavid Lechner <dlechner@baylibre.com>
Mon, 21 Jul 2025 22:12:47 +0000 (17:12 -0500)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 16 Aug 2025 10:57:05 +0000 (11:57 +0100)
Change the ti-adc081c driver to use individual model structures instead
of an array. This reduces the verbosity of the code. Also, the data is
now const as it should have been in the first place. The ADCxx1C_MODEL()
macro is dropped to be consistent with similar model definitions in
other drivers.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250721-iio-const-data-11-v2-1-c3fec12511ee@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ti-adc081c.c

index 4f514db5c26ea803660087ae02b2cf8ec71911e4..8ef51c57912de62b1d6a6913372b2cc8c6d463ae 100644 (file)
@@ -102,27 +102,23 @@ struct adcxx1c_model {
        int bits;
 };
 
-#define ADCxx1C_MODEL(_name, _bits)                                    \
-       {                                                               \
-               .channels = _name ## _channels,                         \
-               .bits = (_bits),                                        \
-       }
-
 DEFINE_ADCxx1C_CHANNELS(adc081c,  8);
 DEFINE_ADCxx1C_CHANNELS(adc101c, 10);
 DEFINE_ADCxx1C_CHANNELS(adc121c, 12);
 
-/* Model ids are indexes in _models array */
-enum adcxx1c_model_id {
-       ADC081C = 0,
-       ADC101C = 1,
-       ADC121C = 2,
+static const struct adcxx1c_model adc081c_model = {
+       .channels = adc081c_channels,
+       .bits = 8,
+};
+
+static const struct adcxx1c_model adc101c_model = {
+       .channels = adc101c_channels,
+       .bits = 10,
 };
 
-static struct adcxx1c_model adcxx1c_models[] = {
-       ADCxx1C_MODEL(adc081c,  8),
-       ADCxx1C_MODEL(adc101c, 10),
-       ADCxx1C_MODEL(adc121c, 12),
+static const struct adcxx1c_model adc121c_model = {
+       .channels = adc121c_channels,
+       .bits = 12,
 };
 
 static const struct iio_info adc081c_info = {
@@ -203,24 +199,24 @@ static int adc081c_probe(struct i2c_client *client)
 }
 
 static const struct i2c_device_id adc081c_id[] = {
-       { "adc081c", (kernel_ulong_t)&adcxx1c_models[ADC081C] },
-       { "adc101c", (kernel_ulong_t)&adcxx1c_models[ADC101C] },
-       { "adc121c", (kernel_ulong_t)&adcxx1c_models[ADC121C] },
+       { "adc081c", (kernel_ulong_t)&adc081c_model },
+       { "adc101c", (kernel_ulong_t)&adc101c_model },
+       { "adc121c", (kernel_ulong_t)&adc121c_model },
        { }
 };
 MODULE_DEVICE_TABLE(i2c, adc081c_id);
 
 static const struct acpi_device_id adc081c_acpi_match[] = {
        /* Used on some AAEON boards */
-       { "ADC081C", (kernel_ulong_t)&adcxx1c_models[ADC081C] },
+       { "ADC081C", (kernel_ulong_t)&adc081c_model },
        { }
 };
 MODULE_DEVICE_TABLE(acpi, adc081c_acpi_match);
 
 static const struct of_device_id adc081c_of_match[] = {
-       { .compatible = "ti,adc081c", .data = &adcxx1c_models[ADC081C] },
-       { .compatible = "ti,adc101c", .data = &adcxx1c_models[ADC101C] },
-       { .compatible = "ti,adc121c", .data = &adcxx1c_models[ADC121C] },
+       { .compatible = "ti,adc081c", .data = &adc081c_model },
+       { .compatible = "ti,adc101c", .data = &adc101c_model },
+       { .compatible = "ti,adc121c", .data = &adc121c_model },
        { }
 };
 MODULE_DEVICE_TABLE(of, adc081c_of_match);