mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 17:23:55 +08:00
dt-bindings: soc: qcom: add IPA bindings
Add the binding definitions for the "qcom,ipa" device tree node. Signed-off-by: Alex Elder <elder@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d7f5f3c89c
commit
fc39c40a15
192
Documentation/devicetree/bindings/net/qcom,ipa.yaml
Normal file
192
Documentation/devicetree/bindings/net/qcom,ipa.yaml
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/net/qcom,ipa.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Qualcomm IP Accelerator (IPA)
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Alex Elder <elder@kernel.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
This binding describes the Qualcomm IPA. The IPA is capable of offloading
|
||||||
|
certain network processing tasks (e.g. filtering, routing, and NAT) from
|
||||||
|
the main processor.
|
||||||
|
|
||||||
|
The IPA sits between multiple independent "execution environments,"
|
||||||
|
including the Application Processor (AP) and the modem. The IPA presents
|
||||||
|
a Generic Software Interface (GSI) to each execution environment.
|
||||||
|
The GSI is an integral part of the IPA, but it is logically isolated
|
||||||
|
and has a distinct interrupt and a separately-defined address space.
|
||||||
|
|
||||||
|
See also soc/qcom/qcom,smp2p.txt and interconnect/interconnect.txt.
|
||||||
|
|
||||||
|
- |
|
||||||
|
-------- ---------
|
||||||
|
| | | |
|
||||||
|
| AP +<---. .----+ Modem |
|
||||||
|
| +--. | | .->+ |
|
||||||
|
| | | | | | | |
|
||||||
|
-------- | | | | ---------
|
||||||
|
v | v |
|
||||||
|
--+-+---+-+--
|
||||||
|
| GSI |
|
||||||
|
|-----------|
|
||||||
|
| |
|
||||||
|
| IPA |
|
||||||
|
| |
|
||||||
|
-------------
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: "qcom,sdm845-ipa"
|
||||||
|
|
||||||
|
reg:
|
||||||
|
items:
|
||||||
|
- description: IPA registers
|
||||||
|
- description: IPA shared memory
|
||||||
|
- description: GSI registers
|
||||||
|
|
||||||
|
reg-names:
|
||||||
|
items:
|
||||||
|
- const: ipa-reg
|
||||||
|
- const: ipa-shared
|
||||||
|
- const: gsi
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
const: core
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
items:
|
||||||
|
- description: IPA interrupt (hardware IRQ)
|
||||||
|
- description: GSI interrupt (hardware IRQ)
|
||||||
|
- description: Modem clock query interrupt (smp2p interrupt)
|
||||||
|
- description: Modem setup ready interrupt (smp2p interrupt)
|
||||||
|
|
||||||
|
interrupt-names:
|
||||||
|
items:
|
||||||
|
- const: ipa
|
||||||
|
- const: gsi
|
||||||
|
- const: ipa-clock-query
|
||||||
|
- const: ipa-setup-ready
|
||||||
|
|
||||||
|
interconnects:
|
||||||
|
items:
|
||||||
|
- description: Interconnect path between IPA and main memory
|
||||||
|
- description: Interconnect path between IPA and internal memory
|
||||||
|
- description: Interconnect path between IPA and the AP subsystem
|
||||||
|
|
||||||
|
interconnect-names:
|
||||||
|
items:
|
||||||
|
- const: memory
|
||||||
|
- const: imem
|
||||||
|
- const: config
|
||||||
|
|
||||||
|
qcom,smem-states:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||||
|
description: State bits used in by the AP to signal the modem.
|
||||||
|
items:
|
||||||
|
- description: Whether the "ipa-clock-enabled" state bit is valid
|
||||||
|
- description: Whether the IPA clock is enabled (if valid)
|
||||||
|
|
||||||
|
qcom,smem-state-names:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/string-array
|
||||||
|
description: The names of the state bits used for SMP2P output
|
||||||
|
items:
|
||||||
|
- const: ipa-clock-enabled-valid
|
||||||
|
- const: ipa-clock-enabled
|
||||||
|
|
||||||
|
modem-init:
|
||||||
|
type: boolean
|
||||||
|
description:
|
||||||
|
If present, it indicates that the modem is responsible for
|
||||||
|
performing early IPA initialization, including loading and
|
||||||
|
validating firwmare used by the GSI.
|
||||||
|
|
||||||
|
modem-remoteproc:
|
||||||
|
$ref: /schemas/types.yaml#definitions/phandle
|
||||||
|
description:
|
||||||
|
This defines the phandle to the remoteproc node representing
|
||||||
|
the modem subsystem. This is requied so the IPA driver can
|
||||||
|
receive and act on notifications of modem up/down events.
|
||||||
|
|
||||||
|
memory-region:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||||
|
maxItems: 1
|
||||||
|
description:
|
||||||
|
If present, a phandle for a reserved memory area that holds
|
||||||
|
the firmware passed to Trust Zone for authentication. Required
|
||||||
|
when Trust Zone (not the modem) performs early initialization.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
- interrupts
|
||||||
|
- interconnects
|
||||||
|
- qcom,smem-states
|
||||||
|
- modem-remoteproc
|
||||||
|
|
||||||
|
oneOf:
|
||||||
|
- required:
|
||||||
|
- modem-init
|
||||||
|
- required:
|
||||||
|
- memory-region
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
smp2p-mpss {
|
||||||
|
compatible = "qcom,smp2p";
|
||||||
|
ipa_smp2p_out: ipa-ap-to-modem {
|
||||||
|
qcom,entry-name = "ipa";
|
||||||
|
#qcom,smem-state-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
ipa_smp2p_in: ipa-modem-to-ap {
|
||||||
|
qcom,entry-name = "ipa";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ipa@1e40000 {
|
||||||
|
compatible = "qcom,sdm845-ipa";
|
||||||
|
|
||||||
|
modem-init;
|
||||||
|
modem-remoteproc = <&mss_pil>;
|
||||||
|
|
||||||
|
reg = <0 0x1e40000 0 0x7000>,
|
||||||
|
<0 0x1e47000 0 0x2000>,
|
||||||
|
<0 0x1e04000 0 0x2c000>;
|
||||||
|
reg-names = "ipa-reg",
|
||||||
|
"ipa-shared";
|
||||||
|
"gsi";
|
||||||
|
|
||||||
|
interrupts-extended = <&intc 0 311 IRQ_TYPE_EDGE_RISING>,
|
||||||
|
<&intc 0 432 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
|
||||||
|
<&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
|
||||||
|
interrupt-names = "ipa",
|
||||||
|
"gsi",
|
||||||
|
"ipa-clock-query",
|
||||||
|
"ipa-setup-ready";
|
||||||
|
|
||||||
|
clocks = <&rpmhcc RPMH_IPA_CLK>;
|
||||||
|
clock-names = "core";
|
||||||
|
|
||||||
|
interconnects =
|
||||||
|
<&rsc_hlos MASTER_IPA &rsc_hlos SLAVE_EBI1>,
|
||||||
|
<&rsc_hlos MASTER_IPA &rsc_hlos SLAVE_IMEM>,
|
||||||
|
<&rsc_hlos MASTER_APPSS_PROC &rsc_hlos SLAVE_IPA_CFG>;
|
||||||
|
interconnect-names = "memory",
|
||||||
|
"imem",
|
||||||
|
"config";
|
||||||
|
|
||||||
|
qcom,smem-states = <&ipa_smp2p_out 0>,
|
||||||
|
<&ipa_smp2p_out 1>;
|
||||||
|
qcom,smem-state-names = "ipa-clock-enabled-valid",
|
||||||
|
"ipa-clock-enabled";
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user