Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / fsl,rpmsg.yaml
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
7 title: NXP Audio RPMSG CPU DAI Controller
8
9 maintainers:
10   - Shengjiu Wang <shengjiu.wang@nxp.com>
11
12 description: |
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
17 properties:
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
88 required:
89   - compatible
90   - model
91
92 additionalProperties: false
93
94 examples:
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     };