mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 09:13: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