Re: [PATCH v1 05/13] iio: dac: max5522: Simplify device abstraction

From: Jonathan Cameron

Date: Wed Jun 24 2026 - 13:41:49 EST


On Fri, 19 Jun 2026 17:54:33 +0200
Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@xxxxxxxxxxxx> wrote:

> 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@xxxxxxxxxxxx>
Hmm. This one was a bit silly wasn't it? :)

Applied.

> ---
> drivers/iio/dac/max5522.c | 31 +++----------------------------
> 1 file 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);