]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: max1363: Fix MAX1363_4X_CHANS/MAX1363_8X_CHANS[]
authorFabio Estevam <festevam@denx.de>
Fri, 16 May 2025 17:38:59 +0000 (14:38 -0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 9 Jun 2025 06:45:19 +0000 (07:45 +0100)
Since commit 2718f15403fb ("iio: sanity check available_scan_masks array"),
booting a board populated with a MAX11601 results in a flood of warnings:

max1363 1-0064: available_scan_mask 8 subset of 0. Never used
max1363 1-0064: available_scan_mask 9 subset of 0. Never used
max1363 1-0064: available_scan_mask 10 subset of 0. Never used
max1363 1-0064: available_scan_mask 11 subset of 0. Never used
max1363 1-0064: available_scan_mask 12 subset of 0. Never used
max1363 1-0064: available_scan_mask 13 subset of 0. Never used
...

These warnings are caused by incorrect offsets used for differential
channels in the MAX1363_4X_CHANS() and MAX1363_8X_CHANS() macros.

The max1363_mode_table[] defines the differential channel mappings as
follows:

MAX1363_MODE_DIFF_SINGLE(0, 1, 1 << 12),
MAX1363_MODE_DIFF_SINGLE(2, 3, 1 << 13),
MAX1363_MODE_DIFF_SINGLE(4, 5, 1 << 14),
MAX1363_MODE_DIFF_SINGLE(6, 7, 1 << 15),
MAX1363_MODE_DIFF_SINGLE(8, 9, 1 << 16),
MAX1363_MODE_DIFF_SINGLE(10, 11, 1 << 17),
MAX1363_MODE_DIFF_SINGLE(1, 0, 1 << 18),
MAX1363_MODE_DIFF_SINGLE(3, 2, 1 << 19),
MAX1363_MODE_DIFF_SINGLE(5, 4, 1 << 20),
MAX1363_MODE_DIFF_SINGLE(7, 6, 1 << 21),
MAX1363_MODE_DIFF_SINGLE(9, 8, 1 << 22),
MAX1363_MODE_DIFF_SINGLE(11, 10, 1 << 23),

Update the macros to follow this same pattern, ensuring that the scan masks
are valid and preventing the warnings.

Cc: stable@vger.kernel.org
Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://patch.msgid.link/20250516173900.677821-1-festevam@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/max1363.c

index a7e9912fb44af8584a658ae8ff3b6dd3ee317785..bc44b4604ef4bd94a4b5c56ed8c61e6e7be53ec5 100644 (file)
@@ -511,10 +511,10 @@ static const struct iio_event_spec max1363_events[] = {
        MAX1363_CHAN_U(1, _s1, 1, bits, ev_spec, num_ev_spec),          \
        MAX1363_CHAN_U(2, _s2, 2, bits, ev_spec, num_ev_spec),          \
        MAX1363_CHAN_U(3, _s3, 3, bits, ev_spec, num_ev_spec),          \
-       MAX1363_CHAN_B(0, 1, d0m1, 4, bits, ev_spec, num_ev_spec),      \
-       MAX1363_CHAN_B(2, 3, d2m3, 5, bits, ev_spec, num_ev_spec),      \
-       MAX1363_CHAN_B(1, 0, d1m0, 6, bits, ev_spec, num_ev_spec),      \
-       MAX1363_CHAN_B(3, 2, d3m2, 7, bits, ev_spec, num_ev_spec),      \
+       MAX1363_CHAN_B(0, 1, d0m1, 12, bits, ev_spec, num_ev_spec),     \
+       MAX1363_CHAN_B(2, 3, d2m3, 13, bits, ev_spec, num_ev_spec),     \
+       MAX1363_CHAN_B(1, 0, d1m0, 18, bits, ev_spec, num_ev_spec),     \
+       MAX1363_CHAN_B(3, 2, d3m2, 19, bits, ev_spec, num_ev_spec),     \
        IIO_CHAN_SOFT_TIMESTAMP(8)                                      \
        }
 
@@ -609,14 +609,14 @@ static const enum max1363_modes max11608_mode_list[] = {
        MAX1363_CHAN_U(5, _s5, 5, bits, NULL, 0),       \
        MAX1363_CHAN_U(6, _s6, 6, bits, NULL, 0),       \
        MAX1363_CHAN_U(7, _s7, 7, bits, NULL, 0),       \
-       MAX1363_CHAN_B(0, 1, d0m1, 8, bits, NULL, 0),   \
-       MAX1363_CHAN_B(2, 3, d2m3, 9, bits, NULL, 0),   \
-       MAX1363_CHAN_B(4, 5, d4m5, 10, bits, NULL, 0),  \
-       MAX1363_CHAN_B(6, 7, d6m7, 11, bits, NULL, 0),  \
-       MAX1363_CHAN_B(1, 0, d1m0, 12, bits, NULL, 0),  \
-       MAX1363_CHAN_B(3, 2, d3m2, 13, bits, NULL, 0),  \
-       MAX1363_CHAN_B(5, 4, d5m4, 14, bits, NULL, 0),  \
-       MAX1363_CHAN_B(7, 6, d7m6, 15, bits, NULL, 0),  \
+       MAX1363_CHAN_B(0, 1, d0m1, 12, bits, NULL, 0),  \
+       MAX1363_CHAN_B(2, 3, d2m3, 13, bits, NULL, 0),  \
+       MAX1363_CHAN_B(4, 5, d4m5, 14, bits, NULL, 0),  \
+       MAX1363_CHAN_B(6, 7, d6m7, 15, bits, NULL, 0),  \
+       MAX1363_CHAN_B(1, 0, d1m0, 18, bits, NULL, 0),  \
+       MAX1363_CHAN_B(3, 2, d3m2, 19, bits, NULL, 0),  \
+       MAX1363_CHAN_B(5, 4, d5m4, 20, bits, NULL, 0),  \
+       MAX1363_CHAN_B(7, 6, d7m6, 21, bits, NULL, 0),  \
        IIO_CHAN_SOFT_TIMESTAMP(16)                     \
 }
 static const struct iio_chan_spec max11602_channels[] = MAX1363_8X_CHANS(8);