mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
dt-bindings: mailbox: Add devicetree binding for Qcom IPCC
Add devicetree YAML binding for Qualcomm Inter-Processor Communication Controller (IPCC) block. Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
This commit is contained in:
committed by
Jassi Brar
parent
445aeeb569
commit
a01822e94e
80
Documentation/devicetree/bindings/mailbox/qcom-ipcc.yaml
Normal file
80
Documentation/devicetree/bindings/mailbox/qcom-ipcc.yaml
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mailbox/qcom-ipcc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Qualcomm Technologies, Inc. Inter-Processor Communication Controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
The Inter-Processor Communication Controller (IPCC) is a centralized hardware
|
||||||
|
to route interrupts across various subsystems. It involves a three-level
|
||||||
|
addressing scheme called protocol, client and signal. For example, consider an
|
||||||
|
entity on the Application Processor Subsystem (APSS) that wants to listen to
|
||||||
|
Modem's interrupts via Shared Memory Point to Point (SMP2P) interface. In such
|
||||||
|
a case, the client would be Modem (client-id is 2) and the signal would be
|
||||||
|
SMP2P (signal-id is 2). The SMP2P itself falls under the Multiprocessor (MPROC)
|
||||||
|
protocol (protocol-id is 0). Refer include/dt-bindings/mailbox/qcom-ipcc.h
|
||||||
|
for the list of such IDs.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- qcom,sm8250-ipcc
|
||||||
|
- const: qcom,ipcc
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
interrupt-controller: true
|
||||||
|
|
||||||
|
"#interrupt-cells":
|
||||||
|
const: 3
|
||||||
|
description:
|
||||||
|
The first cell is the client-id, the second cell is the signal-id and the
|
||||||
|
third cell is the interrupt type.
|
||||||
|
|
||||||
|
"#mbox-cells":
|
||||||
|
const: 2
|
||||||
|
description:
|
||||||
|
The first cell is the client-id, and the second cell is the signal-id.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- interrupts
|
||||||
|
- interrupt-controller
|
||||||
|
- "#interrupt-cells"
|
||||||
|
- "#mbox-cells"
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
#include <dt-bindings/mailbox/qcom-ipcc.h>
|
||||||
|
|
||||||
|
mailbox@408000 {
|
||||||
|
compatible = "qcom,sm8250-ipcc", "qcom,ipcc";
|
||||||
|
reg = <0x408000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <3>;
|
||||||
|
#mbox-cells = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
smp2p-modem {
|
||||||
|
compatible = "qcom,smp2p";
|
||||||
|
interrupts-extended = <&ipcc_mproc IPCC_CLIENT_MPSS
|
||||||
|
IPCC_MPROC_SIGNAL_SMP2P IRQ_TYPE_EDGE_RISING>;
|
||||||
|
mboxes = <&ipcc_mproc IPCC_CLIENT_MPSS IPCC_MPROC_SIGNAL_SMP2P>;
|
||||||
|
|
||||||
|
/* Other SMP2P fields */
|
||||||
|
};
|
33
include/dt-bindings/mailbox/qcom-ipcc.h
Normal file
33
include/dt-bindings/mailbox/qcom-ipcc.h
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __DT_BINDINGS_MAILBOX_IPCC_H
|
||||||
|
#define __DT_BINDINGS_MAILBOX_IPCC_H
|
||||||
|
|
||||||
|
/* Signal IDs for MPROC protocol */
|
||||||
|
#define IPCC_MPROC_SIGNAL_GLINK_QMP 0
|
||||||
|
#define IPCC_MPROC_SIGNAL_SMP2P 2
|
||||||
|
#define IPCC_MPROC_SIGNAL_PING 3
|
||||||
|
|
||||||
|
/* Client IDs */
|
||||||
|
#define IPCC_CLIENT_AOP 0
|
||||||
|
#define IPCC_CLIENT_TZ 1
|
||||||
|
#define IPCC_CLIENT_MPSS 2
|
||||||
|
#define IPCC_CLIENT_LPASS 3
|
||||||
|
#define IPCC_CLIENT_SLPI 4
|
||||||
|
#define IPCC_CLIENT_SDC 5
|
||||||
|
#define IPCC_CLIENT_CDSP 6
|
||||||
|
#define IPCC_CLIENT_NPU 7
|
||||||
|
#define IPCC_CLIENT_APSS 8
|
||||||
|
#define IPCC_CLIENT_GPU 9
|
||||||
|
#define IPCC_CLIENT_CVP 10
|
||||||
|
#define IPCC_CLIENT_CAM 11
|
||||||
|
#define IPCC_CLIENT_VPU 12
|
||||||
|
#define IPCC_CLIENT_PCIE0 13
|
||||||
|
#define IPCC_CLIENT_PCIE1 14
|
||||||
|
#define IPCC_CLIENT_PCIE2 15
|
||||||
|
#define IPCC_CLIENT_SPSS 16
|
||||||
|
|
||||||
|
#endif
|
Reference in New Issue
Block a user