Re: [PATCH 2/2] iio: dac: mcp47feb02: add MCP48FEB02 SPI driver to MCP47FEB02 I2C driver

From: Jonathan Cameron

Date: Sun Apr 19 2026 - 12:17:42 EST


On Fri, 3 Apr 2026 13:50:14 +0300
Ariana Lazar <ariana.lazar@xxxxxxxxxxxxx> wrote:

> This is the iio driver for Microchip MCP48FxBy1/2/4/8 series of
> buffered voltage output Digital-to-Analog Converters with nonvolatile or
> volatile memory on top of MCP47FEB02. The families support up to 8
> output channels and have 8-bit, 10-bit or 12-bit resolution.
>
> The MCP47FEB02 driver was split into three modules: mcp47feb02-core.c,
> mcp47feb02-i2c.c and mcp47feb02-spi.c in order to support both DAC families
> - I2C (MCP47F(E/V)BXX) and SPI (MCP48F(E/V)BXX).
Normal flow is to do a noop refactor for I2C + core split, then a follow
up patch to add anything new (SPI driver + any changes that are only needed
by SPI to the core module)

>
> Fixes: bf394cc80369 ("iio: dac: adding support for Microchip MCP47FEB02")
> Signed-off-by: Ariana Lazar <ariana.lazar@xxxxxxxxxxxxx>
> Link: https://lore.kernel.org/all/aY4yaVP2TQFRI1E4@xxxxxxxxxxxxxxxxxx/
> ---
> MAINTAINERS | 4 +
> drivers/iio/dac/Kconfig | 29 +-
> drivers/iio/dac/Makefile | 3 +
> drivers/iio/dac/mcp47feb02-core.c | 845 ++++++++++++++++++++++++++++++++++++++
> drivers/iio/dac/mcp47feb02-i2c.c | 145 +++++++
> drivers/iio/dac/mcp47feb02-spi.c | 145 +++++++
> drivers/iio/dac/mcp47feb02.h | 158 +++++++

Given the description I'm a bit lost on why there isn't a mass of code being
removed from mcp47feb02.c as it migrates to the core library.

Anyhow one thing I noticed whilst glancing through this.

> 7 files changed, 1328 insertions(+), 1 deletion(-)

> diff --git a/drivers/iio/dac/mcp47feb02-spi.c b/drivers/iio/dac/mcp47feb02-spi.c
> new file mode 100644
> index 0000000000000000000000000000000000000000..82e99388ac75860d534d0f2cc05dcc6628d96f6b
> --- /dev/null
> +++ b/drivers/iio/dac/mcp47feb02-spi.c
> @@ -0,0 +1,145 @@

> +
> +static struct spi_driver mcp47feb02_spi_driver = {
> + .driver = {
> + .name = "mcp47feb02",
> + .of_match_table = mcp47feb02_of_spi_match,

As attempting to align = is already broken, that is pretty strong example
for why it is rarely worth the pain. I'd just use a single space before the =
in all cases.

> + .pm = pm_sleep_ptr(&mcp47feb02_pm_ops),
> + },
> + .probe = mcp47feb02_spi_probe,
> + .id_table = mcp47feb02_spi_id,
> +};
> +module_spi_driver(mcp47feb02_spi_driver);