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      - fsl,imx8ulp-rpmsg-audio
25
26  model:
27    $ref: /schemas/types.yaml#/definitions/string
28    description: User specified audio sound card name
29
30  clocks:
31    items:
32      - description: Peripheral clock for register access
33      - description: Master clock
34      - description: DMA clock for DMA register access
35      - description: Parent clock for multiple of 8kHz sample rates
36      - description: Parent clock for multiple of 11kHz sample rates
37
38  clock-names:
39    items:
40      - const: ipg
41      - const: mclk
42      - const: dma
43      - const: pll8k
44      - const: pll11k
45
46  power-domains:
47    description:
48      List of phandle and PM domain specifier as documented in
49      Documentation/devicetree/bindings/power/power_domain.txt
50    maxItems: 1
51
52  memory-region:
53    maxItems: 1
54    description:
55      phandle to a node describing reserved memory (System RAM memory)
56      The M core can't access all the DDR memory space on some platform,
57      So reserved a specific memory for dma buffer which M core can
58      access.
59      (see bindings/reserved-memory/reserved-memory.txt)
60
61  audio-codec:
62    $ref: /schemas/types.yaml#/definitions/phandle
63    description: The phandle to a node of audio codec
64
65  audio-routing:
66    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
67    description: |
68      A list of the connections between audio components. Each entry is a
69      pair of strings, the first being the connection's sink, the second
70      being the connection's source.
71
72  fsl,enable-lpa:
73    $ref: /schemas/types.yaml#/definitions/flag
74    description: enable low power audio path.
75
76  fsl,rpmsg-out:
77    $ref: /schemas/types.yaml#/definitions/flag
78    description: |
79      This is a boolean property. If present, the transmitting function
80      will be enabled.
81
82  fsl,rpmsg-in:
83    $ref: /schemas/types.yaml#/definitions/flag
84    description: |
85      This is a boolean property. If present, the receiving function
86      will be enabled.
87
88required:
89  - compatible
90  - model
91
92additionalProperties: false
93
94examples:
95  - |
96    #include <dt-bindings/clock/imx8mn-clock.h>
97
98    rpmsg_audio: rpmsg_audio {
99        compatible = "fsl,imx8mn-rpmsg-audio";
100        model = "wm8524-audio";
101        fsl,enable-lpa;
102        fsl,rpmsg-out;
103        clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
104                 <&clk IMX8MN_CLK_SAI3_ROOT>,
105                 <&clk IMX8MN_CLK_SDMA3_ROOT>,
106                 <&clk IMX8MN_AUDIO_PLL1_OUT>,
107                 <&clk IMX8MN_AUDIO_PLL2_OUT>;
108        clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
109    };
110