All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] Add STM32 DFSDM support
@ 2017-01-23 16:32 ` Arnaud Pouliquen
  0 siblings, 0 replies; 130+ messages in thread
From: Arnaud Pouliquen @ 2017-01-23 16:32 UTC (permalink / raw)
  To: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-iio-u79uwXL29TY76Z2rM5mHXA,
	alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Lee Jones, Rob Herring,
	Mark Rutland, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler, Jaroslav Kysela,
	Takashi Iwai, Liam Girdwood, Mark Brown
  Cc: Maxime Coquelin, Alexandre Torgue, arnaud.pouliquen-qxv4g6HH51o

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

^ permalink raw reply	[flat|nested] 130+ messages in thread

end of thread, other threads:[~2017-02-04 12:15 UTC | newest]

Thread overview: 130+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-23 16:32 [PATCH 0/7] Add STM32 DFSDM support Arnaud Pouliquen
2017-01-23 16:32 ` Arnaud Pouliquen
2017-01-23 16:32 ` Arnaud Pouliquen
2017-01-23 16:32 ` [PATCH 1/7] MFD: add bindings for STM32 DFSDM driver Arnaud Pouliquen
2017-01-23 16:32   ` Arnaud Pouliquen
2017-01-23 16:32   ` Arnaud Pouliquen
2017-01-27 20:53   ` Rob Herring
2017-01-27 20:53     ` Rob Herring
2017-01-27 20:53     ` Rob Herring
2017-01-30 13:16     ` Arnaud Pouliquen
2017-01-30 13:16       ` Arnaud Pouliquen
2017-01-30 13:16       ` Arnaud Pouliquen
     [not found] ` <1485189145-29576-1-git-send-email-arnaud.pouliquen-qxv4g6HH51o@public.gmane.org>
2017-01-23 16:32   ` [PATCH 2/7] MFD: add STM32 DFSDM support Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
     [not found]     ` <1485189145-29576-3-git-send-email-arnaud.pouliquen-qxv4g6HH51o@public.gmane.org>
2017-01-24  0:36       ` [alsa-devel] " kbuild test robot
2017-01-24  0:36         ` kbuild test robot
2017-01-24  0:36         ` kbuild test robot
2017-01-24  8:22       ` Lee Jones
2017-01-24  8:22         ` Lee Jones
2017-01-24  8:22         ` Lee Jones
2017-01-24  8:30         ` Arnaud Pouliquen
2017-01-24  8:30           ` Arnaud Pouliquen
2017-01-24  8:30           ` Arnaud Pouliquen
     [not found]           ` <283c0e48-55e2-6516-369d-91dc72d12f73-qxv4g6HH51o@public.gmane.org>
2017-01-24 11:36             ` Lee Jones
2017-01-24 11:36               ` Lee Jones
2017-01-24 11:36               ` Lee Jones
2017-01-24 13:32               ` Arnaud Pouliquen
2017-01-24 13:32                 ` Arnaud Pouliquen
2017-01-24 13:32                 ` Arnaud Pouliquen
2017-01-27 10:15                 ` Lee Jones
2017-01-27 10:15                   ` Lee Jones
2017-01-27 10:15                   ` Lee Jones
2017-01-27 13:45                   ` Arnaud Pouliquen
2017-01-27 13:45                     ` Arnaud Pouliquen
2017-01-27 13:45                     ` Arnaud Pouliquen
     [not found]                     ` <7b3eb38d-4fd1-2006-7423-94f2a7b38b27-qxv4g6HH51o@public.gmane.org>
2017-01-27 17:17                       ` Lee Jones
2017-01-27 17:17                         ` Lee Jones
2017-01-27 17:17                         ` Lee Jones
2017-01-29 12:28                         ` Jonathan Cameron
2017-01-29 12:28                           ` Jonathan Cameron
2017-01-29 12:28                           ` Jonathan Cameron
2017-01-29 14:19                           ` Lars-Peter Clausen
2017-01-29 14:19                             ` Lars-Peter Clausen
2017-01-29 14:19                             ` Lars-Peter Clausen
2017-01-29 14:34                             ` Lars-Peter Clausen
2017-01-29 14:34                               ` Lars-Peter Clausen
2017-01-29 14:34                               ` Lars-Peter Clausen
2017-01-30 11:13                               ` Arnaud Pouliquen
2017-01-30 11:13                                 ` Arnaud Pouliquen
2017-01-30 11:13                                 ` Arnaud Pouliquen
     [not found]                                 ` <2e6c07cb-f67b-64ff-530b-6bc2073272a9-qxv4g6HH51o@public.gmane.org>
