1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/fsl,micfil.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP MICFIL Digital Audio Interface (MICFIL)
8
9maintainers:
10  - Shengjiu Wang <shengjiu.wang@nxp.com>
11
12description: |
13  The MICFIL digital interface provides a 16-bit or 24-bit audio signal
14  from a PDM microphone bitstream in a configurable output sampling rate.
15
16properties:
17  compatible:
18    enum:
19      - fsl,imx8mm-micfil
20      - fsl,imx8mp-micfil
21      - fsl,imx93-micfil
22
23  reg:
24    maxItems: 1
25
26  interrupts:
27    items:
28      - description: Digital Microphone interface interrupt
29      - description: Digital Microphone interface error interrupt
30      - description: voice activity detector event interrupt
31      - description: voice activity detector error interrupt
32
33  dmas:
34    items:
35      - description: DMA controller phandle and request line for RX
36
37  dma-names:
38    items:
39      - const: rx
40
41  clocks:
42    items:
43      - description: The ipg clock for register access
44      - description: internal micfil clock
45      - description: PLL clock source for 8kHz series
46      - description: PLL clock source for 11kHz series
47      - description: External clock 3
48    minItems: 2
49
50  clock-names:
51    items:
52      - const: ipg_clk
53      - const: ipg_clk_app
54      - const: pll8k
55      - const: pll11k
56      - const: clkext3
57    minItems: 2
58
59required:
60  - compatible
61  - reg
62  - interrupts
63  - dmas
64  - dma-names
65  - clocks
66  - clock-names
67
68additionalProperties: false
69
70examples:
71  - |
72    #include <dt-bindings/interrupt-controller/arm-gic.h>
73    #include <dt-bindings/clock/imx8mm-clock.h>
74    micfil: audio-controller@30080000 {
75        compatible = "fsl,imx8mm-micfil";
76        reg = <0x30080000 0x10000>;
77        interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
78                     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
79                     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
80                     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
81        clocks = <&clk IMX8MM_CLK_PDM_IPG>,
82                 <&clk IMX8MM_CLK_PDM_ROOT>;
83        clock-names = "ipg_clk", "ipg_clk_app";
84        dmas = <&sdma2 24 25 0>;
85        dma-names = "rx";
86    };
87