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,rpmsg.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP Audio RPMSG CPU DAI Controller
8
9maintainers:
10  - Shengjiu Wang <shengjiu.wang@nxp.com>
11
12description: |
13  fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
14  are SAI, DMA controlled by Cortex M core. What we see from Linux
15  side is a device which provides audio service by rpmsg channel.
16
17properties:
18  compatible:
19    enum:
20      - fsl,imx7ulp-rpmsg-audio
21      - fsl,imx8mn-rpmsg-audio
22      - fsl,imx8mm-rpmsg-audio
23      - fsl,imx8mp-rpmsg-audio
24
25  model:
26    $ref: /schemas/types.yaml#/definitions/string
27    description: User specified audio sound card name
28
29  clocks:
30    items:
31      - description: Peripheral clock for register access
32      - description: Master clock
33      - description: DMA clock for DMA register access
34      - description: Parent clock for multiple of 8kHz sample rates
35      - description: Parent clock for multiple of 11kHz sample rates
36
37  clock-names:
38    items:
39      - const: ipg
40      - const: mclk
41      - const: dma
42      - const: pll8k
43      - const: pll11k
44
45  power-domains:
46    description:
47      List of phandle and PM domain specifier as documented in
48      Documentation/devicetree/bindings/power/power_domain.txt
49    maxItems: 1
50
51  memory-region:
52    maxItems: 1
53    description:
54      phandle to a node describing reserved memory (System RAM memory)
55      The M core can't access all the DDR memory space on some platform,
56      So reserved a specific memory for dma buffer which M core can
57      access.
58      (see bindings/reserved-memory/reserved-memory.txt)
59
60  audio-codec:
61    $ref: /schemas/types.yaml#/definitions/phandle
62    description: The phandle to a node of audio codec
63
64  audio-routing:
65    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
66    description: |
67      A list of the connections between audio components. Each entry is a
68      pair of strings, the first being the connection's sink, the second
69      being the connection's source.
70
71  fsl,enable-lpa:
72    $ref: /schemas/types.yaml#/definitions/flag
73    description: enable low power audio path.
74
75  fsl,rpmsg-out:
76    $ref: /schemas/types.yaml#/definitions/flag
77    description: |
78      This is a boolean property. If present, the transmitting function
79      will be enabled.
80
81  fsl,rpmsg-in:
82    $ref: /schemas/types.yaml#/definitions/flag
83    description: |
84      This is a boolean property. If present, the receiving function
85      will be enabled.
86
87required:
88  - compatible
89  - model
90
91additionalProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/clock/imx8mn-clock.h>
96
97    rpmsg_audio: rpmsg_audio {
98        compatible = "fsl,imx8mn-rpmsg-audio";
99        model = "wm8524-audio";
100        fsl,enable-lpa;
101        fsl,rpmsg-out;
102        clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
103                 <&clk IMX8MN_CLK_SAI3_ROOT>,
104                 <&clk IMX8MN_CLK_SDMA3_ROOT>,
105                 <&clk IMX8MN_AUDIO_PLL1_OUT>,
106                 <&clk IMX8MN_AUDIO_PLL2_OUT>;
107        clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
108    };
109