Linux Audio

Check our new training course

Yocto distribution development and maintenance

Need a Yocto distribution for your embedded project?
Loading...
  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    };