On Mon, Jan 23, 2017 at 05:32:19PM +0100, Arnaud Pouliquen wrote: > Add bindings information for STM32 Digital Filter for Sigma Delta modulators MFD driver > > Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxx> > --- > .../devicetree/bindings/mfd/stm32-dfsdm.txt | 68 ++++++++++++++++++++++ > 1 file changed, 68 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/stm32-dfsdm.txt > > diff --git a/Documentation/devicetree/bindings/mfd/stm32-dfsdm.txt b/Documentation/devicetree/bindings/mfd/stm32-dfsdm.txt > new file mode 100644 > index 0000000..e0b45ee > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/stm32-dfsdm.txt > @@ -0,0 +1,68 @@ > +STMicroelectronics STM32 Digital Filter for Sigma Delta Modulator (DFSDM) > +ulti-function device. > + > +The STM32 DFSDM device is a multifunction device that handles the DFSDM IP. > + > +The DFSDM IP allows to add processing on Sigma Delta ADC based on SinC filters. > +For this, a pool of m filters can be connected to a pool of n channels. > +For STM32H7 : m = 4, n = 8. > + > +Each channel n is assigned to the SPI or Manchester interface n or n + 1. > +Channels 0 to 2 can also be connected to ADC IP instance 1 to 3. > +Filtering result is stored in a left aligned register, with 8 LSB reserved for > +the input channel ID. > + > +Each filter instance supports two contexts to manage conversions, each one has > +its own configurable sequence and trigger: > +- regular conversion: used for single or continuous conversion. > +- injected conversions: used for triggered conversion. > + > +Interfaces supported: > +- sigma delta ADCs trough IIO framework. > +- PDM microphones through ASoC framework. Bindings describe h/w, not Linux subsystems. > + > +Required properties: > +- compatible: Must be "st,stm32h7-dfsdm". > +- reg: Specifies the DFSDM block register address and length. > +- interrupts: IRQ lines connected to each DFSDM filter instance. > +- clocks: IP and serial interfaces clocking. Should be set according > + to rcc clock ID and "clock-names". > +- clock-names: Input clock name "dfsdm_clk" must be defined, > + "audio_clk" is optional. If defined CLKOUT is based on the audio > + clock, else "dfsdm_clk" is used. _clk is redundant. > + > +Optional properties: > +- st,clkout-freq: clkout clock frequency (Hz).This clock must be set according > + to "clock" property. Frequency must be a multiple of the rcc > + clock frequency. If not, clkout frequency will not be > + accurate. What is CLKOUT connected to and will you need to describe that in DT? > +- pinctrl-names: set to "default". > +- pinctrl-0: List of phandles pointing to pin configuration nodes for DFSDM > + module. > + For Pinctrl properties see ../pinctrl/pinctrl-bindings.txt > +Example : > + dfsdm: dfsdm@4400D000 { > + compatible = "st,stm32h7-dfsdm"; > + reg = <0x40017000 0x400>; > + interrupts = <110>, <111>, <112>, <113>; > + clocks = <&timer_clk>; > + clock-names = "dfsdm_clk"; > + pinctrl-0 = <&dfsdm_ch0 &dfsdm_ch1>; > + pinctrl-names = "default"; > + st,clkout-freq = <2480000>; > + > + iio_dfsdm0: iio-dfsdm@0 { adc { > + compatible = "st,stm32-dfsdm-adc"; > + #io-channel-cells = <1>; > + reg = <0>; > + status = "disabled"; > + }; > + dai_dfsdm0: dfsdm-audio@0 { digital-mic { > + compatible = "st,stm32-dfsdm-audio"; > + #sound-dai-cells = <0>; > + reg = <0>; You can't have 2 children with the same unit address. Just drop reg and the unit address. > + dmas = <&dmamux1 101 0x400 0x00>; > + dma-names = "rx"; > + status = "disabled"; > + }; > + }; > -- > 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