forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.5 KiB
83 lines
2.5 KiB
# 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 <[email protected]> |
|
|
|
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,sm6350-ipcc |
|
- qcom,sm8250-ipcc |
|
- qcom,sm8350-ipcc |
|
- qcom,sc7280-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 */ |
|
};
|
|
|