Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: dsp: fsl: Update binding document for remote proc driver

As there are two drivers for DSP on i.MX, one is for sound open
firmware, another is for remote processor framework. In order to
distinguish two kinds of driver, defining different compatible strings.

For remote proc driver, the properties firmware-name and fsl,dsp-ctrl
are needed and the mailbox channel is different with SOF.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/1633944015-789-5-git-send-email-shengjiu.wang@nxp.com
[Fixed capital letter at the beginning of the subject line]
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>

authored by

Shengjiu Wang and committed by
Mathieu Poirier
b55553fd ec0e5549

+117 -6
+117 -6
Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
··· 8 8 9 9 maintainers: 10 10 - Daniel Baluta <daniel.baluta@nxp.com> 11 + - Shengjiu Wang <shengjiu.wang@nxp.com> 11 12 12 13 description: | 13 14 Some boards from i.MX8 family contain a DSP core used for ··· 20 19 - fsl,imx8qxp-dsp 21 20 - fsl,imx8qm-dsp 22 21 - fsl,imx8mp-dsp 22 + - fsl,imx8qxp-hifi4 23 + - fsl,imx8qm-hifi4 24 + - fsl,imx8mp-hifi4 25 + - fsl,imx8ulp-hifi4 23 26 24 27 reg: 25 28 maxItems: 1 ··· 33 28 - description: ipg clock 34 29 - description: ocram clock 35 30 - description: core clock 31 + - description: debug interface clock 32 + - description: message unit clock 33 + minItems: 3 36 34 37 35 clock-names: 38 36 items: 39 37 - const: ipg 40 38 - const: ocram 41 39 - const: core 40 + - const: debug 41 + - const: mu 42 + minItems: 3 42 43 43 44 power-domains: 44 45 description: 45 46 List of phandle and PM domain specifier as documented in 46 47 Documentation/devicetree/bindings/power/power_domain.txt 48 + minItems: 1 47 49 maxItems: 4 48 50 49 51 mboxes: 50 52 description: 51 53 List of <&phandle type channel> - 2 channels for TXDB, 2 channels for RXDB 54 + or - 1 channel for TX, 1 channel for RX, 1 channel for RXDB 52 55 (see mailbox/fsl,mu.txt) 56 + minItems: 3 53 57 maxItems: 4 54 58 55 59 mbox-names: 56 - items: 57 - - const: txdb0 58 - - const: txdb1 59 - - const: rxdb0 60 - - const: rxdb1 60 + minItems: 3 61 + maxItems: 4 61 62 62 63 memory-region: 63 64 description: 64 65 phandle to a node describing reserved memory (System RAM memory) 65 66 used by DSP (see bindings/reserved-memory/reserved-memory.txt) 66 - maxItems: 1 67 + minItems: 1 68 + maxItems: 4 69 + 70 + firmware-name: 71 + description: | 72 + Default name of the firmware to load to the remote processor. 73 + 74 + fsl,dsp-ctrl: 75 + $ref: /schemas/types.yaml#/definitions/phandle 76 + description: 77 + Phandle to syscon block which provide access for processor enablement 67 78 68 79 required: 69 80 - compatible ··· 90 69 - mboxes 91 70 - mbox-names 92 71 - memory-region 72 + 73 + allOf: 74 + - if: 75 + properties: 76 + compatible: 77 + contains: 78 + enum: 79 + - fsl,imx8qxp-dsp 80 + - fsl,imx8qm-dsp 81 + - fsl,imx8qxp-hifi4 82 + - fsl,imx8qm-hifi4 83 + then: 84 + properties: 85 + power-domains: 86 + minItems: 4 87 + else: 88 + properties: 89 + power-domains: 90 + maxItems: 1 91 + 92 + - if: 93 + properties: 94 + compatible: 95 + contains: 96 + enum: 97 + - fsl,imx8qxp-hifi4 98 + - fsl,imx8qm-hifi4 99 + - fsl,imx8mp-hifi4 100 + - fsl,imx8ulp-hifi4 101 + then: 102 + properties: 103 + memory-region: 104 + minItems: 4 105 + mboxes: 106 + maxItems: 3 107 + mbox-names: 108 + items: 109 + - const: tx 110 + - const: rx 111 + - const: rxdb 112 + else: 113 + properties: 114 + memory-region: 115 + maxItems: 1 116 + mboxes: 117 + minItems: 4 118 + mbox-names: 119 + items: 120 + - const: txdb0 121 + - const: txdb1 122 + - const: rxdb0 123 + - const: rxdb1 93 124 94 125 additionalProperties: false 95 126 ··· 163 90 mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; 164 91 mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; 165 92 memory-region = <&dsp_reserved>; 93 + }; 94 + - | 95 + #include <dt-bindings/clock/imx8mp-clock.h> 96 + dsp_reserved: dsp@92400000 { 97 + reg = <0x92400000 0x1000000>; 98 + no-map; 99 + }; 100 + dsp_vdev0vring0: vdev0vring0@942f0000 { 101 + reg = <0x942f0000 0x8000>; 102 + no-map; 103 + }; 104 + dsp_vdev0vring1: vdev0vring1@942f8000 { 105 + reg = <0x942f8000 0x8000>; 106 + no-map; 107 + }; 108 + dsp_vdev0buffer: vdev0buffer@94300000 { 109 + compatible = "shared-dma-pool"; 110 + reg = <0x94300000 0x100000>; 111 + no-map; 112 + }; 113 + 114 + dsp: dsp@3b6e8000 { 115 + compatible = "fsl,imx8mp-hifi4"; 116 + reg = <0x3b6e8000 0x88000>; 117 + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, 118 + <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>, 119 + <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, 120 + <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>; 121 + clock-names = "ipg", "ocram", "core", "debug"; 122 + firmware-name = "imx/dsp/hifi4.bin"; 123 + power-domains = <&audiomix_pd>; 124 + mbox-names = "tx", "rx", "rxdb"; 125 + mboxes = <&mu2 0 0>, 126 + <&mu2 1 0>, 127 + <&mu2 3 0>; 128 + memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>, 129 + <&dsp_vdev0vring1>, <&dsp_reserved>; 130 + fsl,dsp-ctrl = <&audio_blk_ctrl>; 166 131 };