xref: /linux/Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml (revision b8f31b1d65e96e45ff94ddc8129f90c21f7c5a5f)
111183ac0SOlivier Moysan# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
211183ac0SOlivier Moysan%YAML 1.2
311183ac0SOlivier Moysan---
404dbd865SRob Herring$id: http://devicetree.org/schemas/iio/adc/st,stm32-dfsdm-adc.yaml#
511183ac0SOlivier Moysan$schema: http://devicetree.org/meta-schemas/core.yaml#
611183ac0SOlivier Moysan
711183ac0SOlivier Moysantitle: STMicroelectronics STM32 DFSDM ADC device driver
811183ac0SOlivier Moysan
911183ac0SOlivier Moysanmaintainers:
10f4eedebdSPatrice Chotard  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>
11f4eedebdSPatrice Chotard  - Olivier Moysan <olivier.moysan@foss.st.com>
1211183ac0SOlivier Moysan
1311183ac0SOlivier Moysandescription: |
1411183ac0SOlivier Moysan  STM32 DFSDM ADC is a sigma delta analog-to-digital converter dedicated to
1511183ac0SOlivier Moysan  interface external sigma delta modulators to STM32 micro controllers.
1611183ac0SOlivier Moysan  It is mainly targeted for:
1711183ac0SOlivier Moysan  - Sigma delta modulators (motor control, metering...)
1811183ac0SOlivier Moysan  - PDM microphones (audio digital microphone)
1911183ac0SOlivier Moysan
2011183ac0SOlivier Moysan  It features up to 8 serial digital interfaces (SPI or Manchester) and
2111183ac0SOlivier Moysan  up to 4 filters on stm32h7 or 6 filters on stm32mp1.
2211183ac0SOlivier Moysan
2311183ac0SOlivier Moysan  Each child node matches with a filter instance.
2411183ac0SOlivier Moysan
2511183ac0SOlivier Moysanproperties:
2611183ac0SOlivier Moysan  compatible:
2711183ac0SOlivier Moysan    enum:
2811183ac0SOlivier Moysan      - st,stm32h7-dfsdm
2911183ac0SOlivier Moysan      - st,stm32mp1-dfsdm
3011183ac0SOlivier Moysan
3111183ac0SOlivier Moysan  reg:
3211183ac0SOlivier Moysan    maxItems: 1
3311183ac0SOlivier Moysan
3411183ac0SOlivier Moysan  clocks:
3511183ac0SOlivier Moysan    items:
3611183ac0SOlivier Moysan      - description:
3711183ac0SOlivier Moysan          Internal clock used for DFSDM digital processing and control blocks.
3811183ac0SOlivier Moysan          dfsdm clock can also feed CLKOUT, when CLKOUT is used.
3911183ac0SOlivier Moysan      - description: audio clock can be used as an alternate to feed CLKOUT.
4011183ac0SOlivier Moysan    minItems: 1
4111183ac0SOlivier Moysan
4211183ac0SOlivier Moysan  clock-names:
4311183ac0SOlivier Moysan    items:
4411183ac0SOlivier Moysan      - const: dfsdm
4511183ac0SOlivier Moysan      - const: audio
4611183ac0SOlivier Moysan    minItems: 1
4711183ac0SOlivier Moysan
4811183ac0SOlivier Moysan  "#address-cells":
4911183ac0SOlivier Moysan    const: 1
5011183ac0SOlivier Moysan
5111183ac0SOlivier Moysan  "#size-cells":
5211183ac0SOlivier Moysan    const: 0
5311183ac0SOlivier Moysan
5411183ac0SOlivier Moysan  spi-max-frequency:
5511183ac0SOlivier Moysan    description:
5611183ac0SOlivier Moysan      SPI clock OUT frequency (Hz). Requested only for SPI master mode.
5711183ac0SOlivier Moysan      This clock must be set according to the "clock" property.
5811183ac0SOlivier Moysan      Frequency must be a multiple of the rcc clock frequency.
5911183ac0SOlivier Moysan      If not, SPI CLKOUT frequency will not be accurate.
6011183ac0SOlivier Moysan    maximum: 20000000
6111183ac0SOlivier Moysan
6202ec75edSGatien Chevallier  access-controllers:
6302ec75edSGatien Chevallier    minItems: 1
6402ec75edSGatien Chevallier    maxItems: 2
6502ec75edSGatien Chevallier
6611183ac0SOlivier Moysanrequired:
6711183ac0SOlivier Moysan  - compatible
6811183ac0SOlivier Moysan  - reg
6911183ac0SOlivier Moysan  - clocks
7011183ac0SOlivier Moysan  - clock-names
7111183ac0SOlivier Moysan  - "#address-cells"
7211183ac0SOlivier Moysan  - "#size-cells"
7311183ac0SOlivier Moysan
747f464532SRob HerringadditionalProperties: false
757f464532SRob Herring
7611183ac0SOlivier MoysanpatternProperties:
7711183ac0SOlivier Moysan  "^filter@[0-9]+$":
7811183ac0SOlivier Moysan    type: object
79c682c963SRob Herring    unevaluatedProperties: false
8011183ac0SOlivier Moysan    description: child node
8111183ac0SOlivier Moysan
8211183ac0SOlivier Moysan    properties:
8311183ac0SOlivier Moysan      compatible:
8411183ac0SOlivier Moysan        enum:
8511183ac0SOlivier Moysan          - st,stm32-dfsdm-adc
8611183ac0SOlivier Moysan          - st,stm32-dfsdm-dmic
8711183ac0SOlivier Moysan
8811183ac0SOlivier Moysan      reg:
8911183ac0SOlivier Moysan        description: Specifies the DFSDM filter instance used.
9011183ac0SOlivier Moysan        maxItems: 1
9111183ac0SOlivier Moysan
9211183ac0SOlivier Moysan      interrupts:
9311183ac0SOlivier Moysan        maxItems: 1
9411183ac0SOlivier Moysan
9511183ac0SOlivier Moysan      st,adc-channels:
9611183ac0SOlivier Moysan        description: |
9711183ac0SOlivier Moysan          List of single-ended channels muxed for this ADC.
9811183ac0SOlivier Moysan          On stm32h7 and stm32mp1:
9911183ac0SOlivier Moysan          - For st,stm32-dfsdm-adc: up to 8 channels numbered from 0 to 7.
10011183ac0SOlivier Moysan          - For st,stm32-dfsdm-dmic: 1 channel numbered from 0 to 7.
1013d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32-array
1023d21a460SRob Herring        items:
10311183ac0SOlivier Moysan          minimum: 0
10411183ac0SOlivier Moysan          maximum: 7
105*b8f31b1dSOlivier Moysan        deprecated: true
10611183ac0SOlivier Moysan
10711183ac0SOlivier Moysan      st,adc-channel-names:
10811183ac0SOlivier Moysan        description: List of single-ended channel names.
109*b8f31b1dSOlivier Moysan        deprecated: true
11011183ac0SOlivier Moysan
11111183ac0SOlivier Moysan      st,filter-order:
11211183ac0SOlivier Moysan        description: |
11311183ac0SOlivier Moysan          SinC filter order from 0 to 5.
11411183ac0SOlivier Moysan          - 0: FastSinC
11511183ac0SOlivier Moysan          - [1-5]: order 1 to 5.
11611183ac0SOlivier Moysan          For audio purpose it is recommended to use order 3 to 5.
1173d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
11811183ac0SOlivier Moysan        maximum: 5
11911183ac0SOlivier Moysan
12011183ac0SOlivier Moysan      "#io-channel-cells":
12111183ac0SOlivier Moysan        const: 1
12211183ac0SOlivier Moysan
123*b8f31b1dSOlivier Moysan      '#address-cells':
124*b8f31b1dSOlivier Moysan        const: 1
125*b8f31b1dSOlivier Moysan
126*b8f31b1dSOlivier Moysan      '#size-cells':
127*b8f31b1dSOlivier Moysan        const: 0
128*b8f31b1dSOlivier Moysan
12911183ac0SOlivier Moysan      st,adc-channel-types:
13011183ac0SOlivier Moysan        description: |
13111183ac0SOlivier Moysan          Single-ended channel input type.
13211183ac0SOlivier Moysan          - "SPI_R": SPI with data on rising edge (default)
13311183ac0SOlivier Moysan          - "SPI_F": SPI with data on falling edge
13411183ac0SOlivier Moysan          - "MANCH_R": manchester codec, rising edge = logic 0, falling edge = logic 1
13511183ac0SOlivier Moysan          - "MANCH_F": manchester codec, rising edge = logic 1, falling edge = logic 0
13611183ac0SOlivier Moysan        items:
13711183ac0SOlivier Moysan          enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ]
1383d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/non-unique-string-array
139*b8f31b1dSOlivier Moysan        deprecated: true
14011183ac0SOlivier Moysan
14111183ac0SOlivier Moysan      st,adc-channel-clk-src:
14211183ac0SOlivier Moysan        description: |
14311183ac0SOlivier Moysan          Conversion clock source.
14411183ac0SOlivier Moysan          - "CLKIN": external SPI clock (CLKIN x)
14511183ac0SOlivier Moysan          - "CLKOUT": internal SPI clock (CLKOUT) (default)
14611183ac0SOlivier Moysan          - "CLKOUT_F": internal SPI clock divided by 2 (falling edge).
14711183ac0SOlivier Moysan          - "CLKOUT_R": internal SPI clock divided by 2 (rising edge).
14811183ac0SOlivier Moysan        items:
14911183ac0SOlivier Moysan          enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ]
1503d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/non-unique-string-array
151*b8f31b1dSOlivier Moysan        deprecated: true
15211183ac0SOlivier Moysan
15311183ac0SOlivier Moysan      st,adc-alt-channel:
15411183ac0SOlivier Moysan        description:
15511183ac0SOlivier Moysan          Must be defined if two sigma delta modulators are
15611183ac0SOlivier Moysan          connected on same SPI input.
15711183ac0SOlivier Moysan          If not set, channel n is connected to SPI input n.
15811183ac0SOlivier Moysan          If set, channel n is connected to SPI input n + 1.
15911183ac0SOlivier Moysan        type: boolean
160*b8f31b1dSOlivier Moysan        deprecated: true
16111183ac0SOlivier Moysan
16211183ac0SOlivier Moysan      st,filter0-sync:
16311183ac0SOlivier Moysan        description:
16411183ac0SOlivier Moysan          Set to 1 to synchronize with DFSDM filter instance 0.
16511183ac0SOlivier Moysan          Used for multi microphones synchronization.
16611183ac0SOlivier Moysan        type: boolean
16711183ac0SOlivier Moysan
16811183ac0SOlivier Moysan      dmas:
16911183ac0SOlivier Moysan        maxItems: 1
17011183ac0SOlivier Moysan
17111183ac0SOlivier Moysan      dma-names:
17211183ac0SOlivier Moysan        items:
17311183ac0SOlivier Moysan          - const: rx
17411183ac0SOlivier Moysan
17511183ac0SOlivier Moysan    required:
17611183ac0SOlivier Moysan      - compatible
17711183ac0SOlivier Moysan      - reg
17811183ac0SOlivier Moysan      - interrupts
17911183ac0SOlivier Moysan      - st,filter-order
18011183ac0SOlivier Moysan      - "#io-channel-cells"
18111183ac0SOlivier Moysan
182*b8f31b1dSOlivier Moysan    patternProperties:
183*b8f31b1dSOlivier Moysan      "^channel@[0-7]$":
184*b8f31b1dSOlivier Moysan        type: object
185*b8f31b1dSOlivier Moysan        $ref: adc.yaml
186*b8f31b1dSOlivier Moysan        unevaluatedProperties: false
187*b8f31b1dSOlivier Moysan        description: Represents the external channels which are connected to the DFSDM.
188*b8f31b1dSOlivier Moysan
189*b8f31b1dSOlivier Moysan        properties:
190*b8f31b1dSOlivier Moysan          reg:
191*b8f31b1dSOlivier Moysan            maximum: 7
192*b8f31b1dSOlivier Moysan
193*b8f31b1dSOlivier Moysan          label:
194*b8f31b1dSOlivier Moysan            description:
195*b8f31b1dSOlivier Moysan              Unique name to identify which channel this is.
196*b8f31b1dSOlivier Moysan
197*b8f31b1dSOlivier Moysan          st,adc-channel-type:
198*b8f31b1dSOlivier Moysan            description: |
199*b8f31b1dSOlivier Moysan              Single-ended channel input type.
200*b8f31b1dSOlivier Moysan              - "SPI_R": SPI with data on rising edge (default)
201*b8f31b1dSOlivier Moysan              - "SPI_F": SPI with data on falling edge
202*b8f31b1dSOlivier Moysan              - "MANCH_R": manchester codec, rising edge = logic 0, falling edge = logic 1
203*b8f31b1dSOlivier Moysan              - "MANCH_F": manchester codec, rising edge = logic 1, falling edge = logic 0
204*b8f31b1dSOlivier Moysan            $ref: /schemas/types.yaml#/definitions/string
205*b8f31b1dSOlivier Moysan            enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ]
206*b8f31b1dSOlivier Moysan
207*b8f31b1dSOlivier Moysan          st,adc-channel-clk-src:
208*b8f31b1dSOlivier Moysan            description: |
209*b8f31b1dSOlivier Moysan              Conversion clock source.
210*b8f31b1dSOlivier Moysan              - "CLKIN": external SPI clock (CLKIN x)
211*b8f31b1dSOlivier Moysan              - "CLKOUT": internal SPI clock (CLKOUT) (default)
212*b8f31b1dSOlivier Moysan              - "CLKOUT_F": internal SPI clock divided by 2 (falling edge).
213*b8f31b1dSOlivier Moysan              - "CLKOUT_R": internal SPI clock divided by 2 (rising edge).
214*b8f31b1dSOlivier Moysan            $ref: /schemas/types.yaml#/definitions/string
215*b8f31b1dSOlivier Moysan            enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ]
216*b8f31b1dSOlivier Moysan
217*b8f31b1dSOlivier Moysan          st,adc-alt-channel:
218*b8f31b1dSOlivier Moysan            description:
219*b8f31b1dSOlivier Moysan              Must be defined if two sigma delta modulators are
220*b8f31b1dSOlivier Moysan              connected on same SPI input.
221*b8f31b1dSOlivier Moysan              If not set, channel n is connected to SPI input n.
222*b8f31b1dSOlivier Moysan              If set, channel n is connected to SPI input n + 1.
223*b8f31b1dSOlivier Moysan            type: boolean
224*b8f31b1dSOlivier Moysan
225*b8f31b1dSOlivier Moysan          io-backends:
226*b8f31b1dSOlivier Moysan            description:
227*b8f31b1dSOlivier Moysan              Used to pipe external sigma delta modulator or internal ADC backend to DFSDM channel.
228*b8f31b1dSOlivier Moysan            maxItems: 1
229*b8f31b1dSOlivier Moysan
230*b8f31b1dSOlivier Moysan        required:
231*b8f31b1dSOlivier Moysan          - reg
232*b8f31b1dSOlivier Moysan
23311183ac0SOlivier Moysan    allOf:
23411183ac0SOlivier Moysan      - if:
23511183ac0SOlivier Moysan          properties:
23611183ac0SOlivier Moysan            compatible:
23711183ac0SOlivier Moysan              contains:
23811183ac0SOlivier Moysan                const: st,stm32-dfsdm-adc
23911183ac0SOlivier Moysan
24027e4a85cSRob Herring        then:
24111183ac0SOlivier Moysan          properties:
24211183ac0SOlivier Moysan            st,adc-channels:
24311183ac0SOlivier Moysan              minItems: 1
24411183ac0SOlivier Moysan              maxItems: 8
24511183ac0SOlivier Moysan
24611183ac0SOlivier Moysan            st,adc-channel-names:
24711183ac0SOlivier Moysan              minItems: 1
24811183ac0SOlivier Moysan              maxItems: 8
24911183ac0SOlivier Moysan
25011183ac0SOlivier Moysan            st,adc-channel-types:
25111183ac0SOlivier Moysan              minItems: 1
25211183ac0SOlivier Moysan              maxItems: 8
25311183ac0SOlivier Moysan
25411183ac0SOlivier Moysan            st,adc-channel-clk-src:
25511183ac0SOlivier Moysan              minItems: 1
25611183ac0SOlivier Moysan              maxItems: 8
25711183ac0SOlivier Moysan
25811183ac0SOlivier Moysan            io-channels:
25911183ac0SOlivier Moysan              description:
26011183ac0SOlivier Moysan                From common IIO binding. Used to pipe external sigma delta
26111183ac0SOlivier Moysan                modulator or internal ADC output to DFSDM channel.
262*b8f31b1dSOlivier Moysan              deprecated: true
26311183ac0SOlivier Moysan
264*b8f31b1dSOlivier Moysan          if:
265*b8f31b1dSOlivier Moysan            required:
266*b8f31b1dSOlivier Moysan              - st,adc-channels
267*b8f31b1dSOlivier Moysan          then:
26811183ac0SOlivier Moysan            required:
26911183ac0SOlivier Moysan              - io-channels
27011183ac0SOlivier Moysan
271*b8f31b1dSOlivier Moysan          patternProperties:
272*b8f31b1dSOlivier Moysan            "^channel@[0-7]$":
273*b8f31b1dSOlivier Moysan              required:
274*b8f31b1dSOlivier Moysan                - io-backends
275*b8f31b1dSOlivier Moysan
27611183ac0SOlivier Moysan      - if:
27711183ac0SOlivier Moysan          properties:
27811183ac0SOlivier Moysan            compatible:
27911183ac0SOlivier Moysan              contains:
28011183ac0SOlivier Moysan                const: st,stm32-dfsdm-dmic
28111183ac0SOlivier Moysan
28227e4a85cSRob Herring        then:
28311183ac0SOlivier Moysan          properties:
28411183ac0SOlivier Moysan            st,adc-channels:
28511183ac0SOlivier Moysan              maxItems: 1
28611183ac0SOlivier Moysan
28711183ac0SOlivier Moysan            st,adc-channel-names:
28811183ac0SOlivier Moysan              maxItems: 1
28911183ac0SOlivier Moysan
29011183ac0SOlivier Moysan            st,adc-channel-types:
29111183ac0SOlivier Moysan              maxItems: 1
29211183ac0SOlivier Moysan
29311183ac0SOlivier Moysan            st,adc-channel-clk-src:
29411183ac0SOlivier Moysan              maxItems: 1
29511183ac0SOlivier Moysan
29611183ac0SOlivier Moysan          required:
29711183ac0SOlivier Moysan            - dmas
29811183ac0SOlivier Moysan            - dma-names
29911183ac0SOlivier Moysan
30011183ac0SOlivier Moysan          patternProperties:
30111183ac0SOlivier Moysan            "^dfsdm-dai+$":
30211183ac0SOlivier Moysan              type: object
303c682c963SRob Herring              additionalProperties: false
30411183ac0SOlivier Moysan              description: child node
30511183ac0SOlivier Moysan
30611183ac0SOlivier Moysan              properties:
307f24fd10bSOlivier Moysan                compatible:
308f24fd10bSOlivier Moysan                  enum:
309f24fd10bSOlivier Moysan                    - st,stm32h7-dfsdm-dai
310f24fd10bSOlivier Moysan
31111183ac0SOlivier Moysan                "#sound-dai-cells":
31211183ac0SOlivier Moysan                  const: 0
31311183ac0SOlivier Moysan
31411183ac0SOlivier Moysan                io-channels:
31511183ac0SOlivier Moysan                  description:
31611183ac0SOlivier Moysan                    From common IIO binding. Used to pipe external sigma delta
31711183ac0SOlivier Moysan                    modulator or internal ADC output to DFSDM channel.
31811183ac0SOlivier Moysan
31992436305SOlivier Moysan                port:
32092436305SOlivier Moysan                  $ref: /schemas/sound/audio-graph-port.yaml#
32192436305SOlivier Moysan                  unevaluatedProperties: false
32292436305SOlivier Moysan
32311183ac0SOlivier Moysan              required:
324f24fd10bSOlivier Moysan                - compatible
32511183ac0SOlivier Moysan                - "#sound-dai-cells"
32611183ac0SOlivier Moysan                - io-channels
32711183ac0SOlivier Moysan
32811183ac0SOlivier MoysanallOf:
32911183ac0SOlivier Moysan  - if:
33011183ac0SOlivier Moysan      properties:
33111183ac0SOlivier Moysan        compatible:
33211183ac0SOlivier Moysan          contains:
33311183ac0SOlivier Moysan            const: st,stm32h7-dfsdm
33411183ac0SOlivier Moysan
33527e4a85cSRob Herring    then:
33611183ac0SOlivier Moysan      patternProperties:
33711183ac0SOlivier Moysan        "^filter@[0-9]+$":
33811183ac0SOlivier Moysan          properties:
33911183ac0SOlivier Moysan            reg:
34011183ac0SOlivier Moysan              items:
34111183ac0SOlivier Moysan                minimum: 0
34211183ac0SOlivier Moysan                maximum: 3
34311183ac0SOlivier Moysan
34411183ac0SOlivier Moysan  - if:
34511183ac0SOlivier Moysan      properties:
34611183ac0SOlivier Moysan        compatible:
34711183ac0SOlivier Moysan          contains:
34811183ac0SOlivier Moysan            const: st,stm32mp1-dfsdm
34911183ac0SOlivier Moysan
35027e4a85cSRob Herring    then:
35111183ac0SOlivier Moysan      patternProperties:
35211183ac0SOlivier Moysan        "^filter@[0-9]+$":
35311183ac0SOlivier Moysan          properties:
35411183ac0SOlivier Moysan            reg:
35511183ac0SOlivier Moysan              items:
35611183ac0SOlivier Moysan                minimum: 0
35711183ac0SOlivier Moysan                maximum: 5
35811183ac0SOlivier Moysan
35911183ac0SOlivier Moysanexamples:
36011183ac0SOlivier Moysan  - |
36111183ac0SOlivier Moysan    #include <dt-bindings/interrupt-controller/arm-gic.h>
36211183ac0SOlivier Moysan    #include <dt-bindings/clock/stm32mp1-clks.h>
36311183ac0SOlivier Moysan    dfsdm: dfsdm@4400d000 {
36411183ac0SOlivier Moysan      compatible = "st,stm32mp1-dfsdm";
36511183ac0SOlivier Moysan      reg = <0x4400d000 0x800>;
36611183ac0SOlivier Moysan      clocks = <&rcc DFSDM_K>, <&rcc ADFSDM_K>;
36711183ac0SOlivier Moysan      clock-names = "dfsdm", "audio";
36811183ac0SOlivier Moysan      #address-cells = <1>;
36911183ac0SOlivier Moysan      #size-cells = <0>;
37011183ac0SOlivier Moysan
371*b8f31b1dSOlivier Moysan      // Example 1: Audio use case with generic binding
37211183ac0SOlivier Moysan      dfsdm0: filter@0 {
37311183ac0SOlivier Moysan        compatible = "st,stm32-dfsdm-dmic";
37411183ac0SOlivier Moysan        reg = <0>;
37511183ac0SOlivier Moysan        interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
37611183ac0SOlivier Moysan        dmas = <&dmamux1 101 0x400 0x01>;
37711183ac0SOlivier Moysan        dma-names = "rx";
37811183ac0SOlivier Moysan        #io-channel-cells = <1>;
379*b8f31b1dSOlivier Moysan        #address-cells = <1>;
380*b8f31b1dSOlivier Moysan        #size-cells = <0>;
38111183ac0SOlivier Moysan        st,filter-order = <5>;
38211183ac0SOlivier Moysan
383*b8f31b1dSOlivier Moysan        channel@1 {
384*b8f31b1dSOlivier Moysan          reg = <1>;
385*b8f31b1dSOlivier Moysan          label = "dmic0";
386*b8f31b1dSOlivier Moysan          st,adc-channel-type = "SPI_R";
387*b8f31b1dSOlivier Moysan          st,adc-channel-clk-src = "CLKOUT";
388*b8f31b1dSOlivier Moysan          st,adc-alt-channel;
389*b8f31b1dSOlivier Moysan        };
390*b8f31b1dSOlivier Moysan
39111183ac0SOlivier Moysan        asoc_pdm0: dfsdm-dai {
39211183ac0SOlivier Moysan          compatible = "st,stm32h7-dfsdm-dai";
39311183ac0SOlivier Moysan          #sound-dai-cells = <0>;
39411183ac0SOlivier Moysan          io-channels = <&dfsdm0 0>;
39511183ac0SOlivier Moysan        };
39611183ac0SOlivier Moysan      };
39711183ac0SOlivier Moysan
398*b8f31b1dSOlivier Moysan      // Example 2: Analog use case with generic binding
399*b8f31b1dSOlivier Moysan      dfsdm1: filter@1 {
40011183ac0SOlivier Moysan        compatible = "st,stm32-dfsdm-adc";
40111183ac0SOlivier Moysan        reg = <1>;
40211183ac0SOlivier Moysan        interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
40311183ac0SOlivier Moysan        dmas = <&dmamux1 102 0x400 0x01>;
40411183ac0SOlivier Moysan        dma-names = "rx";
40511183ac0SOlivier Moysan        st,filter-order = <1>;
406*b8f31b1dSOlivier Moysan        #io-channel-cells = <1>;
407*b8f31b1dSOlivier Moysan        #address-cells = <1>;
408*b8f31b1dSOlivier Moysan        #size-cells = <0>;
409*b8f31b1dSOlivier Moysan
410*b8f31b1dSOlivier Moysan        channel@2 {
411*b8f31b1dSOlivier Moysan          reg = <2>;
412*b8f31b1dSOlivier Moysan          label = "in2";
413*b8f31b1dSOlivier Moysan          st,adc-channel-type = "SPI_F";
414*b8f31b1dSOlivier Moysan          st,adc-channel-clk-src = "CLKOUT";
415*b8f31b1dSOlivier Moysan          st,adc-alt-channel;
416*b8f31b1dSOlivier Moysan          io-backends = <&sd_adc2>;
417*b8f31b1dSOlivier Moysan        };
418*b8f31b1dSOlivier Moysan
419*b8f31b1dSOlivier Moysan        channel@3 {
420*b8f31b1dSOlivier Moysan          reg = <3>;
421*b8f31b1dSOlivier Moysan          label = "in3";
422*b8f31b1dSOlivier Moysan          st,adc-channel-type = "SPI_R";
423*b8f31b1dSOlivier Moysan          st,adc-channel-clk-src = "CLKOUT";
424*b8f31b1dSOlivier Moysan          io-backends = <&sd_adc3>;
425*b8f31b1dSOlivier Moysan        };
42611183ac0SOlivier Moysan      };
42711183ac0SOlivier Moysan    };
42811183ac0SOlivier Moysan
42911183ac0SOlivier Moysan...
430