1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/dsp/fsl,dsp.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: NXP i.MX8 DSP core 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Daniel Baluta <daniel.baluta@nxp.com> 118cc087a1SEmmanuel Vadot - Shengjiu Wang <shengjiu.wang@nxp.com> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadotdescription: | 14c66ec88fSEmmanuel Vadot Some boards from i.MX8 family contain a DSP core used for 15c66ec88fSEmmanuel Vadot advanced pre- and post- audio processing. 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadotproperties: 18c66ec88fSEmmanuel Vadot compatible: 19c66ec88fSEmmanuel Vadot enum: 20c66ec88fSEmmanuel Vadot - fsl,imx8qxp-dsp 21c66ec88fSEmmanuel Vadot - fsl,imx8qm-dsp 22c66ec88fSEmmanuel Vadot - fsl,imx8mp-dsp 23*7ef62cebSEmmanuel Vadot - fsl,imx8ulp-dsp 248cc087a1SEmmanuel Vadot - fsl,imx8qxp-hifi4 258cc087a1SEmmanuel Vadot - fsl,imx8qm-hifi4 268cc087a1SEmmanuel Vadot - fsl,imx8mp-hifi4 278cc087a1SEmmanuel Vadot - fsl,imx8ulp-hifi4 28c66ec88fSEmmanuel Vadot 29c66ec88fSEmmanuel Vadot reg: 305def4c47SEmmanuel Vadot maxItems: 1 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot clocks: 33c66ec88fSEmmanuel Vadot items: 34c66ec88fSEmmanuel Vadot - description: ipg clock 35c66ec88fSEmmanuel Vadot - description: ocram clock 36c66ec88fSEmmanuel Vadot - description: core clock 378cc087a1SEmmanuel Vadot - description: debug interface clock 388cc087a1SEmmanuel Vadot - description: message unit clock 398cc087a1SEmmanuel Vadot minItems: 3 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot clock-names: 42c66ec88fSEmmanuel Vadot items: 43c66ec88fSEmmanuel Vadot - const: ipg 44c66ec88fSEmmanuel Vadot - const: ocram 45c66ec88fSEmmanuel Vadot - const: core 468cc087a1SEmmanuel Vadot - const: debug 478cc087a1SEmmanuel Vadot - const: mu 488cc087a1SEmmanuel Vadot minItems: 3 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot power-domains: 51c66ec88fSEmmanuel Vadot description: 52c66ec88fSEmmanuel Vadot List of phandle and PM domain specifier as documented in 53c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/power/power_domain.txt 548cc087a1SEmmanuel Vadot minItems: 1 55c66ec88fSEmmanuel Vadot maxItems: 4 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot mboxes: 58c66ec88fSEmmanuel Vadot description: 59c66ec88fSEmmanuel Vadot List of <&phandle type channel> - 2 channels for TXDB, 2 channels for RXDB 608cc087a1SEmmanuel Vadot or - 1 channel for TX, 1 channel for RX, 1 channel for RXDB 61c66ec88fSEmmanuel Vadot (see mailbox/fsl,mu.txt) 628cc087a1SEmmanuel Vadot minItems: 3 63c66ec88fSEmmanuel Vadot maxItems: 4 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot mbox-names: 668cc087a1SEmmanuel Vadot minItems: 3 678cc087a1SEmmanuel Vadot maxItems: 4 68c66ec88fSEmmanuel Vadot 69c66ec88fSEmmanuel Vadot memory-region: 70c66ec88fSEmmanuel Vadot description: 71c66ec88fSEmmanuel Vadot phandle to a node describing reserved memory (System RAM memory) 72c66ec88fSEmmanuel Vadot used by DSP (see bindings/reserved-memory/reserved-memory.txt) 738cc087a1SEmmanuel Vadot minItems: 1 748cc087a1SEmmanuel Vadot maxItems: 4 758cc087a1SEmmanuel Vadot 768cc087a1SEmmanuel Vadot firmware-name: 778cc087a1SEmmanuel Vadot description: | 788cc087a1SEmmanuel Vadot Default name of the firmware to load to the remote processor. 798cc087a1SEmmanuel Vadot 808cc087a1SEmmanuel Vadot fsl,dsp-ctrl: 818cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 828cc087a1SEmmanuel Vadot description: 838cc087a1SEmmanuel Vadot Phandle to syscon block which provide access for processor enablement 84c66ec88fSEmmanuel Vadot 85c66ec88fSEmmanuel Vadotrequired: 86c66ec88fSEmmanuel Vadot - compatible 87c66ec88fSEmmanuel Vadot - reg 88c66ec88fSEmmanuel Vadot - clocks 89c66ec88fSEmmanuel Vadot - clock-names 90c66ec88fSEmmanuel Vadot - power-domains 91c66ec88fSEmmanuel Vadot - mboxes 92c66ec88fSEmmanuel Vadot - mbox-names 93c66ec88fSEmmanuel Vadot - memory-region 94c66ec88fSEmmanuel Vadot 958cc087a1SEmmanuel VadotallOf: 968cc087a1SEmmanuel Vadot - if: 978cc087a1SEmmanuel Vadot properties: 988cc087a1SEmmanuel Vadot compatible: 998cc087a1SEmmanuel Vadot contains: 1008cc087a1SEmmanuel Vadot enum: 1018cc087a1SEmmanuel Vadot - fsl,imx8qxp-dsp 1028cc087a1SEmmanuel Vadot - fsl,imx8qm-dsp 1038cc087a1SEmmanuel Vadot - fsl,imx8qxp-hifi4 1048cc087a1SEmmanuel Vadot - fsl,imx8qm-hifi4 1058cc087a1SEmmanuel Vadot then: 1068cc087a1SEmmanuel Vadot properties: 1078cc087a1SEmmanuel Vadot power-domains: 1088cc087a1SEmmanuel Vadot minItems: 4 1098cc087a1SEmmanuel Vadot else: 1108cc087a1SEmmanuel Vadot properties: 1118cc087a1SEmmanuel Vadot power-domains: 1128cc087a1SEmmanuel Vadot maxItems: 1 1138cc087a1SEmmanuel Vadot 1148cc087a1SEmmanuel Vadot - if: 1158cc087a1SEmmanuel Vadot properties: 1168cc087a1SEmmanuel Vadot compatible: 1178cc087a1SEmmanuel Vadot contains: 1188cc087a1SEmmanuel Vadot enum: 1198cc087a1SEmmanuel Vadot - fsl,imx8qxp-hifi4 1208cc087a1SEmmanuel Vadot - fsl,imx8qm-hifi4 1218cc087a1SEmmanuel Vadot - fsl,imx8mp-hifi4 1228cc087a1SEmmanuel Vadot - fsl,imx8ulp-hifi4 1238cc087a1SEmmanuel Vadot then: 1248cc087a1SEmmanuel Vadot properties: 1258cc087a1SEmmanuel Vadot memory-region: 1268cc087a1SEmmanuel Vadot minItems: 4 1278cc087a1SEmmanuel Vadot mboxes: 1288cc087a1SEmmanuel Vadot maxItems: 3 1298cc087a1SEmmanuel Vadot mbox-names: 1308cc087a1SEmmanuel Vadot items: 1318cc087a1SEmmanuel Vadot - const: tx 1328cc087a1SEmmanuel Vadot - const: rx 1338cc087a1SEmmanuel Vadot - const: rxdb 1348cc087a1SEmmanuel Vadot else: 1358cc087a1SEmmanuel Vadot properties: 1368cc087a1SEmmanuel Vadot memory-region: 1378cc087a1SEmmanuel Vadot maxItems: 1 1388cc087a1SEmmanuel Vadot mboxes: 1398cc087a1SEmmanuel Vadot minItems: 4 1408cc087a1SEmmanuel Vadot mbox-names: 1418cc087a1SEmmanuel Vadot items: 1428cc087a1SEmmanuel Vadot - const: txdb0 1438cc087a1SEmmanuel Vadot - const: txdb1 1448cc087a1SEmmanuel Vadot - const: rxdb0 1458cc087a1SEmmanuel Vadot - const: rxdb1 1468cc087a1SEmmanuel Vadot 147c66ec88fSEmmanuel VadotadditionalProperties: false 148c66ec88fSEmmanuel Vadot 149c66ec88fSEmmanuel Vadotexamples: 150c66ec88fSEmmanuel Vadot - | 151c66ec88fSEmmanuel Vadot #include <dt-bindings/firmware/imx/rsrc.h> 152c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/imx8-clock.h> 153c66ec88fSEmmanuel Vadot dsp@596e8000 { 154c66ec88fSEmmanuel Vadot compatible = "fsl,imx8qxp-dsp"; 155c66ec88fSEmmanuel Vadot reg = <0x596e8000 0x88000>; 156c66ec88fSEmmanuel Vadot clocks = <&adma_lpcg IMX_ADMA_LPCG_DSP_IPG_CLK>, 157c66ec88fSEmmanuel Vadot <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, 158c66ec88fSEmmanuel Vadot <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; 159c66ec88fSEmmanuel Vadot clock-names = "ipg", "ocram", "core"; 160c66ec88fSEmmanuel Vadot power-domains = <&pd IMX_SC_R_MU_13A>, 161c66ec88fSEmmanuel Vadot <&pd IMX_SC_R_MU_13B>, 162c66ec88fSEmmanuel Vadot <&pd IMX_SC_R_DSP>, 163c66ec88fSEmmanuel Vadot <&pd IMX_SC_R_DSP_RAM>; 164c66ec88fSEmmanuel Vadot mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; 165c66ec88fSEmmanuel Vadot mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; 166c66ec88fSEmmanuel Vadot memory-region = <&dsp_reserved>; 167c66ec88fSEmmanuel Vadot }; 1688cc087a1SEmmanuel Vadot - | 1698cc087a1SEmmanuel Vadot #include <dt-bindings/clock/imx8mp-clock.h> 1708cc087a1SEmmanuel Vadot dsp_reserved: dsp@92400000 { 1718cc087a1SEmmanuel Vadot reg = <0x92400000 0x1000000>; 1728cc087a1SEmmanuel Vadot no-map; 1738cc087a1SEmmanuel Vadot }; 1748cc087a1SEmmanuel Vadot dsp_vdev0vring0: vdev0vring0@942f0000 { 1758cc087a1SEmmanuel Vadot reg = <0x942f0000 0x8000>; 1768cc087a1SEmmanuel Vadot no-map; 1778cc087a1SEmmanuel Vadot }; 1788cc087a1SEmmanuel Vadot dsp_vdev0vring1: vdev0vring1@942f8000 { 1798cc087a1SEmmanuel Vadot reg = <0x942f8000 0x8000>; 1808cc087a1SEmmanuel Vadot no-map; 1818cc087a1SEmmanuel Vadot }; 1828cc087a1SEmmanuel Vadot dsp_vdev0buffer: vdev0buffer@94300000 { 1838cc087a1SEmmanuel Vadot compatible = "shared-dma-pool"; 1848cc087a1SEmmanuel Vadot reg = <0x94300000 0x100000>; 1858cc087a1SEmmanuel Vadot no-map; 1868cc087a1SEmmanuel Vadot }; 1878cc087a1SEmmanuel Vadot 1888cc087a1SEmmanuel Vadot dsp: dsp@3b6e8000 { 1898cc087a1SEmmanuel Vadot compatible = "fsl,imx8mp-hifi4"; 1908cc087a1SEmmanuel Vadot reg = <0x3b6e8000 0x88000>; 1918cc087a1SEmmanuel Vadot clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, 1928cc087a1SEmmanuel Vadot <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>, 1938cc087a1SEmmanuel Vadot <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, 1948cc087a1SEmmanuel Vadot <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>; 1958cc087a1SEmmanuel Vadot clock-names = "ipg", "ocram", "core", "debug"; 1968cc087a1SEmmanuel Vadot firmware-name = "imx/dsp/hifi4.bin"; 1978cc087a1SEmmanuel Vadot power-domains = <&audiomix_pd>; 1988cc087a1SEmmanuel Vadot mbox-names = "tx", "rx", "rxdb"; 1998cc087a1SEmmanuel Vadot mboxes = <&mu2 0 0>, 2008cc087a1SEmmanuel Vadot <&mu2 1 0>, 2018cc087a1SEmmanuel Vadot <&mu2 3 0>; 2028cc087a1SEmmanuel Vadot memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>, 2038cc087a1SEmmanuel Vadot <&dsp_vdev0vring1>, <&dsp_reserved>; 2048cc087a1SEmmanuel Vadot fsl,dsp-ctrl = <&audio_blk_ctrl>; 2058cc087a1SEmmanuel Vadot }; 206