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 14*3570e687SChancel Liu are SAI, MICFIL, DMA controlled by Cortex M core. What we see from 15*3570e687SChancel Liu Linux side is a device which provides audio service by rpmsg channel. 16*3570e687SChancel Liu We can create different sound cards which access different hardwares 17*3570e687SChancel Liu such as SAI, MICFIL, .etc through building rpmsg channels between 18*3570e687SChancel Liu Cortex-A and Cortex-M. 1949c6bf62SShengjiu Wang 2049c6bf62SShengjiu Wangproperties: 2149c6bf62SShengjiu Wang compatible: 2249c6bf62SShengjiu Wang enum: 2349c6bf62SShengjiu Wang - fsl,imx7ulp-rpmsg-audio 2449c6bf62SShengjiu Wang - fsl,imx8mn-rpmsg-audio 2549c6bf62SShengjiu Wang - fsl,imx8mm-rpmsg-audio 2649c6bf62SShengjiu Wang - fsl,imx8mp-rpmsg-audio 274f89ff02SShengjiu Wang - fsl,imx8ulp-rpmsg-audio 2849c6bf62SShengjiu Wang 2949c6bf62SShengjiu Wang model: 3049c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/string 3149c6bf62SShengjiu Wang description: User specified audio sound card name 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 audio-routing: 6949c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/non-unique-string-array 7049c6bf62SShengjiu Wang description: | 7149c6bf62SShengjiu Wang A list of the connections between audio components. Each entry is a 7249c6bf62SShengjiu Wang pair of strings, the first being the connection's sink, the second 7349c6bf62SShengjiu Wang being the connection's source. 7449c6bf62SShengjiu Wang 7549c6bf62SShengjiu Wang fsl,enable-lpa: 7649c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/flag 7749c6bf62SShengjiu Wang description: enable low power audio path. 7849c6bf62SShengjiu Wang 7949c6bf62SShengjiu Wang fsl,rpmsg-out: 8049c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/flag 8149c6bf62SShengjiu Wang description: | 8249c6bf62SShengjiu Wang This is a boolean property. If present, the transmitting function 8349c6bf62SShengjiu Wang will be enabled. 8449c6bf62SShengjiu Wang 8549c6bf62SShengjiu Wang fsl,rpmsg-in: 8649c6bf62SShengjiu Wang $ref: /schemas/types.yaml#/definitions/flag 8749c6bf62SShengjiu Wang description: | 8849c6bf62SShengjiu Wang This is a boolean property. If present, the receiving function 8949c6bf62SShengjiu Wang will be enabled. 9049c6bf62SShengjiu Wang 91*3570e687SChancel Liu fsl,rpmsg-channel-name: 92*3570e687SChancel Liu $ref: /schemas/types.yaml#/definitions/string 93*3570e687SChancel Liu description: | 94*3570e687SChancel Liu A string property to assign rpmsg channel this sound card sits on. 95*3570e687SChancel Liu This property can be omitted if there is only one sound card and it sits 96*3570e687SChancel Liu on "rpmsg-audio-channel". 97*3570e687SChancel Liu enum: 98*3570e687SChancel Liu - rpmsg-audio-channel 99*3570e687SChancel Liu - rpmsg-micfil-channel 100*3570e687SChancel Liu 10149c6bf62SShengjiu Wangrequired: 10249c6bf62SShengjiu Wang - compatible 10349c6bf62SShengjiu Wang - model 10449c6bf62SShengjiu Wang 10549c6bf62SShengjiu WangadditionalProperties: false 10649c6bf62SShengjiu Wang 10749c6bf62SShengjiu Wangexamples: 10849c6bf62SShengjiu Wang - | 10949c6bf62SShengjiu Wang #include <dt-bindings/clock/imx8mn-clock.h> 11049c6bf62SShengjiu Wang 11149c6bf62SShengjiu Wang rpmsg_audio: rpmsg_audio { 11249c6bf62SShengjiu Wang compatible = "fsl,imx8mn-rpmsg-audio"; 11349c6bf62SShengjiu Wang model = "wm8524-audio"; 11449c6bf62SShengjiu Wang fsl,enable-lpa; 11549c6bf62SShengjiu Wang fsl,rpmsg-out; 11649c6bf62SShengjiu Wang clocks = <&clk IMX8MN_CLK_SAI3_IPG>, 11749c6bf62SShengjiu Wang <&clk IMX8MN_CLK_SAI3_ROOT>, 11849c6bf62SShengjiu Wang <&clk IMX8MN_CLK_SDMA3_ROOT>, 11949c6bf62SShengjiu Wang <&clk IMX8MN_AUDIO_PLL1_OUT>, 12049c6bf62SShengjiu Wang <&clk IMX8MN_AUDIO_PLL2_OUT>; 12149c6bf62SShengjiu Wang clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 12249c6bf62SShengjiu Wang }; 123*3570e687SChancel Liu 124*3570e687SChancel Liu - | 125*3570e687SChancel Liu #include <dt-bindings/clock/imx8mm-clock.h> 126*3570e687SChancel Liu 127*3570e687SChancel Liu rpmsg_micfil: audio-controller { 128*3570e687SChancel Liu compatible = "fsl,imx8mm-rpmsg-audio"; 129*3570e687SChancel Liu model = "micfil-audio"; 130*3570e687SChancel Liu fsl,rpmsg-channel-name = "rpmsg-micfil-channel"; 131*3570e687SChancel Liu fsl,enable-lpa; 132*3570e687SChancel Liu fsl,rpmsg-in; 133*3570e687SChancel Liu clocks = <&clk IMX8MM_CLK_PDM_IPG>, 134*3570e687SChancel Liu <&clk IMX8MM_CLK_PDM_ROOT>, 135*3570e687SChancel Liu <&clk IMX8MM_CLK_SDMA3_ROOT>, 136*3570e687SChancel Liu <&clk IMX8MM_AUDIO_PLL1_OUT>, 137*3570e687SChancel Liu <&clk IMX8MM_AUDIO_PLL2_OUT>; 138*3570e687SChancel Liu clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k"; 139*3570e687SChancel Liu }; 140*3570e687SChancel Liu 141*3570e687SChancel Liu... 142