Skip to content

Commit b55553f

Browse files
TE-N-ShengjiuWangmathieupoirier
authored andcommitted
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 <[email protected]> Acked-by: Daniel Baluta <[email protected]> Reviewed-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected] [Fixed capital letter at the beginning of the subject line] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent ec0e554 commit b55553f

File tree

1 file changed

+117
-6
lines changed

1 file changed

+117
-6
lines changed

Documentation/devicetree/bindings/dsp/fsl,dsp.yaml

Lines changed: 117 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ title: NXP i.MX8 DSP core
88

99
maintainers:
1010
- Daniel Baluta <[email protected]>
11+
- Shengjiu Wang <[email protected]>
1112

1213
description: |
1314
Some boards from i.MX8 family contain a DSP core used for
@@ -19,6 +20,10 @@ properties:
1920
- fsl,imx8qxp-dsp
2021
- fsl,imx8qm-dsp
2122
- fsl,imx8mp-dsp
23+
- fsl,imx8qxp-hifi4
24+
- fsl,imx8qm-hifi4
25+
- fsl,imx8mp-hifi4
26+
- fsl,imx8ulp-hifi4
2227

2328
reg:
2429
maxItems: 1
@@ -28,37 +33,53 @@ properties:
2833
- description: ipg clock
2934
- description: ocram clock
3035
- description: core clock
36+
- description: debug interface clock
37+
- description: message unit clock
38+
minItems: 3
3139

3240
clock-names:
3341
items:
3442
- const: ipg
3543
- const: ocram
3644
- const: core
45+
- const: debug
46+
- const: mu
47+
minItems: 3
3748

3849
power-domains:
3950
description:
4051
List of phandle and PM domain specifier as documented in
4152
Documentation/devicetree/bindings/power/power_domain.txt
53+
minItems: 1
4254
maxItems: 4
4355

4456
mboxes:
4557
description:
4658
List of <&phandle type channel> - 2 channels for TXDB, 2 channels for RXDB
59+
or - 1 channel for TX, 1 channel for RX, 1 channel for RXDB
4760
(see mailbox/fsl,mu.txt)
61+
minItems: 3
4862
maxItems: 4
4963

5064
mbox-names:
51-
items:
52-
- const: txdb0
53-
- const: txdb1
54-
- const: rxdb0
55-
- const: rxdb1
65+
minItems: 3
66+
maxItems: 4
5667

5768
memory-region:
5869
description:
5970
phandle to a node describing reserved memory (System RAM memory)
6071
used by DSP (see bindings/reserved-memory/reserved-memory.txt)
61-
maxItems: 1
72+
minItems: 1
73+
maxItems: 4
74+
75+
firmware-name:
76+
description: |
77+
Default name of the firmware to load to the remote processor.
78+
79+
fsl,dsp-ctrl:
80+
$ref: /schemas/types.yaml#/definitions/phandle
81+
description:
82+
Phandle to syscon block which provide access for processor enablement
6283

6384
required:
6485
- compatible
@@ -70,6 +91,58 @@ required:
7091
- mbox-names
7192
- memory-region
7293

94+
allOf:
95+
- if:
96+
properties:
97+
compatible:
98+
contains:
99+
enum:
100+
- fsl,imx8qxp-dsp
101+
- fsl,imx8qm-dsp
102+
- fsl,imx8qxp-hifi4
103+
- fsl,imx8qm-hifi4
104+
then:
105+
properties:
106+
power-domains:
107+
minItems: 4
108+
else:
109+
properties:
110+
power-domains:
111+
maxItems: 1
112+
113+
- if:
114+
properties:
115+
compatible:
116+
contains:
117+
enum:
118+
- fsl,imx8qxp-hifi4
119+
- fsl,imx8qm-hifi4
120+
- fsl,imx8mp-hifi4
121+
- fsl,imx8ulp-hifi4
122+
then:
123+
properties:
124+
memory-region:
125+
minItems: 4
126+
mboxes:
127+
maxItems: 3
128+
mbox-names:
129+
items:
130+
- const: tx
131+
- const: rx
132+
- const: rxdb
133+
else:
134+
properties:
135+
memory-region:
136+
maxItems: 1
137+
mboxes:
138+
minItems: 4
139+
mbox-names:
140+
items:
141+
- const: txdb0
142+
- const: txdb1
143+
- const: rxdb0
144+
- const: rxdb1
145+
73146
additionalProperties: false
74147

75148
examples:
@@ -91,3 +164,41 @@ examples:
91164
mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>;
92165
memory-region = <&dsp_reserved>;
93166
};
167+
- |
168+
#include <dt-bindings/clock/imx8mp-clock.h>
169+
dsp_reserved: dsp@92400000 {
170+
reg = <0x92400000 0x1000000>;
171+
no-map;
172+
};
173+
dsp_vdev0vring0: vdev0vring0@942f0000 {
174+
reg = <0x942f0000 0x8000>;
175+
no-map;
176+
};
177+
dsp_vdev0vring1: vdev0vring1@942f8000 {
178+
reg = <0x942f8000 0x8000>;
179+
no-map;
180+
};
181+
dsp_vdev0buffer: vdev0buffer@94300000 {
182+
compatible = "shared-dma-pool";
183+
reg = <0x94300000 0x100000>;
184+
no-map;
185+
};
186+
187+
dsp: dsp@3b6e8000 {
188+
compatible = "fsl,imx8mp-hifi4";
189+
reg = <0x3b6e8000 0x88000>;
190+
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>,
191+
<&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>,
192+
<&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSP_ROOT>,
193+
<&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>;
194+
clock-names = "ipg", "ocram", "core", "debug";
195+
firmware-name = "imx/dsp/hifi4.bin";
196+
power-domains = <&audiomix_pd>;
197+
mbox-names = "tx", "rx", "rxdb";
198+
mboxes = <&mu2 0 0>,
199+
<&mu2 1 0>,
200+
<&mu2 3 0>;
201+
memory-region = <&dsp_vdev0buffer>, <&dsp_vdev0vring0>,
202+
<&dsp_vdev0vring1>, <&dsp_reserved>;
203+
fsl,dsp-ctrl = <&audio_blk_ctrl>;
204+
};

0 commit comments

Comments
 (0)