This patch-set handles the Digital Filter for Sigma Delta modulators IP on STM32 platforms. DFSDM IP allows PDM microphone capture and sigma delta ADC conversion. Those two features are mixed into the registers of the same hardware block which lead to introduce a multifunction driver on the top of them to be able to share the registers. for This, MFD exports an API based on get/configure/start/stop/release mechanisms. Two kind of resources are handled by the MFD driver. - The filters: - 4 instances available for L4 and H7 - composed with a SInC filter and an integrator - The transceivers or channels - 8 instances available for L4 and H7 - can be connected to serial transceivers (SPI or Manchester mode) internal parallel transceivers (from memory or internal ADC) - associated monitoring: analog watchdog, short circuit detector, extreme detector (monitoring support will be part of a specific patch-set)) Principle OF the DFSDM IP is to connect one or several channels to a filter to process Sigma delta ADC or PDM microphone data. Two types of child devices can de declared: IIO for the management of Sigma Delta ADC conversion. ASoC for PDM microphone audio capture. For details on IP and use case examples please refer to this document: http://www.st.com/content/ccc/resource/training/technical/product_training/96/b6/2b/ea/72/3f/4e/d5/STM32L4_System_DFSDM.pdf/files/STM32L4_System_DFSDM.pdf/jcr:content/translations/en.STM32L4_System_DFSDM.pdf Remark: For audio part a patch is proposed to update core part to add copy support in soc_dmaengine_pcm. Rational is that output data register in DFSDM contains audio sample on 24 MSB + channel ID on the 8 LSB. Proposal is to allow to register a copy ops in soc_dmaengine_pcm to be able to perform post-processing. Back up if not accepted can be to create a pcm_engine in stm32 driver. Not part of this patch-set, but should come as add-on patches: - IIO management of Analog watchdog, short-circuit detection and clock absence detector, with associated IRQs management. - IIO trigger and buffer management. Arnaud Pouliquen (6): MFD: add bindings for STM32 DFSDM driver MFD: add STM32 DFSDM support IIO: add bindings for STM32 DFSDM ADC driver IIO: add STM32 DFSDM ADC support ASoC: add bindings for STM32 DFSDM driver ASoC: add STM32 DFSDM support olivier moysan (1): ASoC: dmaengine_pcm: add copy support .../bindings/iio/adc/st,stm32-dfsdm-adc.txt | 60 ++ .../devicetree/bindings/mfd/stm32-dfsdm.txt | 68 ++ .../devicetree/bindings/sound/st,sm32-adfsdm.txt | 84 ++ drivers/iio/adc/Kconfig | 9 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/stm32-dfsdm-adc.c | 676 +++++++++++++ drivers/mfd/Kconfig | 11 + drivers/mfd/Makefile | 2 + drivers/mfd/stm32-dfsdm-reg.h | 220 +++++ drivers/mfd/stm32-dfsdm.c | 1044 ++++++++++++++++++++ include/linux/mfd/stm32-dfsdm.h | 324 ++++++ include/sound/dmaengine_pcm.h | 3 + sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/soc-generic-dmaengine-pcm.c | 37 +- sound/soc/stm/Kconfig | 10 + sound/soc/stm/Makefile | 2 + sound/soc/stm/stm32_adfsdm.c | 686 +++++++++++++ 18 files changed, 3237 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.txt create mode 100644 Documentation/devicetree/bindings/mfd/stm32-dfsdm.txt create mode 100644 Documentation/devicetree/bindings/sound/st,sm32-adfsdm.txt create mode 100644 drivers/iio/adc/stm32-dfsdm-adc.c create mode 100644 drivers/mfd/stm32-dfsdm-reg.h create mode 100644 drivers/mfd/stm32-dfsdm.c create mode 100644 include/linux/mfd/stm32-dfsdm.h create mode 100644 sound/soc/stm/Kconfig create mode 100644 sound/soc/stm/Makefile create mode 100644 sound/soc/stm/stm32_adfsdm.c -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html