[PATCH 2/7] MFD: add STM32 DFSDM support

Arnaud Pouliquen arnaud.pouliquen at st.com
Tue Jan 24 05:32:13 PST 2017



On 01/24/2017 12:36 PM, Lee Jones wrote:
> On Tue, 24 Jan 2017, Arnaud Pouliquen wrote:
>> On 01/24/2017 09:22 AM, Lee Jones wrote:
>>> On Mon, 23 Jan 2017, Arnaud Pouliquen wrote:
>>>
>>>> DFSDM hardware IP can be used at the same time for ADC sigma delta
>>>
>>> Same time as what?
>> DFSDM is used for ADC acquisition (through IIO) but also PDM microphone
>> capture (through ASOC).
>>>
>>>> conversion and audio PDM microphone.
>>>> MFD driver is in charge of configuring IP registers and managing IP clocks.
>>>> For this it exports an API to handles filters and channels resources.
>>>
>>> This looks like an ADC driver?  What is it that makes it an MFD?
>> Yes it a kind of ADC but that supports 2 features audio and iio.
>> So it has to support 2 features based on 2 separate Frameworks.
> 
> I'm still unsure why it needs to live in MFD.
> 
> By the looks of it, this driver needs to move into IIO and you need to
> call into it from ASoC.
> 

I think i introduce confusion by speaking about ADC for audio...

1) IIO handles sigma delta ADCs that can be used as example for motor
controls. the aim is to get value based on an application request or
using some triggers.
example: http://www.ti.com/lit/ds/symlink/ads1202.pdf

2) For audio part, we speak about Digital mems microphones that generate
PDM format stream. PDM is a continuous real time stream dedicated to
audio record and must be handled in ASOC ( codec Dmic part driver is
/sound/soc/codec/dmic.c).
DMIC example:
http://www.st.com/content/ccc/resource/technical/document/datasheet/47/bd/d2/13/8d/fd/48/26/DM00121815.pdf/files/DM00121815.pdf/jcr:content/translations/en.DM00121815.pdf

Form my point of view it very strange to handle DMICs in IIO, as it is
not designed to support audio streams.it is two separate features that
are not compatible.

Now, from software point of view
That would means that IIO declares ADCs that it can not expose, because
DMIC is not IIO standard. But IIO inkern API needs that device is
declared... So i should define a specific API in IIO for ASOC driver.


>>>> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen at st.com>
>>>> ---
>>>>  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 ++++++++++++
>>>>  5 files changed, 1601 insertions(+)
>>>>  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
>>>>
>>>> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
>>>> index c6df644..4bb660b 100644
>>>> --- a/drivers/mfd/Kconfig
>>>> +++ b/drivers/mfd/Kconfig
>>>> @@ -1607,6 +1607,17 @@ config MFD_STW481X
>>>>  	  in various ST Microelectronics and ST-Ericsson embedded
>>>>  	  Nomadik series.
>>>>  
>>>> +config MFD_STM32_DFSDM
>>>> +	tristate "ST Microelectronics STM32 DFSDM"
>>>> +	depends on (ARCH_STM32 && OF) || COMPILE_TEST
>>>> +	select MFD_CORE
>>>> +	select REGMAP
>>>> +	select REGMAP_MMIO
>>>> +	help
>>>> +	  Select this option to enable the STM32 Digital Filter
>>>> +	  for Sigma Delta Modulators (DFSDM) driver used
>>>> +	  in various STM32 series.
>>>> +
>>>>  menu "Multimedia Capabilities Port drivers"
>>>>  	depends on ARCH_SA1100
>>>
>>> [...]
>>>
>>
>> Regards
>> Arnaud
> 



More information about the linux-arm-kernel mailing list