mirror of
https://github.com/Evolution-X-Devices/kernel_xiaomi_sm8450-devicetrees
synced 2026-02-01 08:51:30 +00:00
ARM: dts: msm: Enabled IPCC_Compute_L0 & IPCLite protocol
These changes enable IPCLite communication protocol and IPCC_Compute_L0 interrupt of IPCC HW controller. IPCLite protocol relies on IPCC Compute_l0 interrupt for its inter-proc signalling. Change-Id: Ic4865e6e0e216f1f0aa75fe44bb89904cc989fd5
This commit is contained in:
79
bindings/soc/qcom/qcom,ipclite.txt
Normal file
79
bindings/soc/qcom/qcom,ipclite.txt
Normal file
@@ -0,0 +1,79 @@
|
||||
Qualcomm Technologies, Inc. IPCLite Framework
|
||||
|
||||
This binding describes IPCLite protocol within the system.
|
||||
IPCLite is a light weight mechanism for communication between
|
||||
subsystem-pairs. This protocol will be primarily used to
|
||||
support low-latency signalling for Global Synx framework.
|
||||
|
||||
- compatible :
|
||||
Usage: required
|
||||
Value type: <stringlist>
|
||||
Definition: must be "qcom,ipclite"
|
||||
|
||||
- label:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: should specify the subsystem name this edge corresponds to.
|
||||
|
||||
- interrupts:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: should specify the IRQ used by the remote processor to
|
||||
signal this processor about communication related events
|
||||
|
||||
- qcom,remote-pid:
|
||||
Usage: required for ipcmem
|
||||
Value type: <u32>
|
||||
Definition: specifies the identifier of the remote endpoint of this edge
|
||||
|
||||
- mboxes:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: reference to the "rpm_hlos" mailbox in APCS, as described
|
||||
in mailbox/mailbox.txt
|
||||
|
||||
= EXAMPLE
|
||||
The following example represents the IPCLite node along with cdsp sub-node.
|
||||
|
||||
ipclite {
|
||||
compatible = "qcom,ipclite";
|
||||
memory-region = <&global_sync_mem>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
ipclite_cdsp: cdsp {
|
||||
qcom,remote-pid = <5>;
|
||||
label = "cdsp";
|
||||
|
||||
ipclite_signal_0 {
|
||||
index = <0>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_1 {
|
||||
index = <1>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_2 {
|
||||
index = <2>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
};
|
||||
198
qcom/waipio.dtsi
198
qcom/waipio.dtsi
@@ -1559,6 +1559,204 @@
|
||||
#mbox-cells = <2>;
|
||||
};
|
||||
|
||||
ipcc_compute_l0: qcom,ipcc_compute_l0@408000 {
|
||||
compatible = "qcom,ipcc";
|
||||
reg = <0x408000 0x1000>;
|
||||
interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
#mbox-cells = <2>;
|
||||
};
|
||||
|
||||
ipclite {
|
||||
compatible = "qcom,ipclite";
|
||||
memory-region = <&global_sync_mem>;
|
||||
hwlocks = <&tcsr_mutex 11>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
ipclite_apss: apss {
|
||||
qcom,remote-pid = <0>;
|
||||
label = "apss";
|
||||
|
||||
ipclite_signal_0 {
|
||||
index = <0>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_APSS
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_1 {
|
||||
index = <1>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_BROADCAST
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_BROADCAST
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_2 {
|
||||
index = <2>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_APSS
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_3 {
|
||||
index = <3>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_APSS
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_APSS
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
ipclite_cdsp: cdsp {
|
||||
qcom,remote-pid = <5>;
|
||||
label = "cdsp";
|
||||
|
||||
ipclite_signal_0 {
|
||||
index = <0>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_1 {
|
||||
index = <1>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_2 {
|
||||
index = <2>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_3 {
|
||||
index = <3>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CDSP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
ipclite_cvp: cvp {
|
||||
qcom,remote-pid = <6>;
|
||||
label = "cvp";
|
||||
|
||||
ipclite_signal_0 {
|
||||
index = <0>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_1 {
|
||||
index = <1>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_2 {
|
||||
index = <2>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_3 {
|
||||
index = <3>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_CVP
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
ipclite_vpu: vpu {
|
||||
qcom,remote-pid = <8>;
|
||||
label = "vpu";
|
||||
|
||||
ipclite_signal_0 {
|
||||
index = <0>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MSG
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_1 {
|
||||
index = <1>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_MEM_INIT
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_2 {
|
||||
index = <2>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_VERSION
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
|
||||
ipclite_signal_3 {
|
||||
index = <3>;
|
||||
mboxes = <&ipcc_compute_l0 IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST>;
|
||||
interrupt-parent = <&ipcc_compute_l0>;
|
||||
interrupts = <IPCC_CLIENT_VPU
|
||||
IPCC_COMPUTE_L0_SIGNAL_IPCLITE_TEST
|
||||
IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
tcsr: syscon@1fc0000 {
|
||||
compatible = "syscon";
|
||||
reg = <0x1fc0000 0x30000>;
|
||||
|
||||
Reference in New Issue
Block a user