2017-02-04 12:15                                   ` Jonathan Cameron
2017-02-04 12:15                                     ` Jonathan Cameron
2017-02-04 12:15                                     ` Jonathan Cameron
2017-01-31 15:30                             ` Arnaud Pouliquen
2017-01-31 15:30                               ` Arnaud Pouliquen
2017-01-31 15:30                               ` Arnaud Pouliquen
2017-01-30 11:23                         ` Arnaud Pouliquen
2017-01-30 11:23                           ` Arnaud Pouliquen
2017-01-30 11:23                           ` Arnaud Pouliquen
2017-01-29 17:50                       ` Mark Brown
2017-01-29 17:50                         ` Mark Brown
2017-01-29 17:50                         ` Mark Brown
2017-01-30 18:14                         ` Arnaud Pouliquen
2017-01-30 18:14                           ` Arnaud Pouliquen
2017-01-30 18:14                           ` Arnaud Pouliquen
2017-01-29 11:20                 ` Jonathan Cameron
2017-01-29 11:20                   ` Jonathan Cameron
2017-01-29 11:20                   ` Jonathan Cameron
2017-01-29 11:53       ` Jonathan Cameron
2017-01-29 11:53         ` Jonathan Cameron
2017-01-29 11:53         ` Jonathan Cameron
2017-01-30 15:08         ` Arnaud Pouliquen
2017-01-30 15:08           ` Arnaud Pouliquen
2017-01-30 15:08           ` Arnaud Pouliquen
2017-01-30 20:44           ` Jonathan Cameron
2017-01-30 20:44             ` Jonathan Cameron
2017-01-30 20:44             ` Jonathan Cameron
2017-01-23 16:32   ` [PATCH 3/7] IIO: add bindings for STM32 DFSDM ADC driver Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-29 11:58     ` Jonathan Cameron
2017-01-29 11:58       ` Jonathan Cameron
2017-01-29 11:58       ` Jonathan Cameron
2017-01-29 12:42       ` Jonathan Cameron
2017-01-29 12:42         ` Jonathan Cameron
2017-01-29 12:42         ` Jonathan Cameron
2017-01-31 14:10         ` Arnaud Pouliquen
2017-01-31 14:10           ` Arnaud Pouliquen
2017-01-31 14:10           ` Arnaud Pouliquen
     [not found]           ` <d9747aa9-e3c2-f280-7dca-8862e8e74e6e-qxv4g6HH51o@public.gmane.org>
2017-02-04 12:09             ` Jonathan Cameron
2017-02-04 12:09               ` Jonathan Cameron
2017-02-04 12:09               ` Jonathan Cameron
2017-01-30 15:26       ` Arnaud Pouliquen
2017-01-30 15:26         ` Arnaud Pouliquen
2017-01-30 15:26         ` Arnaud Pouliquen
2017-01-23 16:32   ` [PATCH 6/7] ASoC: add bindings for STM32 DFSDM driver Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-29 12:19     ` Jonathan Cameron
2017-01-29 12:19       ` Jonathan Cameron
2017-01-29 12:19       ` Jonathan Cameron
2017-01-30 17:32       ` Arnaud Pouliquen
2017-01-30 17:32         ` Arnaud Pouliquen
2017-01-30 17:32         ` Arnaud Pouliquen
     [not found]         ` <71612ea0-c9d0-a85e-2d58-72609df57e35-qxv4g6HH51o@public.gmane.org>
2017-02-04 12:13           ` Jonathan Cameron
2017-02-04 12:13             ` Jonathan Cameron
2017-02-04 12:13             ` Jonathan Cameron
2017-01-23 16:32   ` [PATCH 7/7] ASoC: add STM32 DFSDM support Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-23 16:32     ` Arnaud Pouliquen
2017-01-23 16:32 ` [PATCH 4/7] IIO: add STM32 DFSDM ADC support Arnaud Pouliquen
2017-01-23 16:32   ` Arnaud Pouliquen
2017-01-23 16:32   ` Arnaud Pouliquen
2017-01-23 19:40   ` [alsa-devel] " Peter Meerwald-Stadler
2017-01-29 12:15   ` Jonathan Cameron
2017-01-29 12:15     ` Jonathan Cameron
2017-01-29 12:15     ` Jonathan Cameron
2017-01-30 16:02     ` Arnaud Pouliquen
2017-01-30 16:02       ` Arnaud Pouliquen
2017-01-30 16:02       ` Arnaud Pouliquen
2017-01-23 16:32 ` [PATCH 5/7] ASoC: dmaengine_pcm: add copy support Arnaud Pouliquen
2017-01-23 16:32   ` Arnaud Pouliquen
2017-01-23 16:32   ` Arnaud Pouliquen
     [not found]   ` <1485189145-29576-6-git-send-email-arnaud.pouliquen-qxv4g6HH51o@public.gmane.org>
2017-01-23 17:50     ` Mark Brown
2017-01-23 17:50       ` Mark Brown
2017-01-23 17:50       ` Mark Brown
2017-01-24  2:14     ` [alsa-devel] " kbuild test robot
2017-01-24  2:14       ` kbuild test robot
2017-01-24  2:14       ` kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.