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
24*4f89ff02SShengjiu Wang      - fsl,imx8ulp-rpmsg-audio
2549c6bf62SShengjiu Wang
2649c6bf62SShengjiu Wang  model:
2749c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/string
2849c6bf62SShengjiu Wang    description: User specified audio sound card name
2949c6bf62SShengjiu Wang
3049c6bf62SShengjiu Wang  clocks:
3149c6bf62SShengjiu Wang    items:
3249c6bf62SShengjiu Wang      - description: Peripheral clock for register access
3349c6bf62SShengjiu Wang      - description: Master clock
3449c6bf62SShengjiu Wang      - description: DMA clock for DMA register access
3549c6bf62SShengjiu Wang      - description: Parent clock for multiple of 8kHz sample rates
3649c6bf62SShengjiu Wang      - description: Parent clock for multiple of 11kHz sample rates
3749c6bf62SShengjiu Wang
3849c6bf62SShengjiu Wang  clock-names:
3949c6bf62SShengjiu Wang    items:
4049c6bf62SShengjiu Wang      - const: ipg
4149c6bf62SShengjiu Wang      - const: mclk
4249c6bf62SShengjiu Wang      - const: dma
4349c6bf62SShengjiu Wang      - const: pll8k
4449c6bf62SShengjiu Wang      - const: pll11k
4549c6bf62SShengjiu Wang
4649c6bf62SShengjiu Wang  power-domains:
4749c6bf62SShengjiu Wang    description:
4849c6bf62SShengjiu Wang      List of phandle and PM domain specifier as documented in
4949c6bf62SShengjiu Wang      Documentation/devicetree/bindings/power/power_domain.txt
5049c6bf62SShengjiu Wang    maxItems: 1
5149c6bf62SShengjiu Wang
5249c6bf62SShengjiu Wang  memory-region:
53c1761159SRob Herring    maxItems: 1
5449c6bf62SShengjiu Wang    description:
5549c6bf62SShengjiu Wang      phandle to a node describing reserved memory (System RAM memory)
5649c6bf62SShengjiu Wang      The M core can't access all the DDR memory space on some platform,
5749c6bf62SShengjiu Wang      So reserved a specific memory for dma buffer which M core can
5849c6bf62SShengjiu Wang      access.
5949c6bf62SShengjiu Wang      (see bindings/reserved-memory/reserved-memory.txt)
6049c6bf62SShengjiu Wang
6149c6bf62SShengjiu Wang  audio-codec:
6249c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/phandle
6349c6bf62SShengjiu Wang    description: The phandle to a node of audio codec
6449c6bf62SShengjiu Wang
6549c6bf62SShengjiu Wang  audio-routing:
6649c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
6749c6bf62SShengjiu Wang    description: |
6849c6bf62SShengjiu Wang      A list of the connections between audio components. Each entry is a
6949c6bf62SShengjiu Wang      pair of strings, the first being the connection's sink, the second
7049c6bf62SShengjiu Wang      being the connection's source.
7149c6bf62SShengjiu Wang
7249c6bf62SShengjiu Wang  fsl,enable-lpa:
7349c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/flag
7449c6bf62SShengjiu Wang    description: enable low power audio path.
7549c6bf62SShengjiu Wang
7649c6bf62SShengjiu Wang  fsl,rpmsg-out:
7749c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/flag
7849c6bf62SShengjiu Wang    description: |
7949c6bf62SShengjiu Wang      This is a boolean property. If present, the transmitting function
8049c6bf62SShengjiu Wang      will be enabled.
8149c6bf62SShengjiu Wang
8249c6bf62SShengjiu Wang  fsl,rpmsg-in:
8349c6bf62SShengjiu Wang    $ref: /schemas/types.yaml#/definitions/flag
8449c6bf62SShengjiu Wang    description: |
8549c6bf62SShengjiu Wang      This is a boolean property. If present, the receiving function
8649c6bf62SShengjiu Wang      will be enabled.
8749c6bf62SShengjiu Wang
8849c6bf62SShengjiu Wangrequired:
8949c6bf62SShengjiu Wang  - compatible
9049c6bf62SShengjiu Wang  - model
9149c6bf62SShengjiu Wang
9249c6bf62SShengjiu WangadditionalProperties: false
9349c6bf62SShengjiu Wang
9449c6bf62SShengjiu Wangexamples:
9549c6bf62SShengjiu Wang  - |
9649c6bf62SShengjiu Wang    #include <dt-bindings/clock/imx8mn-clock.h>
9749c6bf62SShengjiu Wang
9849c6bf62SShengjiu Wang    rpmsg_audio: rpmsg_audio {
9949c6bf62SShengjiu Wang        compatible = "fsl,imx8mn-rpmsg-audio";
10049c6bf62SShengjiu Wang        model = "wm8524-audio";
10149c6bf62SShengjiu Wang        fsl,enable-lpa;
10249c6bf62SShengjiu Wang        fsl,rpmsg-out;
10349c6bf62SShengjiu Wang        clocks = <&clk IMX8MN_CLK_SAI3_IPG>,
10449c6bf62SShengjiu Wang                 <&clk IMX8MN_CLK_SAI3_ROOT>,
10549c6bf62SShengjiu Wang                 <&clk IMX8MN_CLK_SDMA3_ROOT>,
10649c6bf62SShengjiu Wang                 <&clk IMX8MN_AUDIO_PLL1_OUT>,
10749c6bf62SShengjiu Wang                 <&clk IMX8MN_AUDIO_PLL2_OUT>;
10849c6bf62SShengjiu Wang        clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
10949c6bf62SShengjiu Wang    };
110