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
59  "#sound-dai-cells":
60    const: 0
61
62required:
63  - compatible
64  - reg
65  - interrupts
66  - dmas
67  - dma-names
68  - clocks
69  - clock-names
70
71additionalProperties: false
72
73examples:
74  - |
75    #include <dt-bindings/interrupt-controller/arm-gic.h>
76    #include <dt-bindings/clock/imx8mm-clock.h>
77    micfil: audio-controller@30080000 {
78        compatible = "fsl,imx8mm-micfil";
79        reg = <0x30080000 0x10000>;
80        interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
81                     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
82                     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
83                     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
84        clocks = <&clk IMX8MM_CLK_PDM_IPG>,
85                 <&clk IMX8MM_CLK_PDM_ROOT>;
86        clock-names = "ipg_clk", "ipg_clk_app";
87        dmas = <&sdma2 24 25 0>;
88        dma-names = "rx";
89    };
90