From: Marcelo Schmitt <marcelo.schmitt1@xxxxxxxxx> ----------------- Updates ----------------- Applied all changes suggested to the previous series. I tried to better explain the changes but, since there is a fair amount of rework in ad7091-base and ad7091r5, it may be hard to get the reasoning for the early patches before looking at the patch for ad7091r8. Change log v2 -> v3: - Split alert fix patch into 2 fix patches and one alignment cleanup patch - Corrected Fixes tag format - Moved MAINTAINERS update to the end of the series - Reworded some commit messages to provide context and make their goal clearer - Removed erroneous gmail sign off - Created container struct to store chip_info, regmap_config, and callbacks specific to each ADC design - Created callbacks for chip specific tasks such as setting device operation mode - Dropped the chip type enum struct - Applied suggestions related to device tree documentation - Added __aligned to list the of checkpatch attribute notes - Other code style tidy ups. I see regmap's interface for reading device registers under /sys/kernel/debug/regmap/. I can read all registers but can't write to any of them unless I force define REGMAP_ALLOW_WRITE_DEBUGFS. When testing events for this driver I often write to device registers to set different rising/falling thresholds. I do something like this: # echo 0x17 0x100 > /sys/kernel/debug/iio/iio:device0/direct_reg_access I tried read/writing to files under iio:device events directory but always get segmentation fault. I must be forgetting to implement something. What am I missing? Thanks Marcelo ----------------- Context ----------------- This series adds support for AD7091R-2/-4/-8 ADCs which can do single shot or sequenced readings. Threshold events are also supported. Overall, AD7091R-2/-4/-8 are very similar to AD7091R-5 except they use SPI interface. Changes have been tested with raspberrypi and eval board on raspberrypi kernel 6.7-rc3 from raspberrypi fork. Link: https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7091r8 Marcelo Schmitt (13): scripts: checkpatch: Add __aligned to the list of attribute notes iio: adc: ad7091r: Populate device driver data field iio: adc: ad7091r: Set alert bit in config register iio: adc: ad7091r: Align arguments to function call parenthesis iio: adc: ad7091r: Move generic AD7091R code to base driver and header file iio: adc: ad7091r: Move chip init data to container struct iio: adc: ad7091r: Set device mode through chip_info callback iio: adc: ad7091r: Enable internal vref if external vref is not supplied iio: adc: ad7091r: Add chip_info callback to get conversion result channel dt-bindings: iio: Add AD7091R-8 iio: adc: Split AD7091R-5 config symbol iio: adc: Add support for AD7091R-8 MAINTAINERS: Add MAINTAINERS entry for AD7091R .../bindings/iio/adc/adi,ad7091r8.yaml | 99 +++++++ MAINTAINERS | 12 + drivers/iio/adc/Kconfig | 16 ++ drivers/iio/adc/Makefile | 4 +- drivers/iio/adc/ad7091r-base.c | 141 ++++------ drivers/iio/adc/ad7091r-base.h | 78 +++++- drivers/iio/adc/ad7091r5.c | 119 ++++---- drivers/iio/adc/ad7091r8.c | 261 ++++++++++++++++++ scripts/checkpatch.pl | 1 + 9 files changed, 597 insertions(+), 134 deletions(-) create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7091r8.yaml create mode 100644 drivers/iio/adc/ad7091r8.c -- 2.42.0