Skip to content

Commit 2dca74a

Browse files
committed
Merge tag 'mailbox-v5.8' of git://git.linaro.org/landing-teams/working/fujitsu/integration
Pull mailbox updates from Jassi Brar: "qcom: - new controller driver for IPCC - reorg the of_device data - add support for ipq6018 platform spreadtrum: - new sprd controller driver imx: - implement suspend/resume PM support misc: - make pcc driver struct static - fix return value in imx_mu_scu - disable clock before bailout in imx probe - remove duplicate error mssg in zynqmp probe - fix header size in imx.scu - check for null instead of is-err in zynqmp" * tag 'mailbox-v5.8' of git://git.linaro.org/landing-teams/working/fujitsu/integration: mailbox: qcom: Add ipq6018 apcs compatible mailbox: qcom: Add clock driver name in apcs mailbox driver data dt-bindings: mailbox: Add YAML schemas for QCOM APCS global block mailbox: imx: ONLY IPC MU needs IRQF_NO_SUSPEND flag mailbox: imx: Add runtime PM callback to handle MU clocks mailbox: imx: Add context save/restore for suspend/resume MAINTAINERS: Add entry for Qualcomm IPCC driver mailbox: Add support for Qualcomm IPCC dt-bindings: mailbox: Add devicetree binding for Qcom IPCC mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe() mailbox: imx-mailbox: fix scu msg header size check mailbox: sprd: Add Spreadtrum mailbox driver dt-bindings: mailbox: Add the Spreadtrum mailbox documentation mailbox: ZynqMP IPI: Delete an error message in zynqmp_ipi_probe() mailbox: imx: Disable the clock on devm_mbox_controller_register() failure mailbox: imx: Fix return in imx_mu_scu_xlate() mailbox: imx: Support runtime PM mailbox: pcc: make pcc_mbox_driver static
2 parents e0154bd + e9f901d commit 2dca74a

File tree

14 files changed

+1097
-132
lines changed

14 files changed

+1097
-132
lines changed

Documentation/devicetree/bindings/mailbox/qcom,apcs-kpss-global.txt

Lines changed: 0 additions & 88 deletions
This file was deleted.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Qualcomm APCS global block bindings
8+
9+
description:
10+
This binding describes the APCS "global" block found in various Qualcomm
11+
platforms.
12+
13+
maintainers:
14+
- Sivaprakash Murugesan <[email protected]>
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- qcom,ipq8074-apcs-apps-global
20+
- qcom,msm8916-apcs-kpss-global
21+
- qcom,msm8996-apcs-hmss-global
22+
- qcom,msm8998-apcs-hmss-global
23+
- qcom,qcs404-apcs-apps-global
24+
- qcom,sc7180-apss-shared
25+
- qcom,sdm845-apss-shared
26+
- qcom,sm8150-apss-shared
27+
28+
reg:
29+
maxItems: 1
30+
31+
clocks:
32+
description: phandles to the parent clocks of the clock driver
33+
items:
34+
- description: primary pll parent of the clock driver
35+
- description: auxiliary parent
36+
37+
'#mbox-cells':
38+
const: 1
39+
40+
'#clock-cells':
41+
const: 0
42+
43+
clock-names:
44+
items:
45+
- const: pll
46+
- const: aux
47+
48+
required:
49+
- compatible
50+
- reg
51+
- '#mbox-cells'
52+
53+
additionalProperties: false
54+
55+
examples:
56+
57+
# Example apcs with msm8996
58+
- |
59+
#include <dt-bindings/interrupt-controller/arm-gic.h>
60+
apcs_glb: mailbox@9820000 {
61+
compatible = "qcom,msm8996-apcs-hmss-global";
62+
reg = <0x9820000 0x1000>;
63+
64+
#mbox-cells = <1>;
65+
};
66+
67+
rpm-glink {
68+
compatible = "qcom,glink-rpm";
69+
interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
70+
qcom,rpm-msg-ram = <&rpm_msg_ram>;
71+
mboxes = <&apcs_glb 0>;
72+
mbox-names = "rpm_hlos";
73+
};
74+
75+
# Example apcs with qcs404
76+
- |
77+
#define GCC_APSS_AHB_CLK_SRC 1
78+
#define GCC_GPLL0_AO_OUT_MAIN 123
79+
apcs: mailbox@b011000 {
80+
compatible = "qcom,qcs404-apcs-apps-global";
81+
reg = <0x0b011000 0x1000>;
82+
#mbox-cells = <1>;
83+
clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
84+
clock-names = "pll", "aux";
85+
#clock-cells = <0>;
86+
};
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mailbox/qcom-ipcc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Technologies, Inc. Inter-Processor Communication Controller
8+
9+
maintainers:
10+
- Manivannan Sadhasivam <[email protected]>
11+
12+
description:
13+
The Inter-Processor Communication Controller (IPCC) is a centralized hardware
14+
to route interrupts across various subsystems. It involves a three-level
15+
addressing scheme called protocol, client and signal. For example, consider an
16+
entity on the Application Processor Subsystem (APSS) that wants to listen to
17+
Modem's interrupts via Shared Memory Point to Point (SMP2P) interface. In such
18+
a case, the client would be Modem (client-id is 2) and the signal would be
19+
SMP2P (signal-id is 2). The SMP2P itself falls under the Multiprocessor (MPROC)
20+
protocol (protocol-id is 0). Refer include/dt-bindings/mailbox/qcom-ipcc.h
21+
for the list of such IDs.
22+
23+
properties:
24+
compatible:
25+
items:
26+
- enum:
27+
- qcom,sm8250-ipcc
28+
- const: qcom,ipcc
29+
30+
reg:
31+
maxItems: 1
32+
33+
interrupts:
34+
maxItems: 1
35+
36+
interrupt-controller: true
37+
38+
"#interrupt-cells":
39+
const: 3
40+
description:
41+
The first cell is the client-id, the second cell is the signal-id and the
42+
third cell is the interrupt type.
43+
44+
"#mbox-cells":
45+
const: 2
46+
description:
47+
The first cell is the client-id, and the second cell is the signal-id.
48+
49+
required:
50+
- compatible
51+
- reg
52+
- interrupts
53+
- interrupt-controller
54+
- "#interrupt-cells"
55+
- "#mbox-cells"
56+
57+
additionalProperties: false
58+
59+
examples:
60+
- |
61+
#include <dt-bindings/interrupt-controller/arm-gic.h>
62+
#include <dt-bindings/mailbox/qcom-ipcc.h>
63+
64+
mailbox@408000 {
65+
compatible = "qcom,sm8250-ipcc", "qcom,ipcc";
66+
reg = <0x408000 0x1000>;
67+
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
68+
interrupt-controller;
69+
#interrupt-cells = <3>;
70+
#mbox-cells = <2>;
71+
};
72+
73+
smp2p-modem {
74+
compatible = "qcom,smp2p";
75+
interrupts-extended = <&ipcc_mproc IPCC_CLIENT_MPSS
76+
IPCC_MPROC_SIGNAL_SMP2P IRQ_TYPE_EDGE_RISING>;
77+
mboxes = <&ipcc_mproc IPCC_CLIENT_MPSS IPCC_MPROC_SIGNAL_SMP2P>;
78+
79+
/* Other SMP2P fields */
80+
};
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/mailbox/sprd-mailbox.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Spreadtrum mailbox controller bindings
8+
9+
maintainers:
10+
- Orson Zhai <[email protected]>
11+
- Baolin Wang <[email protected]>
12+
- Chunyan Zhang <[email protected]>
13+
14+
properties:
15+
compatible:
16+
enum:
17+
- sprd,sc9860-mailbox
18+
19+
reg:
20+
items:
21+
- description: inbox registers' base address
22+
- description: outbox registers' base address
23+
24+
interrupts:
25+
items:
26+
- description: inbox interrupt
27+
- description: outbox interrupt
28+
29+
clocks:
30+
maxItems: 1
31+
32+
clock-names:
33+
items:
34+
- const: enable
35+
36+
"#mbox-cells":
37+
const: 1
38+
39+
required:
40+
- compatible
41+
- reg
42+
- interrupts
43+
- "#mbox-cells"
44+
- clocks
45+
- clock-names
46+
47+
additionalProperties: false
48+
49+
examples:
50+
- |
51+
#include <dt-bindings/interrupt-controller/arm-gic.h>
52+
mailbox: mailbox@400a0000 {
53+
compatible = "sprd,sc9860-mailbox";
54+
reg = <0 0x400a0000 0 0x8000>, <0 0x400a8000 0 0x8000>;
55+
#mbox-cells = <1>;
56+
clock-names = "enable";
57+
clocks = <&aon_gate 53>;
58+
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
59+
};
60+
...

MAINTAINERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14187,6 +14187,14 @@ L: [email protected]
1418714187
S: Maintained
1418814188
F: drivers/iommu/qcom_iommu.c
1418914189

14190+
QUALCOMM IPCC MAILBOX DRIVER
14191+
M: Manivannan Sadhasivam <[email protected]>
14192+
14193+
S: Supported
14194+
F: Documentation/devicetree/bindings/mailbox/qcom-ipcc.yaml
14195+
F: drivers/mailbox/qcom-ipcc.c
14196+
F: include/dt-bindings/mailbox/qcom-ipcc.h
14197+
1419014198
QUALCOMM RMNET DRIVER
1419114199
M: Subash Abhinov Kasiviswanathan <[email protected]>
1419214200
M: Sean Tranchetti <[email protected]>

drivers/mailbox/Kconfig

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,4 +236,22 @@ config SUN6I_MSGBOX
236236
various Allwinner SoCs. This mailbox is used for communication
237237
between the application CPUs and the power management coprocessor.
238238

239+
config SPRD_MBOX
240+
tristate "Spreadtrum Mailbox"
241+
depends on ARCH_SPRD || COMPILE_TEST
242+
help
243+
Mailbox driver implementation for the Spreadtrum platform. It is used
244+
to send message between application processors and MCU. Say Y here if
245+
you want to build the Spreatrum mailbox controller driver.
246+
247+
config QCOM_IPCC
248+
bool "Qualcomm Technologies, Inc. IPCC driver"
249+
depends on ARCH_QCOM || COMPILE_TEST
250+
help
251+
Qualcomm Technologies, Inc. Inter-Processor Communication Controller
252+
(IPCC) driver for MSM devices. The driver provides mailbox support for
253+
sending interrupts to the clients. On the other hand, the driver also
254+
acts as an interrupt controller for receiving interrupts from clients.
255+
Say Y here if you want to build this driver.
256+
239257
endif

drivers/mailbox/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,7 @@ obj-$(CONFIG_MTK_CMDQ_MBOX) += mtk-cmdq-mailbox.o
5050
obj-$(CONFIG_ZYNQMP_IPI_MBOX) += zynqmp-ipi-mailbox.o
5151

5252
obj-$(CONFIG_SUN6I_MSGBOX) += sun6i-msgbox.o
53+
54+
obj-$(CONFIG_SPRD_MBOX) += sprd-mailbox.o
55+
56+
obj-$(CONFIG_QCOM_IPCC) += qcom-ipcc.o

0 commit comments

Comments
 (0)