mirror of
https://github.com/Evolution-X-Devices/kernel_xiaomi_sm8450-devicetrees
synced 2026-02-01 08:51:30 +00:00
Merge "dt-bindings: Add device-tree bindings for IPCC driver"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
88d7b27847
39
bindings/soc/qcom/qcom,ipcc-self-ping-test.yaml
Normal file
39
bindings/soc/qcom/qcom,ipcc-self-ping-test.yaml
Normal file
@@ -0,0 +1,39 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/soc/qcom/qcom,ipcc-self-ping-test.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: The document describes the device tree binding for testing the IPCC
|
||||
|
||||
maintainers:
|
||||
- Raghavendra Rao Ananta <rananta@quicinc.com>
|
||||
|
||||
description: |+
|
||||
For details on the IPCC driver, please see qcom,ipcc.txt
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must be "qcom,ipcc-self-ping"
|
||||
|
||||
interrupts-extended:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: One entry specifying the phandle to the IPCC protocol, the APPS'
|
||||
client-id, signal-id and IRQ type.
|
||||
|
||||
mboxes:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: One entry specifying the phandle to the IPCC protocol, the APPS'
|
||||
client-id and the signal-id (same as interrupts-extended).
|
||||
|
||||
example:
|
||||
- |
|
||||
ipcc_self_ping: ipcc-self-ping {
|
||||
compatible = "qcom,ipcc-self-ping";
|
||||
interrupts-extended = <&ipcc_mproc IPCC_CLIENT_APSS
|
||||
IPCC_MPROC_SIGNAL_SMP2P IRQ_TYPE_LEVEL_HIGH>;
|
||||
mboxes = <&ipcc_mproc IPCC_CLIENT_APSS IPCC_MPROC_SIGNAL_SMP2P>;
|
||||
};
|
||||
86
bindings/soc/qcom/qcom,ipcc.yaml
Normal file
86
bindings/soc/qcom/qcom,ipcc.yaml
Normal file
@@ -0,0 +1,86 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/soc/qcom/qcom,ipcc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. Inter-Processor Communication Controller binding
|
||||
|
||||
maintainers:
|
||||
- Raghavendra Rao Ananta <rananta@quicinc.com>
|
||||
|
||||
description: |
|
||||
The Inter-Processor Communication Controller (IPCC) is a centralized hardware
|
||||
to route the interrupts across various subsystems. It involves a three-level
|
||||
addressing scheme: 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: 2) and the signal would be SMP2P
|
||||
(signal-id: 2). The SMP2P itself falls under the Multiprocessor (MPROC) protocol
|
||||
(protocol-id: 0). Please visit include/dt-bindings/soc/qcom/qcom,ipcc.h for the
|
||||
list of IDs.
|
||||
|
||||
Each protocol has a dedicated interrupt line, and as a result, each protocol is
|
||||
exposed as a separate interrupt controller. One of the duties of this interrupt
|
||||
controller driver would be to forward the interrupt to the correct entity
|
||||
on the APPS. The children inheriting the interrupt-controller would be
|
||||
mentioning the client-id and signal-id that it's interested in.
|
||||
|
||||
On the other hand, sending an interrupt to a subsystem is done through the
|
||||
mailbox interface, which again requires client-id and signal-id.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must be "qcom,ipcc"
|
||||
|
||||
reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: One entry specifying the base address and size corresponding to
|
||||
the protocol frame
|
||||
|
||||
interrupts:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: One entry specifying the protocol's interrupt
|
||||
|
||||
interrupt-controller:
|
||||
Usage: required
|
||||
Value type: <empty>
|
||||
Definition: Specifies that the device acts as an interrupt controller
|
||||
|
||||
#interrupt-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: must be 3 - denoting client-id, signal-id and interrupt type
|
||||
|
||||
mbox-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: must be 2 - denoting client-id and signal-id
|
||||
|
||||
example:
|
||||
- |
|
||||
#include <dt-bindings/soc/qcom,ipcc.h>
|
||||
|
||||
ipcc_mproc: qcom,ipcc@408000 {
|
||||
compatible = "qcom,ipcc";
|
||||
reg = <0x408000 0x1000>;
|
||||
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
#mbox-cells = <2>;
|
||||
};
|
||||
|
||||
client-example:
|
||||
- |
|
||||
qcom,smp2p-modem@1799000c {
|
||||
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 */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user