149c6bf62SShengjiu Wang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
249c6bf62SShengjiu Wang%YAML 1.2
349c6bf62SShengjiu Wang---
449c6bf62SShengjiu Wang$id: http://devicetree.org/schemas/sound/fsl,rpmsg.yaml#
549c6bf62SShengjiu Wang$schema: http://devicetree.org/meta-schemas/core.yaml#
649c6bf62SShengjiu Wang
749c6bf62SShengjiu Wangtitle: NXP Audio RPMSG CPU DAI Controller
849c6bf62SShengjiu Wang
949c6bf62SShengjiu Wangmaintainers:
1049c6bf62SShengjiu Wang  - Shengjiu Wang <shengjiu.wang@nxp.com>
1149c6bf62SShengjiu Wang
1249c6bf62SShengjiu Wangdescription: |
1349c6bf62SShengjiu Wang  fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
1449c6bf62SShengjiu Wang  are SAI, DMA controlled by Cortex M core. What we see from Linux
1549c6bf62SShengjiu Wang  side is a device which provides audio service by rpmsg channel.
1649c6bf62SShengjiu Wang
1749c6bf62SShengjiu Wangproperties:
1849c6bf62SShengjiu Wang  compatible:
1949c6bf62SShengjiu Wang    enum:
2049c6bf62SShengjiu Wang      - fsl,imx7ulp-rpmsg-audio
2149c6bf62SShengjiu Wang      - fsl,imx8mn-rpmsg-audio
2249c6bf62SShengjiu Wang      - fsl,imx8mm-rpmsg-audio
2349c6bf62SShengjiu Wang      - fsl,imx8mp-rpmsg-audio
2449c6bf62SShengjiu Wang
2549c6bf62SShengjiu Wang  model:
2649c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/string
2749c6bf62SShengjiu Wang    description: User specified audio sound card name
2849c6bf62SShengjiu Wang
2949c6bf62SShengjiu Wang  clocks:
3049c6bf62SShengjiu Wang    items:
3149c6bf62SShengjiu Wang      - description: Peripheral clock for register access
3249c6bf62SShengjiu Wang      - description: Master clock
3349c6bf62SShengjiu Wang      - description: DMA clock for DMA register access
3449c6bf62SShengjiu Wang      - description: Parent clock for multiple of 8kHz sample rates
3549c6bf62SShengjiu Wang      - description: Parent clock for multiple of 11kHz sample rates
3649c6bf62SShengjiu Wang
3749c6bf62SShengjiu Wang  clock-names:
3849c6bf62SShengjiu Wang    items:
3949c6bf62SShengjiu Wang      - const: ipg
4049c6bf62SShengjiu Wang      - const: mclk
4149c6bf62SShengjiu Wang      - const: dma
4249c6bf62SShengjiu Wang      - const: pll8k
4349c6bf62SShengjiu Wang      - const: pll11k
4449c6bf62SShengjiu Wang
4549c6bf62SShengjiu Wang  power-domains:
4649c6bf62SShengjiu Wang    description:
4749c6bf62SShengjiu Wang      List of phandle and PM domain specifier as documented in
4849c6bf62SShengjiu Wang      Documentation/devicetree/bindings/power/power_domain.txt
4949c6bf62SShengjiu Wang    maxItems: 1
5049c6bf62SShengjiu Wang
5149c6bf62SShengjiu Wang  memory-region:
52*c1761159SRob Herring    maxItems: 1
5349c6bf62SShengjiu Wang    description:
5449c6bf62SShengjiu Wang      phandle to a node describing reserved memory (System RAM memory)
5549c6bf62SShengjiu Wang      The M core can't access all the DDR memory space on some platform,
5649c6bf62SShengjiu Wang      So reserved a specific memory for dma buffer which M core can
5749c6bf62SShengjiu Wang      access.
5849c6bf62SShengjiu Wang      (see bindings/reserved-memory/reserved-memory.txt)
5949c6bf62SShengjiu Wang
6049c6bf62SShengjiu Wang  audio-codec:
6149c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/phandle
6249c6bf62SShengjiu Wang    description: The phandle to a node of audio codec
6349c6bf62SShengjiu Wang
6449c6bf62SShengjiu Wang  audio-routing:
6549c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
6649c6bf62SShengjiu Wang    description: |
6749c6bf62SShengjiu Wang      A list of the connections between audio components. Each entry is a
6849c6bf62SShengjiu Wang      pair of strings, the first being the connection's sink, the second
6949c6bf62SShengjiu Wang      being the connection's source.
7049c6bf62SShengjiu Wang
7149c6bf62SShengjiu Wang  fsl,enable-lpa:
7249c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/flag
7349c6bf62SShengjiu Wang    description: enable low power audio path.
7449c6bf62SShengjiu Wang
7549c6bf62SShengjiu Wang  fsl,rpmsg-out:
7649c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/flag
7749c6bf62SShengjiu Wang    description: |
7849c6bf62SShengjiu Wang      This is a boolean property. If present, the transmitting function
7949c6bf62SShengjiu Wang      will be enabled.
8049c6bf62SShengjiu Wang
8149c6bf62SShengjiu Wang  fsl,rpmsg-in:
8249c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/flag
8349c6bf62SShengjiu Wang    description: |
8449c6bf62SShengjiu Wang      This is a boolean property. If present, the receiving function
8549c6bf62SShengjiu Wang      will be enabled.
8649c6bf62SShengjiu Wang
8749c6bf62SShengjiu Wangrequired:
8849c6bf62SShengjiu Wang  - compatible
8949c6bf62SShengjiu Wang  - model
9049c6bf62SShengjiu Wang
9149c6bf62SShengjiu WangadditionalProperties: false
9249c6bf62SShengjiu Wang
9349c6bf62SShengjiu Wangexamples:
9449c6bf62SShengjiu Wang  - |
9549c6bf62SShengjiu Wang    #include <dt-bindings/clock/imx8mn-clock.h>
9649c6bf62SShengjiu Wang
9749c6bf62SShengjiu Wang    rpmsg_audio: rpmsg_audio {
9849c6bf62SShengjiu Wang        compatible = "fsl,imx8mn-rpmsg-audio";
9949c6bf62SShengjiu Wang        model = "wm8524-audio";
10049c6bf62SShengjiu Wang        fsl,enable-lpa;
10149c6bf62SShengjiu Wang        fsl,rpmsg-out;
10249c6bf62SShengjiu Wang        clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
10349c6bf62SShengjiu Wang                 <&clk IMX8MN_CLK_SAI3_ROOT>,
10449c6bf62SShengjiu Wang                 <&clk IMX8MN_CLK_SDMA3_ROOT>,
10549c6bf62SShengjiu Wang                 <&clk IMX8MN_AUDIO_PLL1_OUT>,
10649c6bf62SShengjiu Wang                 <&clk IMX8MN_AUDIO_PLL2_OUT>;
10749c6bf62SShengjiu Wang        clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
10849c6bf62SShengjiu Wang    };
109