Re: [PATCH v2 2/2] iio: dac: mcp47a1: add support for new device
From: Jonathan Cameron
Date: Fri Jul 31 2026 - 22:32:33 EST
> diff --git a/drivers/iio/dac/mcp47a1.c b/drivers/iio/dac/mcp47a1.c
> new file mode 100644
> index 000000000000..140e93ff2ba0
> --- /dev/null
> +++ b/drivers/iio/dac/mcp47a1.c
> @@ -0,0 +1,169 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Microchip MCP47A1 DAC driver
> + *
> + * Copyright (c) 2026 Joshua Crofts <joshua.crofts1@xxxxxxxxx>
> + *
> + * Datasheet: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/25154A.pdf
> + */
> +
> +#include <linux/array_size.h>
> +#include <linux/delay.h>
> +#include <linux/err.h>
> +#include <linux/i2c.h>
> +#include <linux/module.h>
> +#include <linux/regulator/consumer.h>
> +#include <linux/types.h>
> +#include <linux/units.h>
> +
> +#include <linux/iio/iio.h>
> +
> +#define MCP47A1_REG_MAX 0x40
> +#define MCP47A1_CMD_CODE 0x00
> +#define MCP47A1_MAX_STEP 63
> +
> +struct mcp47a1_data {
> + struct i2c_client *client;
> + int vref_mV;
> +};
> +
> +static const int mcp47a1_raw_avail[] = { 0, 1, MCP47A1_MAX_STEP };
> +
> +static const struct iio_chan_spec mcp47a1_channels[] = {
> + {
> + .type = IIO_VOLTAGE,
> + .indexed = 1,
> + .output = 1,
> + .channel = 0,
> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> + .info_mask_separate_available = BIT(IIO_CHAN_INFO_RAW),
> + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
> + },
Given you are doing a v3 anyway, drop the array. A single channel
is fine - just use &mc47a1_channel when referring to it and provide
channel count of 1 directly (obviously correct as it is clear you
aren't pointing to an array).
> +};