12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 22eb4d8dcSEmmanuel Vadot%YAML 1.2 32eb4d8dcSEmmanuel Vadot--- 42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/fsl,rpmsg.yaml# 52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 62eb4d8dcSEmmanuel Vadot 72eb4d8dcSEmmanuel Vadottitle: NXP Audio RPMSG CPU DAI Controller 82eb4d8dcSEmmanuel Vadot 92eb4d8dcSEmmanuel Vadotmaintainers: 102eb4d8dcSEmmanuel Vadot - Shengjiu Wang <shengjiu.wang@nxp.com> 112eb4d8dcSEmmanuel Vadot 122eb4d8dcSEmmanuel Vadotdescription: | 132eb4d8dcSEmmanuel Vadot fsl_rpmsg is a virtual audio device. Mapping to real hardware devices 148bab661aSEmmanuel Vadot are SAI, MICFIL, DMA controlled by Cortex M core. What we see from 158bab661aSEmmanuel Vadot Linux side is a device which provides audio service by rpmsg channel. 168bab661aSEmmanuel Vadot We can create different sound cards which access different hardwares 178bab661aSEmmanuel Vadot such as SAI, MICFIL, .etc through building rpmsg channels between 188bab661aSEmmanuel Vadot Cortex-A and Cortex-M. 192eb4d8dcSEmmanuel Vadot 20*aa1a8ff2SEmmanuel VadotallOf: 21*aa1a8ff2SEmmanuel Vadot - $ref: sound-card-common.yaml# 22*aa1a8ff2SEmmanuel Vadot 232eb4d8dcSEmmanuel Vadotproperties: 242eb4d8dcSEmmanuel Vadot compatible: 252eb4d8dcSEmmanuel Vadot enum: 262eb4d8dcSEmmanuel Vadot - fsl,imx7ulp-rpmsg-audio 272eb4d8dcSEmmanuel Vadot - fsl,imx8mn-rpmsg-audio 282eb4d8dcSEmmanuel Vadot - fsl,imx8mm-rpmsg-audio 292eb4d8dcSEmmanuel Vadot - fsl,imx8mp-rpmsg-audio 30354d7675SEmmanuel Vadot - fsl,imx8ulp-rpmsg-audio 31*aa1a8ff2SEmmanuel Vadot - fsl,imx93-rpmsg-audio 322eb4d8dcSEmmanuel Vadot 332eb4d8dcSEmmanuel Vadot clocks: 342eb4d8dcSEmmanuel Vadot items: 352eb4d8dcSEmmanuel Vadot - description: Peripheral clock for register access 362eb4d8dcSEmmanuel Vadot - description: Master clock 372eb4d8dcSEmmanuel Vadot - description: DMA clock for DMA register access 382eb4d8dcSEmmanuel Vadot - description: Parent clock for multiple of 8kHz sample rates 392eb4d8dcSEmmanuel Vadot - description: Parent clock for multiple of 11kHz sample rates 402eb4d8dcSEmmanuel Vadot 412eb4d8dcSEmmanuel Vadot clock-names: 422eb4d8dcSEmmanuel Vadot items: 432eb4d8dcSEmmanuel Vadot - const: ipg 442eb4d8dcSEmmanuel Vadot - const: mclk 452eb4d8dcSEmmanuel Vadot - const: dma 462eb4d8dcSEmmanuel Vadot - const: pll8k 472eb4d8dcSEmmanuel Vadot - const: pll11k 482eb4d8dcSEmmanuel Vadot 492eb4d8dcSEmmanuel Vadot power-domains: 502eb4d8dcSEmmanuel Vadot description: 512eb4d8dcSEmmanuel Vadot List of phandle and PM domain specifier as documented in 522eb4d8dcSEmmanuel Vadot Documentation/devicetree/bindings/power/power_domain.txt 532eb4d8dcSEmmanuel Vadot maxItems: 1 542eb4d8dcSEmmanuel Vadot 552eb4d8dcSEmmanuel Vadot memory-region: 562eb4d8dcSEmmanuel Vadot maxItems: 1 572eb4d8dcSEmmanuel Vadot description: 582eb4d8dcSEmmanuel Vadot phandle to a node describing reserved memory (System RAM memory) 592eb4d8dcSEmmanuel Vadot The M core can't access all the DDR memory space on some platform, 602eb4d8dcSEmmanuel Vadot So reserved a specific memory for dma buffer which M core can 612eb4d8dcSEmmanuel Vadot access. 622eb4d8dcSEmmanuel Vadot (see bindings/reserved-memory/reserved-memory.txt) 632eb4d8dcSEmmanuel Vadot 642eb4d8dcSEmmanuel Vadot audio-codec: 652eb4d8dcSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 662eb4d8dcSEmmanuel Vadot description: The phandle to a node of audio codec 672eb4d8dcSEmmanuel Vadot 682eb4d8dcSEmmanuel Vadot fsl,enable-lpa: 692eb4d8dcSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 702eb4d8dcSEmmanuel Vadot description: enable low power audio path. 712eb4d8dcSEmmanuel Vadot 722eb4d8dcSEmmanuel Vadot fsl,rpmsg-out: 732eb4d8dcSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 742eb4d8dcSEmmanuel Vadot description: | 752eb4d8dcSEmmanuel Vadot This is a boolean property. If present, the transmitting function 762eb4d8dcSEmmanuel Vadot will be enabled. 772eb4d8dcSEmmanuel Vadot 782eb4d8dcSEmmanuel Vadot fsl,rpmsg-in: 792eb4d8dcSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 802eb4d8dcSEmmanuel Vadot description: | 812eb4d8dcSEmmanuel Vadot This is a boolean property. If present, the receiving function 822eb4d8dcSEmmanuel Vadot will be enabled. 832eb4d8dcSEmmanuel Vadot 848bab661aSEmmanuel Vadot fsl,rpmsg-channel-name: 858bab661aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 868bab661aSEmmanuel Vadot description: | 878bab661aSEmmanuel Vadot A string property to assign rpmsg channel this sound card sits on. 888bab661aSEmmanuel Vadot This property can be omitted if there is only one sound card and it sits 898bab661aSEmmanuel Vadot on "rpmsg-audio-channel". 908bab661aSEmmanuel Vadot enum: 918bab661aSEmmanuel Vadot - rpmsg-audio-channel 928bab661aSEmmanuel Vadot - rpmsg-micfil-channel 938bab661aSEmmanuel Vadot 942eb4d8dcSEmmanuel Vadotrequired: 952eb4d8dcSEmmanuel Vadot - compatible 962eb4d8dcSEmmanuel Vadot 97*aa1a8ff2SEmmanuel VadotunevaluatedProperties: false 982eb4d8dcSEmmanuel Vadot 992eb4d8dcSEmmanuel Vadotexamples: 1002eb4d8dcSEmmanuel Vadot - | 1012eb4d8dcSEmmanuel Vadot #include <dt-bindings/clock/imx8mn-clock.h> 1022eb4d8dcSEmmanuel Vadot 1032eb4d8dcSEmmanuel Vadot rpmsg_audio: rpmsg_audio { 1042eb4d8dcSEmmanuel Vadot compatible = "fsl,imx8mn-rpmsg-audio"; 1052eb4d8dcSEmmanuel Vadot model = "wm8524-audio"; 1062eb4d8dcSEmmanuel Vadot fsl,enable-lpa; 1072eb4d8dcSEmmanuel Vadot fsl,rpmsg-out; 1082eb4d8dcSEmmanuel Vadot clocks = <&clk IMX8MN_CLK_SAI3_IPG>, 1092eb4d8dcSEmmanuel Vadot <&clk IMX8MN_CLK_SAI3_ROOT>, 1102eb4d8dcSEmmanuel Vadot <&clk IMX8MN_CLK_SDMA3_ROOT>, 1112eb4d8dcSEmmanuel Vadot <&clk IMX8MN_AUDIO_PLL1_OUT>, 1122eb4d8dcSEmmanuel Vadot <&clk IMX8MN_AUDIO_PLL2_OUT>; 1132eb4d8dcSEmmanuel Vadot clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 1142eb4d8dcSEmmanuel Vadot }; 1158bab661aSEmmanuel Vadot 1168bab661aSEmmanuel Vadot - | 1178bab661aSEmmanuel Vadot #include <dt-bindings/clock/imx8mm-clock.h> 1188bab661aSEmmanuel Vadot 1198bab661aSEmmanuel Vadot rpmsg_micfil: audio-controller { 1208bab661aSEmmanuel Vadot compatible = "fsl,imx8mm-rpmsg-audio"; 1218bab661aSEmmanuel Vadot model = "micfil-audio"; 1228bab661aSEmmanuel Vadot fsl,rpmsg-channel-name = "rpmsg-micfil-channel"; 1238bab661aSEmmanuel Vadot fsl,enable-lpa; 1248bab661aSEmmanuel Vadot fsl,rpmsg-in; 1258bab661aSEmmanuel Vadot clocks = <&clk IMX8MM_CLK_PDM_IPG>, 1268bab661aSEmmanuel Vadot <&clk IMX8MM_CLK_PDM_ROOT>, 1278bab661aSEmmanuel Vadot <&clk IMX8MM_CLK_SDMA3_ROOT>, 1288bab661aSEmmanuel Vadot <&clk IMX8MM_AUDIO_PLL1_OUT>, 1298bab661aSEmmanuel Vadot <&clk IMX8MM_AUDIO_PLL2_OUT>; 1308bab661aSEmmanuel Vadot clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 1318bab661aSEmmanuel Vadot }; 1328bab661aSEmmanuel Vadot 1338bab661aSEmmanuel Vadot... 134