Lines Matching +full:ipa +full:- +full:ap +full:- +full:to +full:- +full:modem

1 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/net/qcom,ipa.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Qualcomm IP Accelerator (IPA)
10 - Alex Elder <elder@kernel.org>
13 This binding describes the Qualcomm IPA. The IPA is capable of offloading
17 The IPA sits between multiple independent "execution environments,"
18 including the Application Processor (AP) and the modem. The IPA presents
19 a Generic Software Interface (GSI) to each execution environment.
20 The GSI is an integral part of the IPA, but it is logically isolated
21 and has a distinct interrupt and a separately-defined address space.
28 - |
29 -------- ---------
31 | AP +<---. .----+ Modem |
32 | +--. | | .->+ |
34 -------- | | | | ---------
36 --+-+---+-+--
38 |-----------|
40 | IPA |
42 -------------
47 - qcom,msm8998-ipa
48 - qcom,sc7180-ipa
49 - qcom,sc7280-ipa
50 - qcom,sdm845-ipa
51 - qcom,sdx55-ipa
52 - qcom,sm8350-ipa
56 - description: IPA registers
57 - description: IPA shared memory
58 - description: GSI registers
60 reg-names:
62 - const: ipa-reg
63 - const: ipa-shared
64 - const: gsi
73 clock-names:
78 - description: IPA interrupt (hardware IRQ)
79 - description: GSI interrupt (hardware IRQ)
80 - description: Modem clock query interrupt (smp2p interrupt)
81 - description: Modem setup ready interrupt (smp2p interrupt)
83 interrupt-names:
85 - const: ipa
86 - const: gsi
87 - const: ipa-clock-query
88 - const: ipa-setup-ready
92 - items:
93 - description: Path leading to system memory
94 - description: Path between the AP and IPA config space
95 - items:
96 - description: Path leading to system memory
97 - description: Path leading to internal memory
98 - description: Path between the AP and IPA config space
100 interconnect-names:
102 - items:
103 - const: memory
104 - const: config
105 - items:
106 - const: memory
107 - const: imem
108 - const: config
112 description: phandle to the AOSS side-channel message RAM
114 qcom,smem-states:
115 $ref: /schemas/types.yaml#/definitions/phandle-array
116 description: State bits used in by the AP to signal the modem.
118 - description: Whether the "ipa-clock-enabled" state bit is valid
119 - description: Whether the IPA clock is enabled (if valid)
121 qcom,smem-state-names:
124 - const: ipa-clock-enabled-valid
125 - const: ipa-clock-enabled
127 modem-init:
130 If present, it indicates that the modem is responsible for
131 performing early IPA initialization, including loading and
134 memory-region:
138 the firmware passed to Trust Zone for authentication. Required
139 when Trust Zone (not the modem) performs early initialization.
141 firmware-name:
146 initializing IPA hardware. Optional, and only used when
150 - compatible
151 - iommus
152 - reg
153 - clocks
154 - interrupts
155 - interconnects
156 - qcom,smem-states
158 # Either modem-init is present, or memory-region must be present.
160 - required:
161 - modem-init
162 - required:
163 - memory-region
165 # If memory-region is present, firmware-name may optionally be present.
166 # But if modem-init is present, firmware-name must not be present.
169 - modem-init
173 - firmware-name
178 - |
179 #include <dt-bindings/interrupt-controller/arm-gic.h>
180 #include <dt-bindings/clock/qcom,rpmh.h>
181 #include <dt-bindings/interconnect/qcom,sdm845.h>
183 smp2p-mpss {
188 qcom,local-pid = <0>;
189 qcom,remote-pid = <5>;
191 ipa_smp2p_out: ipa-ap-to-modem {
192 qcom,entry-name = "ipa";
193 #qcom,smem-state-cells = <1>;
196 ipa_smp2p_in: ipa-modem-to-ap {
197 qcom,entry-name = "ipa";
198 interrupt-controller;
199 #interrupt-cells = <2>;
203 ipa@1e40000 {
204 compatible = "qcom,sdm845-ipa";
206 modem-init;
212 reg-names = "ipa-reg",
213 "ipa-shared",
216 interrupts-extended = <&intc GIC_SPI 311 IRQ_TYPE_EDGE_RISING>,
220 interrupt-names = "ipa",
222 "ipa-clock-query",
223 "ipa-setup-ready";
226 clock-names = "core";
232 interconnect-names = "memory",
238 qcom,smem-states = <&ipa_smp2p_out 0>,
240 qcom,smem-state-names = "ipa-clock-enabled-valid",
241 "ipa-clock-enabled";