17db2f2dfSDaniel Baluta# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
27db2f2dfSDaniel Baluta%YAML 1.2
37db2f2dfSDaniel Baluta---
47db2f2dfSDaniel Baluta$id: http://devicetree.org/schemas/dsp/fsl,dsp.yaml#
57db2f2dfSDaniel Baluta$schema: http://devicetree.org/meta-schemas/core.yaml#
67db2f2dfSDaniel Baluta
77db2f2dfSDaniel Balutatitle: NXP i.MX8 DSP core
87db2f2dfSDaniel Baluta
97db2f2dfSDaniel Balutamaintainers:
107db2f2dfSDaniel Baluta  - Daniel Baluta <daniel.baluta@nxp.com>
11b55553fdSShengjiu Wang  - Shengjiu Wang <shengjiu.wang@nxp.com>
127db2f2dfSDaniel Baluta
137db2f2dfSDaniel Balutadescription: |
147db2f2dfSDaniel Baluta  Some boards from i.MX8 family contain a DSP core used for
157db2f2dfSDaniel Baluta  advanced pre- and post- audio processing.
167db2f2dfSDaniel Baluta
177db2f2dfSDaniel Balutaproperties:
187db2f2dfSDaniel Baluta  compatible:
197db2f2dfSDaniel Baluta    enum:
207db2f2dfSDaniel Baluta      - fsl,imx8qxp-dsp
2135a0f242SDaniel Baluta      - fsl,imx8qm-dsp
2235a0f242SDaniel Baluta      - fsl,imx8mp-dsp
23*ee6c42baSShengjiu Wang      - fsl,imx8ulp-dsp
24b55553fdSShengjiu Wang      - fsl,imx8qxp-hifi4
25b55553fdSShengjiu Wang      - fsl,imx8qm-hifi4
26b55553fdSShengjiu Wang      - fsl,imx8mp-hifi4
27b55553fdSShengjiu Wang      - fsl,imx8ulp-hifi4
287db2f2dfSDaniel Baluta
297db2f2dfSDaniel Baluta  reg:
300499220dSRob Herring    maxItems: 1
317db2f2dfSDaniel Baluta
327db2f2dfSDaniel Baluta  clocks:
337db2f2dfSDaniel Baluta    items:
347db2f2dfSDaniel Baluta      - description: ipg clock
357db2f2dfSDaniel Baluta      - description: ocram clock
367db2f2dfSDaniel Baluta      - description: core clock
37b55553fdSShengjiu Wang      - description: debug interface clock
38b55553fdSShengjiu Wang      - description: message unit clock
39b55553fdSShengjiu Wang    minItems: 3
407db2f2dfSDaniel Baluta
417db2f2dfSDaniel Baluta  clock-names:
427db2f2dfSDaniel Baluta    items:
437db2f2dfSDaniel Baluta      - const: ipg
447db2f2dfSDaniel Baluta      - const: ocram
457db2f2dfSDaniel Baluta      - const: core
46b55553fdSShengjiu Wang      - const: debug
47b55553fdSShengjiu Wang      - const: mu
48b55553fdSShengjiu Wang    minItems: 3
497db2f2dfSDaniel Baluta
507db2f2dfSDaniel Baluta  power-domains:
517db2f2dfSDaniel Baluta    description:
527db2f2dfSDaniel Baluta      List of phandle and PM domain specifier as documented in
537db2f2dfSDaniel Baluta      Documentation/devicetree/bindings/power/power_domain.txt
54b55553fdSShengjiu Wang    minItems: 1
557db2f2dfSDaniel Baluta    maxItems: 4
567db2f2dfSDaniel Baluta
577db2f2dfSDaniel Baluta  mboxes:
587db2f2dfSDaniel Baluta    description:
597db2f2dfSDaniel Baluta      List of <&phandle type channel> - 2 channels for TXDB, 2 channels for RXDB
60b55553fdSShengjiu Wang      or - 1 channel for TX, 1 channel for RX, 1 channel for RXDB
617db2f2dfSDaniel Baluta      (see mailbox/fsl,mu.txt)
62b55553fdSShengjiu Wang    minItems: 3
637db2f2dfSDaniel Baluta    maxItems: 4
647db2f2dfSDaniel Baluta
657db2f2dfSDaniel Baluta  mbox-names:
66b55553fdSShengjiu Wang    minItems: 3
67b55553fdSShengjiu Wang    maxItems: 4
687db2f2dfSDaniel Baluta
697db2f2dfSDaniel Baluta  memory-region:
707db2f2dfSDaniel Baluta    description:
717db2f2dfSDaniel Baluta      phandle to a node describing reserved memory (System RAM memory)
727db2f2dfSDaniel Baluta      used by DSP (see bindings/reserved-memory/reserved-memory.txt)
73b55553fdSShengjiu Wang    minItems: 1
74b55553fdSShengjiu Wang    maxItems: 4
75b55553fdSShengjiu Wang
76b55553fdSShengjiu Wang  firmware-name:
77b55553fdSShengjiu Wang    description: |
78b55553fdSShengjiu Wang      Default name of the firmware to load to the remote processor.
79b55553fdSShengjiu Wang
80b55553fdSShengjiu Wang  fsl,dsp-ctrl:
81b55553fdSShengjiu Wang    $ref: /schemas/types.yaml#/definitions/phandle
82b55553fdSShengjiu Wang    description:
83b55553fdSShengjiu Wang      Phandle to syscon block which provide access for processor enablement
847db2f2dfSDaniel Baluta
857db2f2dfSDaniel Balutarequired:
867db2f2dfSDaniel Baluta  - compatible
877db2f2dfSDaniel Baluta  - reg
887db2f2dfSDaniel Baluta  - clocks
897db2f2dfSDaniel Baluta  - clock-names
907db2f2dfSDaniel Baluta  - power-domains
917db2f2dfSDaniel Baluta  - mboxes
927db2f2dfSDaniel Baluta  - mbox-names
937db2f2dfSDaniel Baluta  - memory-region
947db2f2dfSDaniel Baluta
95b55553fdSShengjiu WangallOf:
96b55553fdSShengjiu Wang  - if:
97b55553fdSShengjiu Wang      properties:
98b55553fdSShengjiu Wang        compatible:
99b55553fdSShengjiu Wang          contains:
100b55553fdSShengjiu Wang            enum:
101b55553fdSShengjiu Wang              - fsl,imx8qxp-dsp
102b55553fdSShengjiu Wang              - fsl,imx8qm-dsp
103b55553fdSShengjiu Wang              - fsl,imx8qxp-hifi4
104b55553fdSShengjiu Wang              - fsl,imx8qm-hifi4
105b55553fdSShengjiu Wang    then:
106b55553fdSShengjiu Wang      properties:
107b55553fdSShengjiu Wang        power-domains:
108b55553fdSShengjiu Wang          minItems: 4
109b55553fdSShengjiu Wang    else:
110b55553fdSShengjiu Wang      properties:
111b55553fdSShengjiu Wang        power-domains:
112b55553fdSShengjiu Wang          maxItems: 1
113b55553fdSShengjiu Wang
114b55553fdSShengjiu Wang  - if:
115b55553fdSShengjiu Wang      properties:
116b55553fdSShengjiu Wang        compatible:
117b55553fdSShengjiu Wang          contains:
118b55553fdSShengjiu Wang            enum:
119b55553fdSShengjiu Wang              - fsl,imx8qxp-hifi4
120b55553fdSShengjiu Wang              - fsl,imx8qm-hifi4
121b55553fdSShengjiu Wang              - fsl,imx8mp-hifi4
122b55553fdSShengjiu Wang              - fsl,imx8ulp-hifi4
123b55553fdSShengjiu Wang    then:
124b55553fdSShengjiu Wang      properties:
125b55553fdSShengjiu Wang        memory-region:
126b55553fdSShengjiu Wang          minItems: 4
127b55553fdSShengjiu Wang        mboxes:
128b55553fdSShengjiu Wang          maxItems: 3
129b55553fdSShengjiu Wang        mbox-names:
130b55553fdSShengjiu Wang          items:
131b55553fdSShengjiu Wang            - const: tx
132b55553fdSShengjiu Wang            - const: rx
133b55553fdSShengjiu Wang            - const: rxdb
134b55553fdSShengjiu Wang    else:
135b55553fdSShengjiu Wang      properties:
136b55553fdSShengjiu Wang        memory-region:
137b55553fdSShengjiu Wang          maxItems: 1
138b55553fdSShengjiu Wang        mboxes:
139b55553fdSShengjiu Wang          minItems: 4
140b55553fdSShengjiu Wang        mbox-names:
141b55553fdSShengjiu Wang          items:
142b55553fdSShengjiu Wang            - const: txdb0
143b55553fdSShengjiu Wang            - const: txdb1
144b55553fdSShengjiu Wang            - const: rxdb0
145b55553fdSShengjiu Wang            - const: rxdb1
146b55553fdSShengjiu Wang
1477f464532SRob HerringadditionalProperties: false
1487f464532SRob Herring
1497db2f2dfSDaniel Balutaexamples:
1507db2f2dfSDaniel Baluta  - |
1517db2f2dfSDaniel Baluta    #include <dt-bindings/firmware/imx/rsrc.h>
1527db2f2dfSDaniel Baluta    #include <dt-bindings/clock/imx8-clock.h>
1537db2f2dfSDaniel Baluta    dsp@596e8000 {
1547db2f2dfSDaniel Baluta        compatible = "fsl,imx8qxp-dsp";
1557db2f2dfSDaniel Baluta        reg = <0x596e8000 0x88000>;
1567db2f2dfSDaniel Baluta        clocks = <&adma_lpcg IMX_ADMA_LPCG_DSP_IPG_CLK>,
1577db2f2dfSDaniel Baluta                 <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>,
1587db2f2dfSDaniel Baluta                 <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>;
1597db2f2dfSDaniel Baluta        clock-names = "ipg", "ocram", "core";
1607db2f2dfSDaniel Baluta        power-domains = <&pd IMX_SC_R_MU_13A>,
1617db2f2dfSDaniel Baluta                        <&pd IMX_SC_R_MU_13B>,
1627db2f2dfSDaniel Baluta                        <&pd IMX_SC_R_DSP>,
1637db2f2dfSDaniel Baluta                        <&pd IMX_SC_R_DSP_RAM>;
1647db2f2dfSDaniel Baluta        mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1";
1657db2f2dfSDaniel Baluta        mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>;
166e2973352SMaxime Ripard        memory-region = <&dsp_reserved>;
1677db2f2dfSDaniel Baluta    };
168b55553fdSShengjiu Wang  - |
169b55553fdSShengjiu Wang    #include <dt-bindings/clock/imx8mp-clock.h>
170b55553fdSShengjiu Wang    dsp_reserved: dsp@92400000 {
171b55553fdSShengjiu Wang      reg = <0x92400000 0x1000000>;
172b55553fdSShengjiu Wang      no-map;
173b55553fdSShengjiu Wang    };
174b55553fdSShengjiu Wang    dsp_vdev0vring0: vdev0vring0@942f0000 {
175b55553fdSShengjiu Wang      reg = <0x942f0000 0x8000>;
176b55553fdSShengjiu Wang      no-map;
177b55553fdSShengjiu Wang    };
178b55553fdSShengjiu Wang    dsp_vdev0vring1: vdev0vring1@942f8000 {
179b55553fdSShengjiu Wang      reg = <0x942f8000 0x8000>;
180b55553fdSShengjiu Wang      no-map;
181b55553fdSShengjiu Wang    };
182b55553fdSShengjiu Wang    dsp_vdev0buffer: vdev0buffer@94300000 {
183b55553fdSShengjiu Wang      compatible = "shared-dma-pool";
184b55553fdSShengjiu Wang      reg = <0x94300000 0x100000>;
185b55553fdSShengjiu Wang      no-map;
186b55553fdSShengjiu Wang    };
187b55553fdSShengjiu Wang
188b55553fdSShengjiu Wang    dsp: dsp@3b6e8000 {
189b55553fdSShengjiu Wang      compatible = "fsl,imx8mp-hifi4";
190b55553fdSShengjiu Wang      reg = <0x3b6e8000 0x88000>;
191b55553fdSShengjiu Wang      clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>,
192b55553fdSShengjiu Wang               <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>,
193b55553fdSShengjiu Wang               <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>,
194b55553fdSShengjiu Wang               <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>;
195b55553fdSShengjiu Wang      clock-names = "ipg", "ocram", "core", "debug";
196b55553fdSShengjiu Wang      firmware-name = "imx/dsp/hifi4.bin";
197b55553fdSShengjiu Wang      power-domains = <&audiomix_pd>;
198b55553fdSShengjiu Wang      mbox-names = "tx", "rx", "rxdb";
199b55553fdSShengjiu Wang      mboxes = <&mu2 0 0>,
200b55553fdSShengjiu Wang               <&mu2 1 0>,
201b55553fdSShengjiu Wang               <&mu2 3 0>;
202b55553fdSShengjiu Wang      memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>,
203b55553fdSShengjiu Wang                      <&dsp_vdev0vring1>, <&dsp_reserved>;
204b55553fdSShengjiu Wang      fsl,dsp-ctrl = <&audio_blk_ctrl>;
205b55553fdSShengjiu Wang    };
206