Skip to content

Commit bd485d2

Browse files
committed
Merge tag 'rproc-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
Pull remoteproc updates from Bjorn Andersson: "The remoteproc repo is moved to a new path on git.kernel.org, to allow Mathieu push access to the branches. Support for the Mediatek MT8195 SCP was added, the related DeviceTree binding was converted to YAML and MT8192 SCP was documented as well. Amlogic Meson6, Meson8, Meson8b and Meson8m2 has an ARC core to aid in resuming the system after suspend, a new remoteproc driver for booting this core is introduced. A new driver to support the DSP processor found on NXP i.MX8QM, i.MX8QXP, i.MX8MP and i.MX8ULP is added. The Qualcomm modem and TrustZone based remoteproc drivers gains support for the modem in SC7280 and MSM8996 gains support for a missing power-domain. Throughout the Qualcomm drivers, the support for informing the always-on power coprocessor about the state of each remoteproc is reworked to avoid complications related to our use of genpd and the system suspend state. Lastly a number of small fixes are found throughout the drivers and framework" * tag 'rproc-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (39 commits) remoteproc: Remove vdev_to_rvdev and vdev_to_rproc from remoteproc API remoteproc: omap_remoteproc: simplify getting .driver_data remoteproc: qcom_q6v5_mss: Use devm_platform_ioremap_resource_byname() to simplify code remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()' remoteproc: Fix spelling mistake "atleast" -> "at least" remoteproc: imx_dsp_rproc: mark PM functions as __maybe_unused remoteproc: imx_dsp_rproc: Correct the comment style of copyright dt-bindings: dsp: fsl: Update binding document for remote proc driver remoteproc: imx_dsp_rproc: Add remoteproc driver for DSP on i.MX remoteproc: imx_rproc: Add IMX_RPROC_SCU_API method remoteproc: imx_rproc: Move common structure to header file rpmsg: char: Remove useless include remoteproc: meson-mx-ao-arc: fix a bit test remoteproc: mss: q6v5-mss: Add modem support on SC7280 dt-bindings: remoteproc: qcom: Update Q6V5 Modem PIL binding remoteproc: qcom: pas: Add SC7280 Modem support dt-bindings: remoteproc: qcom: pas: Add SC7280 MPSS support remoteproc: qcom: pas: Use the same init resources for MSM8996 and MSM8998 MAINTAINERS: Update remoteproc repo url dt-bindings: remoteproc: k3-dsp: Cleanup SoC compatible from DT example ...
2 parents becc1fb + 9955548 commit bd485d2

33 files changed

+2377
-303
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+
};
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/remoteproc/amlogic,meson-mx-ao-arc.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Amlogic Meson AO ARC Remote Processor bindings
8+
9+
description:
10+
Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs embed an ARC core
11+
controller for always-on operations, typically used for managing
12+
system suspend. Meson6 and older use a ARC core based on the ARCv1
13+
ISA, while Meson8, Meson8b and Meson8m2 use an ARC EM4 (ARCv2 ISA)
14+
core.
15+
16+
maintainers:
17+
- Martin Blumenstingl <[email protected]>
18+
19+
properties:
20+
compatible:
21+
items:
22+
- enum:
23+
- amlogic,meson8-ao-arc
24+
- amlogic,meson8b-ao-arc
25+
- const: amlogic,meson-mx-ao-arc
26+
27+
firmware-name:
28+
$ref: /schemas/types.yaml#/definitions/string
29+
description:
30+
The name of the firmware which should be loaded for this remote
31+
processor.
32+
33+
reg:
34+
description:
35+
Address ranges of the remap and CPU control addresses for the
36+
remote processor.
37+
minItems: 2
38+
39+
reg-names:
40+
items:
41+
- const: remap
42+
- const: cpu
43+
44+
resets:
45+
minItems: 1
46+
47+
clocks:
48+
minItems: 1
49+
50+
sram:
51+
$ref: /schemas/types.yaml#/definitions/phandle
52+
description:
53+
phandles to a reserved SRAM region which is used as the memory of
54+
the ARC core. The region should be defined as child nodes of the
55+
AHB SRAM node as per the generic bindings in
56+
Documentation/devicetree/bindings/sram/sram.yaml
57+
58+
amlogic,secbus2:
59+
$ref: /schemas/types.yaml#/definitions/phandle
60+
description:
61+
A phandle to the SECBUS2 region which contains some configuration
62+
bits of this remote processor
63+
64+
required:
65+
- compatible
66+
- reg
67+
- reg-names
68+
- resets
69+
- clocks
70+
- sram
71+
- amlogic,secbus2
72+
73+
additionalProperties: false
74+
75+
examples:
76+
- |
77+
remoteproc@1c {
78+
compatible= "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc";
79+
reg = <0x1c 0x8>, <0x38 0x8>;
80+
reg-names = "remap", "cpu";
81+
resets = <&media_cpu_reset>;
82+
clocks = <&media_cpu_clock>;
83+
sram = <&ahb_sram_ao_arc>;
84+
amlogic,secbus2 = <&secbus2>;
85+
};
86+
87+
...

Documentation/devicetree/bindings/remoteproc/mtk,scp.txt

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/remoteproc/mtk,scp.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Mediatek SCP Bindings
8+
9+
maintainers:
10+
- Tinghan Shen <[email protected]>
11+
12+
description:
13+
This binding provides support for ARM Cortex M4 Co-processor found on some
14+
Mediatek SoCs.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- mediatek,mt8183-scp
20+
- mediatek,mt8192-scp
21+
- mediatek,mt8195-scp
22+
23+
reg:
24+
description:
25+
Should contain the address ranges for memory regions SRAM, CFG, and
26+
L1TCM.
27+
maxItems: 3
28+
29+
reg-names:
30+
items:
31+
- const: sram
32+
- const: cfg
33+
- const: l1tcm
34+
35+
clocks:
36+
description:
37+
Clock for co-processor (see ../clock/clock-bindings.txt).
38+
Required by mt8183 and mt8192.
39+
maxItems: 1
40+
41+
clock-names:
42+
const: main
43+
44+
required:
45+
- compatible
46+
- reg
47+
- reg-names
48+
49+
if:
50+
properties:
51+
compatible:
52+
enum:
53+
- mediatek,mt8183-scp
54+
- mediatek,mt8192-scp
55+
then:
56+
required:
57+
- clocks
58+
- clock-names
59+
60+
additionalProperties:
61+
type: object
62+
description:
63+
Subnodes of the SCP represent rpmsg devices. The names of the devices
64+
are not important. The properties of these nodes are defined by the
65+
individual bindings for the rpmsg devices.
66+
properties:
67+
mediatek,rpmsg-name:
68+
$ref: /schemas/types.yaml#/definitions/string-array
69+
description:
70+
Contains the name for the rpmsg device. Used to match
71+
the subnode to rpmsg device announced by SCP.
72+
73+
required:
74+
- mediatek,rpmsg-name
75+
76+
examples:
77+
- |
78+
#include <dt-bindings/clock/mt8183-clk.h>
79+
80+
scp@10500000 {
81+
compatible = "mediatek,mt8183-scp";
82+
reg = <0x10500000 0x80000>,
83+
<0x10700000 0x8000>,
84+
<0x10720000 0xe0000>;
85+
reg-names = "sram", "cfg", "l1tcm";
86+
clocks = <&infracfg CLK_INFRA_SCPSYS>;
87+
clock-names = "main";
88+
89+
cros_ec {
90+
mediatek,rpmsg-name = "cros-ec-rpmsg";
91+
};
92+
};

0 commit comments

Comments
 (0)