Lines Matching +full:stm32 +full:- +full:dma
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/iio/adc/st,stm32-dfsdm-adc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: STMicroelectronics STM32 DFSDM ADC device driver
10 - Fabrice Gasnier <fabrice.gasnier@st.com>
11 - Olivier Moysan <olivier.moysan@st.com>
14 STM32 DFSDM ADC is a sigma delta analog-to-digital converter dedicated to
15 interface external sigma delta modulators to STM32 micro controllers.
17 - Sigma delta modulators (motor control, metering...)
18 - PDM microphones (audio digital microphone)
28 - st,stm32h7-dfsdm
29 - st,stm32mp1-dfsdm
36 - description:
39 - description: audio clock can be used as an alternate to feed CLKOUT.
42 clock-names:
44 - const: dfsdm
45 - const: audio
48 "#address-cells":
51 "#size-cells":
54 spi-max-frequency:
63 - compatible
64 - reg
65 - clocks
66 - clock-names
67 - "#address-cells"
68 - "#size-cells"
73 "^filter@[0-9]+$":
80 - st,stm32-dfsdm-adc
81 - st,stm32-dfsdm-dmic
90 st,adc-channels:
92 List of single-ended channels muxed for this ADC.
94 - For st,stm32-dfsdm-adc: up to 8 channels numbered from 0 to 7.
95 - For st,stm32-dfsdm-dmic: 1 channel numbered from 0 to 7.
96 $ref: /schemas/types.yaml#/definitions/uint32-array
101 st,adc-channel-names:
102 description: List of single-ended channel names.
104 st,filter-order:
107 - 0: FastSinC
108 - [1-5]: order 1 to 5.
115 "#io-channel-cells":
118 st,adc-channel-types:
120 Single-ended channel input type.
121 - "SPI_R": SPI with data on rising edge (default)
122 - "SPI_F": SPI with data on falling edge
123 - "MANCH_R": manchester codec, rising edge = logic 0, falling edge = logic 1
124 - "MANCH_F": manchester codec, rising edge = logic 1, falling edge = logic 0
127 $ref: /schemas/types.yaml#/definitions/non-unique-string-array
129 st,adc-channel-clk-src:
132 - "CLKIN": external SPI clock (CLKIN x)
133 - "CLKOUT": internal SPI clock (CLKOUT) (default)
134 - "CLKOUT_F": internal SPI clock divided by 2 (falling edge).
135 - "CLKOUT_R": internal SPI clock divided by 2 (rising edge).
138 $ref: /schemas/types.yaml#/definitions/non-unique-string-array
140 st,adc-alt-channel:
148 st,filter0-sync:
157 dma-names:
159 - const: rx
162 - compatible
163 - reg
164 - interrupts
165 - st,adc-channels
166 - st,adc-channel-names
167 - st,filter-order
168 - "#io-channel-cells"
171 - if:
175 const: st,stm32-dfsdm-adc
177 - then:
179 st,adc-channels:
183 st,adc-channel-names:
187 st,adc-channel-types:
191 st,adc-channel-clk-src:
195 io-channels:
201 - io-channels
203 - if:
207 const: st,stm32-dfsdm-dmic
209 - then:
211 st,adc-channels:
214 st,adc-channel-names:
217 st,adc-channel-types:
220 st,adc-channel-clk-src:
224 - dmas
225 - dma-names
228 "^dfsdm-dai+$":
235 - st,stm32h7-dfsdm-dai
237 "#sound-dai-cells":
240 io-channels:
246 - compatible
247 - "#sound-dai-cells"
248 - io-channels
251 - if:
255 const: st,stm32h7-dfsdm
257 - then:
259 "^filter@[0-9]+$":
266 - if:
270 const: st,stm32mp1-dfsdm
272 - then:
274 "^filter@[0-9]+$":
282 - |
283 #include <dt-bindings/interrupt-controller/arm-gic.h>
284 #include <dt-bindings/clock/stm32mp1-clks.h>
286 compatible = "st,stm32mp1-dfsdm";
289 clock-names = "dfsdm", "audio";
290 #address-cells = <1>;
291 #size-cells = <0>;
294 compatible = "st,stm32-dfsdm-dmic";
298 dma-names = "rx";
299 #io-channel-cells = <1>;
300 st,adc-channels = <1>;
301 st,adc-channel-names = "dmic0";
302 st,adc-channel-types = "SPI_R";
303 st,adc-channel-clk-src = "CLKOUT";
304 st,filter-order = <5>;
306 asoc_pdm0: dfsdm-dai {
307 compatible = "st,stm32h7-dfsdm-dai";
308 #sound-dai-cells = <0>;
309 io-channels = <&dfsdm0 0>;
314 compatible = "st,stm32-dfsdm-adc";
318 dma-names = "rx";
319 #io-channel-cells = <1>;
320 st,adc-channels = <2 3>;
321 st,adc-channel-names = "in2", "in3";
322 st,adc-channel-types = "SPI_R", "SPI_R";
323 st,adc-channel-clk-src = "CLKOUT_F", "CLKOUT_F";
324 io-channels = <&sd_adc2 &sd_adc3>;
325 st,filter-order = <1>;