162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/dsp/fsl,dsp.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: NXP i.MX8 DSP core 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Daniel Baluta <daniel.baluta@nxp.com> 1162306a36Sopenharmony_ci - Shengjiu Wang <shengjiu.wang@nxp.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: | 1462306a36Sopenharmony_ci Some boards from i.MX8 family contain a DSP core used for 1562306a36Sopenharmony_ci advanced pre- and post- audio processing. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciproperties: 1862306a36Sopenharmony_ci compatible: 1962306a36Sopenharmony_ci enum: 2062306a36Sopenharmony_ci - fsl,imx8qxp-dsp 2162306a36Sopenharmony_ci - fsl,imx8qm-dsp 2262306a36Sopenharmony_ci - fsl,imx8mp-dsp 2362306a36Sopenharmony_ci - fsl,imx8ulp-dsp 2462306a36Sopenharmony_ci - fsl,imx8qxp-hifi4 2562306a36Sopenharmony_ci - fsl,imx8qm-hifi4 2662306a36Sopenharmony_ci - fsl,imx8mp-hifi4 2762306a36Sopenharmony_ci - fsl,imx8ulp-hifi4 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci reg: 3062306a36Sopenharmony_ci maxItems: 1 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci clocks: 3362306a36Sopenharmony_ci items: 3462306a36Sopenharmony_ci - description: ipg clock 3562306a36Sopenharmony_ci - description: ocram clock 3662306a36Sopenharmony_ci - description: core clock 3762306a36Sopenharmony_ci - description: debug interface clock 3862306a36Sopenharmony_ci - description: message unit clock 3962306a36Sopenharmony_ci minItems: 3 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci clock-names: 4262306a36Sopenharmony_ci items: 4362306a36Sopenharmony_ci - const: ipg 4462306a36Sopenharmony_ci - const: ocram 4562306a36Sopenharmony_ci - const: core 4662306a36Sopenharmony_ci - const: debug 4762306a36Sopenharmony_ci - const: mu 4862306a36Sopenharmony_ci minItems: 3 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci power-domains: 5162306a36Sopenharmony_ci description: 5262306a36Sopenharmony_ci List of phandle and PM domain specifier as documented in 5362306a36Sopenharmony_ci Documentation/devicetree/bindings/power/power_domain.txt 5462306a36Sopenharmony_ci minItems: 1 5562306a36Sopenharmony_ci maxItems: 4 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci mboxes: 5862306a36Sopenharmony_ci description: 5962306a36Sopenharmony_ci List of <&phandle type channel> - 2 channels for TXDB, 2 channels for RXDB 6062306a36Sopenharmony_ci or - 1 channel for TX, 1 channel for RX, 1 channel for RXDB 6162306a36Sopenharmony_ci (see mailbox/fsl,mu.txt) 6262306a36Sopenharmony_ci minItems: 3 6362306a36Sopenharmony_ci maxItems: 4 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci mbox-names: 6662306a36Sopenharmony_ci minItems: 3 6762306a36Sopenharmony_ci maxItems: 4 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci memory-region: 7062306a36Sopenharmony_ci description: 7162306a36Sopenharmony_ci phandle to a node describing reserved memory (System RAM memory) 7262306a36Sopenharmony_ci used by DSP (see bindings/reserved-memory/reserved-memory.txt) 7362306a36Sopenharmony_ci minItems: 1 7462306a36Sopenharmony_ci maxItems: 4 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci firmware-name: 7762306a36Sopenharmony_ci description: | 7862306a36Sopenharmony_ci Default name of the firmware to load to the remote processor. 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci fsl,dsp-ctrl: 8162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle 8262306a36Sopenharmony_ci description: 8362306a36Sopenharmony_ci Phandle to syscon block which provide access for processor enablement 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_cirequired: 8662306a36Sopenharmony_ci - compatible 8762306a36Sopenharmony_ci - reg 8862306a36Sopenharmony_ci - clocks 8962306a36Sopenharmony_ci - clock-names 9062306a36Sopenharmony_ci - power-domains 9162306a36Sopenharmony_ci - mboxes 9262306a36Sopenharmony_ci - mbox-names 9362306a36Sopenharmony_ci - memory-region 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ciallOf: 9662306a36Sopenharmony_ci - if: 9762306a36Sopenharmony_ci properties: 9862306a36Sopenharmony_ci compatible: 9962306a36Sopenharmony_ci contains: 10062306a36Sopenharmony_ci enum: 10162306a36Sopenharmony_ci - fsl,imx8qxp-dsp 10262306a36Sopenharmony_ci - fsl,imx8qm-dsp 10362306a36Sopenharmony_ci - fsl,imx8qxp-hifi4 10462306a36Sopenharmony_ci - fsl,imx8qm-hifi4 10562306a36Sopenharmony_ci then: 10662306a36Sopenharmony_ci properties: 10762306a36Sopenharmony_ci power-domains: 10862306a36Sopenharmony_ci minItems: 4 10962306a36Sopenharmony_ci else: 11062306a36Sopenharmony_ci properties: 11162306a36Sopenharmony_ci power-domains: 11262306a36Sopenharmony_ci maxItems: 1 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci - if: 11562306a36Sopenharmony_ci properties: 11662306a36Sopenharmony_ci compatible: 11762306a36Sopenharmony_ci contains: 11862306a36Sopenharmony_ci enum: 11962306a36Sopenharmony_ci - fsl,imx8qxp-hifi4 12062306a36Sopenharmony_ci - fsl,imx8qm-hifi4 12162306a36Sopenharmony_ci - fsl,imx8mp-hifi4 12262306a36Sopenharmony_ci - fsl,imx8ulp-hifi4 12362306a36Sopenharmony_ci then: 12462306a36Sopenharmony_ci properties: 12562306a36Sopenharmony_ci memory-region: 12662306a36Sopenharmony_ci minItems: 4 12762306a36Sopenharmony_ci mboxes: 12862306a36Sopenharmony_ci maxItems: 3 12962306a36Sopenharmony_ci mbox-names: 13062306a36Sopenharmony_ci items: 13162306a36Sopenharmony_ci - const: tx 13262306a36Sopenharmony_ci - const: rx 13362306a36Sopenharmony_ci - const: rxdb 13462306a36Sopenharmony_ci else: 13562306a36Sopenharmony_ci properties: 13662306a36Sopenharmony_ci memory-region: 13762306a36Sopenharmony_ci maxItems: 1 13862306a36Sopenharmony_ci mboxes: 13962306a36Sopenharmony_ci minItems: 4 14062306a36Sopenharmony_ci mbox-names: 14162306a36Sopenharmony_ci items: 14262306a36Sopenharmony_ci - const: txdb0 14362306a36Sopenharmony_ci - const: txdb1 14462306a36Sopenharmony_ci - const: rxdb0 14562306a36Sopenharmony_ci - const: rxdb1 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ciadditionalProperties: false 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciexamples: 15062306a36Sopenharmony_ci - | 15162306a36Sopenharmony_ci #include <dt-bindings/firmware/imx/rsrc.h> 15262306a36Sopenharmony_ci #include <dt-bindings/clock/imx8-clock.h> 15362306a36Sopenharmony_ci dsp@596e8000 { 15462306a36Sopenharmony_ci compatible = "fsl,imx8qxp-dsp"; 15562306a36Sopenharmony_ci reg = <0x596e8000 0x88000>; 15662306a36Sopenharmony_ci clocks = <&adma_lpcg IMX_ADMA_LPCG_DSP_IPG_CLK>, 15762306a36Sopenharmony_ci <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, 15862306a36Sopenharmony_ci <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; 15962306a36Sopenharmony_ci clock-names = "ipg", "ocram", "core"; 16062306a36Sopenharmony_ci power-domains = <&pd IMX_SC_R_MU_13A>, 16162306a36Sopenharmony_ci <&pd IMX_SC_R_MU_13B>, 16262306a36Sopenharmony_ci <&pd IMX_SC_R_DSP>, 16362306a36Sopenharmony_ci <&pd IMX_SC_R_DSP_RAM>; 16462306a36Sopenharmony_ci mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; 16562306a36Sopenharmony_ci mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; 16662306a36Sopenharmony_ci memory-region = <&dsp_reserved>; 16762306a36Sopenharmony_ci }; 16862306a36Sopenharmony_ci - | 16962306a36Sopenharmony_ci #include <dt-bindings/clock/imx8mp-clock.h> 17062306a36Sopenharmony_ci dsp_reserved: dsp@92400000 { 17162306a36Sopenharmony_ci reg = <0x92400000 0x1000000>; 17262306a36Sopenharmony_ci no-map; 17362306a36Sopenharmony_ci }; 17462306a36Sopenharmony_ci dsp_vdev0vring0: vdev0vring0@942f0000 { 17562306a36Sopenharmony_ci reg = <0x942f0000 0x8000>; 17662306a36Sopenharmony_ci no-map; 17762306a36Sopenharmony_ci }; 17862306a36Sopenharmony_ci dsp_vdev0vring1: vdev0vring1@942f8000 { 17962306a36Sopenharmony_ci reg = <0x942f8000 0x8000>; 18062306a36Sopenharmony_ci no-map; 18162306a36Sopenharmony_ci }; 18262306a36Sopenharmony_ci dsp_vdev0buffer: vdev0buffer@94300000 { 18362306a36Sopenharmony_ci compatible = "shared-dma-pool"; 18462306a36Sopenharmony_ci reg = <0x94300000 0x100000>; 18562306a36Sopenharmony_ci no-map; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci dsp: dsp@3b6e8000 { 18962306a36Sopenharmony_ci compatible = "fsl,imx8mp-hifi4"; 19062306a36Sopenharmony_ci reg = <0x3b6e8000 0x88000>; 19162306a36Sopenharmony_ci clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, 19262306a36Sopenharmony_ci <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>, 19362306a36Sopenharmony_ci <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, 19462306a36Sopenharmony_ci <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>; 19562306a36Sopenharmony_ci clock-names = "ipg", "ocram", "core", "debug"; 19662306a36Sopenharmony_ci firmware-name = "imx/dsp/hifi4.bin"; 19762306a36Sopenharmony_ci power-domains = <&audiomix_pd>; 19862306a36Sopenharmony_ci mbox-names = "tx", "rx", "rxdb"; 19962306a36Sopenharmony_ci mboxes = <&mu2 0 0>, 20062306a36Sopenharmony_ci <&mu2 1 0>, 20162306a36Sopenharmony_ci <&mu2 3 0>; 20262306a36Sopenharmony_ci memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>, 20362306a36Sopenharmony_ci <&dsp_vdev0vring1>, <&dsp_reserved>; 20462306a36Sopenharmony_ci fsl,dsp-ctrl = <&audio_blk_ctrl>; 20562306a36Sopenharmony_ci }; 206