summaryrefslogtreecommitdiff
path: root/drivers/iio/dac
diff options
context:
space:
mode:
authorUwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>2026-06-19 17:54:33 +0200
committerJonathan Cameron <jic23@kernel.org>2026-06-30 00:15:56 +0100
commit81c0bbfa510337b46b73e1bc734da7fa35d3f6fa (patch)
tree4b97d755e115e54157c7f0d2225dc8a6980241fa /drivers/iio/dac
parentd04a09b41d2e2d7c2063cf8f2addc1c6dd08de4b (diff)
downloadlinux-next-81c0bbfa510337b46b73e1bc734da7fa35d3f6fa.tar.gz
linux-next-81c0bbfa510337b46b73e1bc734da7fa35d3f6fa.zip
iio: dac: max5522: Simplify device abstraction
The driver only supports a single chip variant since it's birth in 2022. Both the spi id_table and the of id_table are essentially unused (only assigned to a write-only member in private data). Hardcode the device name and then drop various unused stuff from the driver. While touching the spi id_table assign .name using a named initializer. Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com> Reviewed-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/dac')
-rw-r--r--drivers/iio/dac/max5522.c31
1 files changed, 3 insertions, 28 deletions
diff --git a/drivers/iio/dac/max5522.c b/drivers/iio/dac/max5522.c
index b52a9cc1da79..cfbe3a6e0449 100644
--- a/drivers/iio/dac/max5522.c
+++ b/drivers/iio/dac/max5522.c
@@ -25,15 +25,8 @@
#define MAX5522_REG_DATA(x) ((x) + MAX5522_CTRL_LOAD_IN_A)
-struct max5522_chip_info {
- const char *name;
- const struct iio_chan_spec *channels;
- unsigned int num_channels;
-};
-
struct max5522_state {
struct regmap *regmap;
- const struct max5522_chip_info *chip_info;
unsigned short dac_cache[2];
int vref_mV;
};
@@ -58,18 +51,6 @@ static const struct iio_chan_spec max5522_channels[] = {
MAX5522_CHANNEL(1),
};
-enum max5522_type {
- ID_MAX5522,
-};
-
-static const struct max5522_chip_info max5522_chip_info_tbl[] = {
- [ID_MAX5522] = {
- .name = "max5522",
- .channels = max5522_channels,
- .num_channels = 2,
- },
-};
-
static inline int max5522_info_to_reg(struct iio_chan_spec const *chan)
{
return MAX5522_REG_DATA(chan->channel);
@@ -140,9 +121,6 @@ static int max5522_spi_probe(struct spi_device *spi)
}
state = iio_priv(indio_dev);
- state->chip_info = spi_get_device_match_data(spi);
- if (!state->chip_info)
- return -EINVAL;
ret = devm_regulator_get_enable_read_voltage(&spi->dev, "vrefin");
if (ret < 0)
@@ -159,22 +137,19 @@ static int max5522_spi_probe(struct spi_device *spi)
indio_dev->modes = INDIO_DIRECT_MODE;
indio_dev->channels = max5522_channels;
indio_dev->num_channels = ARRAY_SIZE(max5522_channels);
- indio_dev->name = max5522_chip_info_tbl[ID_MAX5522].name;
+ indio_dev->name = "max5522";
return devm_iio_device_register(&spi->dev, indio_dev);
}
static const struct spi_device_id max5522_ids[] = {
- { "max5522", (kernel_ulong_t)&max5522_chip_info_tbl[ID_MAX5522] },
+ { .name = "max5522" },
{ }
};
MODULE_DEVICE_TABLE(spi, max5522_ids);
static const struct of_device_id max5522_of_match[] = {
- {
- .compatible = "maxim,max5522",
- .data = &max5522_chip_info_tbl[ID_MAX5522],
- },
+ { .compatible = "maxim,max5522" },
{ }
};
MODULE_DEVICE_TABLE(of, max5522_of_match);