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 143570e687SChancel Liu are SAI, MICFIL, DMA controlled by Cortex M core. What we see from 153570e687SChancel Liu Linux side is a device which provides audio service by rpmsg channel. 163570e687SChancel Liu We can create different sound cards which access different hardwares 173570e687SChancel Liu such as SAI, MICFIL, .etc through building rpmsg channels between 183570e687SChancel Liu Cortex-A and Cortex-M. 1949c6bf62SShengjiu Wang 20*a06ce12eSKrzysztof KozlowskiallOf: 21*a06ce12eSKrzysztof Kozlowski - $ref: sound-card-common.yaml# 22*a06ce12eSKrzysztof Kozlowski 2349c6bf62SShengjiu Wangproperties: 2449c6bf62SShengjiu Wang compatible: 2549c6bf62SShengjiu Wang enum: 2649c6bf62SShengjiu Wang - fsl,imx7ulp-rpmsg-audio 2749c6bf62SShengjiu Wang - fsl,imx8mn-rpmsg-audio 2849c6bf62SShengjiu Wang - fsl,imx8mm-rpmsg-audio 2949c6bf62SShengjiu Wang - fsl,imx8mp-rpmsg-audio 304f89ff02SShengjiu Wang - fsl,imx8ulp-rpmsg-audio 31143f8c69SChancel Liu - fsl,imx93-rpmsg-audio 3249c6bf62SShengjiu Wang 3349c6bf62SShengjiu Wang clocks: 3449c6bf62SShengjiu Wang items: 3549c6bf62SShengjiu Wang - description: Peripheral clock for register access 3649c6bf62SShengjiu Wang - description: Master clock 3749c6bf62SShengjiu Wang - description: DMA clock for DMA register access 3849c6bf62SShengjiu Wang - description: Parent clock for multiple of 8kHz sample rates 3949c6bf62SShengjiu Wang - description: Parent clock for multiple of 11kHz sample rates 4049c6bf62SShengjiu Wang 4149c6bf62SShengjiu Wang clock-names: 4249c6bf62SShengjiu Wang items: 4349c6bf62SShengjiu Wang - const: ipg 4449c6bf62SShengjiu Wang - const: mclk 4549c6bf62SShengjiu Wang - const: dma 4649c6bf62SShengjiu Wang - const: pll8k 4749c6bf62SShengjiu Wang - const: pll11k 4849c6bf62SShengjiu Wang 4949c6bf62SShengjiu Wang power-domains: 5049c6bf62SShengjiu Wang description: 5149c6bf62SShengjiu Wang List of phandle and PM domain specifier as documented in 5249c6bf62SShengjiu Wang Documentation/devicetree/bindings/power/power_domain.txt 5349c6bf62SShengjiu Wang maxItems: 1 5449c6bf62SShengjiu Wang 5549c6bf62SShengjiu Wang memory-region: 56c1761159SRob Herring maxItems: 1 5749c6bf62SShengjiu Wang description: 5849c6bf62SShengjiu Wang phandle to a node describing reserved memory (System RAM memory) 5949c6bf62SShengjiu Wang The M core can't access all the DDR memory space on some platform, 6049c6bf62SShengjiu Wang So reserved a specific memory for dma buffer which M core can 6149c6bf62SShengjiu Wang access. 6249c6bf62SShengjiu Wang (see bindings/reserved-memory/reserved-memory.txt) 6349c6bf62SShengjiu Wang 6449c6bf62SShengjiu Wang audio-codec: 6549c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/phandle 6649c6bf62SShengjiu Wang description: The phandle to a node of audio codec 6749c6bf62SShengjiu Wang 6849c6bf62SShengjiu Wang fsl,enable-lpa: 6949c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/flag 7049c6bf62SShengjiu Wang description: enable low power audio path. 7149c6bf62SShengjiu Wang 7249c6bf62SShengjiu Wang fsl,rpmsg-out: 7349c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/flag 7449c6bf62SShengjiu Wang description: | 7549c6bf62SShengjiu Wang This is a boolean property. If present, the transmitting function 7649c6bf62SShengjiu Wang will be enabled. 7749c6bf62SShengjiu Wang 7849c6bf62SShengjiu Wang fsl,rpmsg-in: 7949c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/flag 8049c6bf62SShengjiu Wang description: | 8149c6bf62SShengjiu Wang This is a boolean property. If present, the receiving function 8249c6bf62SShengjiu Wang will be enabled. 8349c6bf62SShengjiu Wang 843570e687SChancel Liu fsl,rpmsg-channel-name: 853570e687SChancel Liu $ref: /schemas/types.yaml#/definitions/string 863570e687SChancel Liu description: | 873570e687SChancel Liu A string property to assign rpmsg channel this sound card sits on. 883570e687SChancel Liu This property can be omitted if there is only one sound card and it sits 893570e687SChancel Liu on "rpmsg-audio-channel". 903570e687SChancel Liu enum: 913570e687SChancel Liu - rpmsg-audio-channel 923570e687SChancel Liu - rpmsg-micfil-channel 933570e687SChancel Liu 9449c6bf62SShengjiu Wangrequired: 9549c6bf62SShengjiu Wang - compatible 9649c6bf62SShengjiu Wang 97*a06ce12eSKrzysztof KozlowskiunevaluatedProperties: false 9849c6bf62SShengjiu Wang 9949c6bf62SShengjiu Wangexamples: 10049c6bf62SShengjiu Wang - | 10149c6bf62SShengjiu Wang #include <dt-bindings/clock/imx8mn-clock.h> 10249c6bf62SShengjiu Wang 10349c6bf62SShengjiu Wang rpmsg_audio: rpmsg_audio { 10449c6bf62SShengjiu Wang compatible = "fsl,imx8mn-rpmsg-audio"; 10549c6bf62SShengjiu Wang model = "wm8524-audio"; 10649c6bf62SShengjiu Wang fsl,enable-lpa; 10749c6bf62SShengjiu Wang fsl,rpmsg-out; 10849c6bf62SShengjiu Wang clocks = <&clk IMX8MN_CLK_SAI3_IPG>, 10949c6bf62SShengjiu Wang <&clk IMX8MN_CLK_SAI3_ROOT>, 11049c6bf62SShengjiu Wang <&clk IMX8MN_CLK_SDMA3_ROOT>, 11149c6bf62SShengjiu Wang <&clk IMX8MN_AUDIO_PLL1_OUT>, 11249c6bf62SShengjiu Wang <&clk IMX8MN_AUDIO_PLL2_OUT>; 11349c6bf62SShengjiu Wang clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 11449c6bf62SShengjiu Wang }; 1153570e687SChancel Liu 1163570e687SChancel Liu - | 1173570e687SChancel Liu #include <dt-bindings/clock/imx8mm-clock.h> 1183570e687SChancel Liu 1193570e687SChancel Liu rpmsg_micfil: audio-controller { 1203570e687SChancel Liu compatible = "fsl,imx8mm-rpmsg-audio"; 1213570e687SChancel Liu model = "micfil-audio"; 1223570e687SChancel Liu fsl,rpmsg-channel-name = "rpmsg-micfil-channel"; 1233570e687SChancel Liu fsl,enable-lpa; 1243570e687SChancel Liu fsl,rpmsg-in; 1253570e687SChancel Liu clocks = <&clk IMX8MM_CLK_PDM_IPG>, 1263570e687SChancel Liu <&clk IMX8MM_CLK_PDM_ROOT>, 1273570e687SChancel Liu <&clk IMX8MM_CLK_SDMA3_ROOT>, 1283570e687SChancel Liu <&clk IMX8MM_AUDIO_PLL1_OUT>, 1293570e687SChancel Liu <&clk IMX8MM_AUDIO_PLL2_OUT>; 1303570e687SChancel Liu clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 1313570e687SChancel Liu }; 1323570e687SChancel Liu 1333570e687SChancel Liu... 134