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
22  reg:
23    maxItems: 1
24
25  interrupts:
26    items:
27      - description: Digital Microphone interface interrupt
28      - description: Digital Microphone interface error interrupt
29      - description: voice activity detector event interrupt
30      - description: voice activity detector error interrupt
31
32  dmas:
33    items:
34      - description: DMA controller phandle and request line for RX
35
36  dma-names:
37    items:
38      - const: rx
39
40  clocks:
41    items:
42      - description: The ipg clock for register access
43      - description: internal micfil clock
44      - description: PLL clock source for 8kHz series
45      - description: PLL clock source for 11kHz series
46      - description: External clock 3
47    minItems: 2
48
49  clock-names:
50    items:
51      - const: ipg_clk
52      - const: ipg_clk_app
53      - const: pll8k
54      - const: pll11k
55      - const: clkext3
56    minItems: 2
57
58required:
59  - compatible
60  - reg
61  - interrupts
62  - dmas
63  - dma-names
64  - clocks
65  - clock-names
66
67additionalProperties: false
68
69examples:
70  - |
71    #include <dt-bindings/interrupt-controller/arm-gic.h>
72    #include <dt-bindings/clock/imx8mm-clock.h>
73    micfil: audio-controller@30080000 {
74        compatible = "fsl,imx8mm-micfil";
75        reg = <0x30080000 0x10000>;
76        interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
77                     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
78                     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
79                     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
80        clocks = <&clk IMX8MM_CLK_PDM_IPG>,
81                 <&clk IMX8MM_CLK_PDM_ROOT>;
82        clock-names = "ipg_clk", "ipg_clk_app";
83        dmas = <&sdma2 24 25 0>;
84        dma-names = "rx";
85    };
86