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, MICFIL, DMA controlled by Cortex M core. What we see from 15 Linux side is a device which provides audio service by rpmsg channel. 16 We can create different sound cards which access different hardwares 17 such as SAI, MICFIL, .etc through building rpmsg channels between 18 Cortex-A and Cortex-M. 19 20properties: 21 compatible: 22 enum: 23 - fsl,imx7ulp-rpmsg-audio 24 - fsl,imx8mn-rpmsg-audio 25 - fsl,imx8mm-rpmsg-audio 26 - fsl,imx8mp-rpmsg-audio 27 - fsl,imx8ulp-rpmsg-audio 28 - fsl,imx93-rpmsg-audio 29 30 model: 31 $ref: /schemas/types.yaml#/definitions/string 32 description: User specified audio sound card name 33 34 clocks: 35 items: 36 - description: Peripheral clock for register access 37 - description: Master clock 38 - description: DMA clock for DMA register access 39 - description: Parent clock for multiple of 8kHz sample rates 40 - description: Parent clock for multiple of 11kHz sample rates 41 42 clock-names: 43 items: 44 - const: ipg 45 - const: mclk 46 - const: dma 47 - const: pll8k 48 - const: pll11k 49 50 power-domains: 51 description: 52 List of phandle and PM domain specifier as documented in 53 Documentation/devicetree/bindings/power/power_domain.txt 54 maxItems: 1 55 56 memory-region: 57 maxItems: 1 58 description: 59 phandle to a node describing reserved memory (System RAM memory) 60 The M core can't access all the DDR memory space on some platform, 61 So reserved a specific memory for dma buffer which M core can 62 access. 63 (see bindings/reserved-memory/reserved-memory.txt) 64 65 audio-codec: 66 $ref: /schemas/types.yaml#/definitions/phandle 67 description: The phandle to a node of audio codec 68 69 audio-routing: 70 $ref: /schemas/types.yaml#/definitions/non-unique-string-array 71 description: | 72 A list of the connections between audio components. Each entry is a 73 pair of strings, the first being the connection's sink, the second 74 being the connection's source. 75 76 fsl,enable-lpa: 77 $ref: /schemas/types.yaml#/definitions/flag 78 description: enable low power audio path. 79 80 fsl,rpmsg-out: 81 $ref: /schemas/types.yaml#/definitions/flag 82 description: | 83 This is a boolean property. If present, the transmitting function 84 will be enabled. 85 86 fsl,rpmsg-in: 87 $ref: /schemas/types.yaml#/definitions/flag 88 description: | 89 This is a boolean property. If present, the receiving function 90 will be enabled. 91 92 fsl,rpmsg-channel-name: 93 $ref: /schemas/types.yaml#/definitions/string 94 description: | 95 A string property to assign rpmsg channel this sound card sits on. 96 This property can be omitted if there is only one sound card and it sits 97 on "rpmsg-audio-channel". 98 enum: 99 - rpmsg-audio-channel 100 - rpmsg-micfil-channel 101 102required: 103 - compatible 104 - model 105 106additionalProperties: false 107 108examples: 109 - | 110 #include <dt-bindings/clock/imx8mn-clock.h> 111 112 rpmsg_audio: rpmsg_audio { 113 compatible = "fsl,imx8mn-rpmsg-audio"; 114 model = "wm8524-audio"; 115 fsl,enable-lpa; 116 fsl,rpmsg-out; 117 clocks = <&clk IMX8MN_CLK_SAI3_IPG>, 118 <&clk IMX8MN_CLK_SAI3_ROOT>, 119 <&clk IMX8MN_CLK_SDMA3_ROOT>, 120 <&clk IMX8MN_AUDIO_PLL1_OUT>, 121 <&clk IMX8MN_AUDIO_PLL2_OUT>; 122 clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 123 }; 124 125 - | 126 #include <dt-bindings/clock/imx8mm-clock.h> 127 128 rpmsg_micfil: audio-controller { 129 compatible = "fsl,imx8mm-rpmsg-audio"; 130 model = "micfil-audio"; 131 fsl,rpmsg-channel-name = "rpmsg-micfil-channel"; 132 fsl,enable-lpa; 133 fsl,rpmsg-in; 134 clocks = <&clk IMX8MM_CLK_PDM_IPG>, 135 <&clk IMX8MM_CLK_PDM_ROOT>, 136 <&clk IMX8MM_CLK_SDMA3_ROOT>, 137 <&clk IMX8MM_AUDIO_PLL1_OUT>, 138 <&clk IMX8MM_AUDIO_PLL2_OUT>; 139 clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 140 }; 141 142... 143