[PATCH v4 0/9] Refactor Microchip MCP47FEB02 I2C driver in separate modules to add support for MCP48FEB02 SPI driver
Ariana Lazar <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Refactor I2C driver implementation into separate modules in order to add support for SPI MCP48FxBy1/2/4/8 DAC family on top of the I2C implementation. The I2C and SPI devices have the same memory map and supported functionalities. Signed-off-by: Ariana Lazar <[email protected]> --- Changes in v4: - remove unused headers - add missing header types.h in protocol files - create 6 precursor commits before the refactor patch for handling: - comment typo - renaming command mask define - for an invalid label use a debug message instead of probe error - correct return value in store_eeprom_store() for false state case - correct channel gain formula - read DAC value register to initialize channel data struct field at probe - Link to v3: https://lore.kernel.org/r/[email protected] Changes in v3: - renumbering the patch version to include the first patch submision - fix review comments device tree binding: - change 'additionalProperties' to unevaluatedProperties - add else branch with spi-max-frequency in the condition which checks if a device has SPI interface - correct SPI address example - add clock polarity and clock phase properties for SPI devices - enumerate I2C devices in lexicographic order from the description section - specify supported SPI modes using dependencies - fix review comments driver: - remove unneccesarry libraries and add the missing ones - correct comment typo - return -ENODEV using dev_err_probe() in protocol probe functions - use named initializers - move defines for registers and enums from the header to the core file - add dev_set_drvdata() in probe() - move mutex aquiring from mcp47feb02_write_to_eeprom() to store_eeprom_store() - write correct value into Vref register in resume() - Link to v2: https://lore.kernel.org/r/[email protected] v2: - include in the same patch series the refactoring of the driver and the support for SPI devices, but in different patches - remove changes regarding review comments received not related to the code refactoring - first version of the combined refactoring I2C and adding support for SPI driver - Link to v1: https://lore.kernel.org/all/[email protected] v1: - first version which did not separate the refactoring and adding support for SPI devices (into different patches from the same series) --- Ariana Lazar (9): iio: dac: mcp47feb02: initialize dac_data field in channel data struct at probe iio: dac: mcp47feb02: correct gain bitshift at probe iio: dac: mcp47feb02: correct false state case in store_eeprom_store iio: dac: mcp47feb02: use dev_dbg for invalid label iio: dac: mcp47feb02: correct typo from a comment iio: dac: mcp47feb02: rename command mask define iio: dac: mcp47feb02: refactor MCP47FEB02 I2C driver into two modules dt-bindings: iio: dac: add support for MCP48FEB02 SPI iio: dac: add support for Microchip MCP48FEB02 .../bindings/iio/dac/microchip,mcp47feb02.yaml | 221 ++++++++++--- MAINTAINERS | 5 +- drivers/iio/dac/Kconfig | 33 +- drivers/iio/dac/Makefile | 4 +- .../iio/dac/{mcp47feb02.c => mcp47feb02-core.c} | 352 +++------------------ drivers/iio/dac/mcp47feb02-i2c.c | 145 +++++++++ drivers/iio/dac/mcp47feb02-spi.c | 145 +++++++++ drivers/iio/dac/mcp47feb02.h | 46 +++ 8 files changed, 585 insertions(+), 366 deletions(-) --- base-commit: 9c6acc6e6555d34198e45cb0d309569dfbadf929 change-id: 20260625-mcp47feb02_refactor-fa8420ae3282 Best regards, -- Ariana Lazar <[email protected]>