xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml (revision 0dd3618e06f86bbdacad3a40b25bf79b8917000c)
1985f62a9SSrinivas Kandagatla# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2985f62a9SSrinivas Kandagatla%YAML 1.2
3985f62a9SSrinivas Kandagatla---
4985f62a9SSrinivas Kandagatla$id: "http://devicetree.org/schemas/soc/qcom/qcom,apr.yaml#"
5985f62a9SSrinivas Kandagatla$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6985f62a9SSrinivas Kandagatla
7974c6fafSSrinivas Kandagatlatitle: Qualcomm APR/GPR (Asynchronous/Generic Packet Router) binding
8985f62a9SSrinivas Kandagatla
9985f62a9SSrinivas Kandagatlamaintainers:
10985f62a9SSrinivas Kandagatla  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11985f62a9SSrinivas Kandagatla
12985f62a9SSrinivas Kandagatladescription: |
13974c6fafSSrinivas Kandagatla  This binding describes the Qualcomm APR/GPR, APR/GPR is a IPC protocol for
14974c6fafSSrinivas Kandagatla  communication between Application processor and QDSP. APR/GPR is mainly
15985f62a9SSrinivas Kandagatla  used for audio/voice services on the QDSP.
16985f62a9SSrinivas Kandagatla
17985f62a9SSrinivas Kandagatlaproperties:
18985f62a9SSrinivas Kandagatla  compatible:
19985f62a9SSrinivas Kandagatla    enum:
20985f62a9SSrinivas Kandagatla      - qcom,apr-v2
21974c6fafSSrinivas Kandagatla      - qcom,gpr
22985f62a9SSrinivas Kandagatla
23b2d7616eSKrzysztof Kozlowski  power-domains:
24b2d7616eSKrzysztof Kozlowski    maxItems: 1
25b2d7616eSKrzysztof Kozlowski
26985f62a9SSrinivas Kandagatla  qcom,apr-domain:
27985f62a9SSrinivas Kandagatla    $ref: /schemas/types.yaml#/definitions/uint32
28985f62a9SSrinivas Kandagatla    enum: [1, 2, 3, 4, 5, 6, 7]
29985f62a9SSrinivas Kandagatla    description:
30985f62a9SSrinivas Kandagatla      Selects the processor domain for apr
31985f62a9SSrinivas Kandagatla        1 = APR simulator
32985f62a9SSrinivas Kandagatla        2 = PC Domain
33985f62a9SSrinivas Kandagatla        3 = Modem Domain
34985f62a9SSrinivas Kandagatla        4 = ADSP Domain
35985f62a9SSrinivas Kandagatla        5 = Application processor Domain
36985f62a9SSrinivas Kandagatla        6 = Modem2 Domain
37985f62a9SSrinivas Kandagatla        7 = Application Processor2 Domain
381ff63d54SSrinivas Kandagatla    deprecated: true
391ff63d54SSrinivas Kandagatla
401ff63d54SSrinivas Kandagatla  qcom,domain:
411ff63d54SSrinivas Kandagatla    $ref: /schemas/types.yaml#/definitions/uint32
421ff63d54SSrinivas Kandagatla    minimum: 1
431ff63d54SSrinivas Kandagatla    maximum: 7
441ff63d54SSrinivas Kandagatla    description:
451ff63d54SSrinivas Kandagatla      Selects the processor domain for apr
461ff63d54SSrinivas Kandagatla        1 = APR simulator
471ff63d54SSrinivas Kandagatla        2 = PC Domain
481ff63d54SSrinivas Kandagatla        3 = Modem Domain
491ff63d54SSrinivas Kandagatla        4 = ADSP Domain
501ff63d54SSrinivas Kandagatla        5 = Application processor Domain
511ff63d54SSrinivas Kandagatla        6 = Modem2 Domain
521ff63d54SSrinivas Kandagatla        7 = Application Processor2 Domain
53974c6fafSSrinivas Kandagatla      Selects the processor domain for gpr
54974c6fafSSrinivas Kandagatla        1 = Modem Domain
55974c6fafSSrinivas Kandagatla        2 = Audio DSP Domain
56974c6fafSSrinivas Kandagatla        3 = Application Processor Domain
57985f62a9SSrinivas Kandagatla
58b2d7616eSKrzysztof Kozlowski  qcom,glink-channels:
59b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/string-array
60b2d7616eSKrzysztof Kozlowski    description: Channel name used for the communication
61*0dd3618eSKrzysztof Kozlowski    maxItems: 1
62b2d7616eSKrzysztof Kozlowski
63b2d7616eSKrzysztof Kozlowski  qcom,intents:
64b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
65b2d7616eSKrzysztof Kozlowski    description:
66b2d7616eSKrzysztof Kozlowski      List of (size, amount) pairs describing what intents should be
67b2d7616eSKrzysztof Kozlowski      preallocated for this virtual channel. This can be used to tweak the
68b2d7616eSKrzysztof Kozlowski      default intents available for the channel to meet expectations of the
69b2d7616eSKrzysztof Kozlowski      remote.
70b2d7616eSKrzysztof Kozlowski
71b2d7616eSKrzysztof Kozlowski  qcom,smd-channels:
72b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/string-array
73b2d7616eSKrzysztof Kozlowski    description: Channel name used for the communication
74b2d7616eSKrzysztof Kozlowski    items:
75b2d7616eSKrzysztof Kozlowski      - const: apr_audio_svc
76b2d7616eSKrzysztof Kozlowski
77985f62a9SSrinivas Kandagatla  '#address-cells':
78985f62a9SSrinivas Kandagatla    const: 1
79985f62a9SSrinivas Kandagatla
80985f62a9SSrinivas Kandagatla  '#size-cells':
81985f62a9SSrinivas Kandagatla    const: 0
82985f62a9SSrinivas Kandagatla
83974c6fafSSrinivas Kandagatla#APR/GPR Services
84985f62a9SSrinivas KandagatlapatternProperties:
85974c6fafSSrinivas Kandagatla  "^service@[1-9a-d]$":
86985f62a9SSrinivas Kandagatla    type: object
87985f62a9SSrinivas Kandagatla    description:
88974c6fafSSrinivas Kandagatla      APR/GPR node's client devices use subnodes for desired static port services.
89985f62a9SSrinivas Kandagatla
90985f62a9SSrinivas Kandagatla    properties:
91985f62a9SSrinivas Kandagatla      compatible:
92985f62a9SSrinivas Kandagatla        enum:
93985f62a9SSrinivas Kandagatla          - qcom,q6core
94985f62a9SSrinivas Kandagatla          - qcom,q6asm
95985f62a9SSrinivas Kandagatla          - qcom,q6afe
96985f62a9SSrinivas Kandagatla          - qcom,q6adm
97974c6fafSSrinivas Kandagatla          - qcom,q6apm
98974c6fafSSrinivas Kandagatla          - qcom,q6prm
99985f62a9SSrinivas Kandagatla
100985f62a9SSrinivas Kandagatla      reg:
101974c6fafSSrinivas Kandagatla        minimum: 1
102985f62a9SSrinivas Kandagatla        maximum: 13
103985f62a9SSrinivas Kandagatla        description:
104985f62a9SSrinivas Kandagatla          APR Service ID
105985f62a9SSrinivas Kandagatla            3 = DSP Core Service
106985f62a9SSrinivas Kandagatla            4 = Audio  Front End Service.
107985f62a9SSrinivas Kandagatla            5 = Voice Stream Manager Service.
108985f62a9SSrinivas Kandagatla            6 = Voice processing manager.
109985f62a9SSrinivas Kandagatla            7 = Audio Stream Manager Service.
110985f62a9SSrinivas Kandagatla            8 = Audio Device Manager Service.
111985f62a9SSrinivas Kandagatla            9 = Multimode voice manager.
112985f62a9SSrinivas Kandagatla            10 = Core voice stream.
113985f62a9SSrinivas Kandagatla            11 = Core voice processor.
114985f62a9SSrinivas Kandagatla            12 = Ultrasound stream manager.
115985f62a9SSrinivas Kandagatla            13 = Listen stream manager.
116974c6fafSSrinivas Kandagatla          GPR Service ID
117974c6fafSSrinivas Kandagatla            1 = Audio Process Manager Service
118974c6fafSSrinivas Kandagatla            2 = Proxy Resource Manager Service.
119974c6fafSSrinivas Kandagatla            3 = AMDB Service.
120974c6fafSSrinivas Kandagatla            4 = Voice processing manager.
121985f62a9SSrinivas Kandagatla
122b2496de1SKrzysztof Kozlowski      clock-controller:
123b2496de1SKrzysztof Kozlowski        $ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
124b2496de1SKrzysztof Kozlowski        description: Qualcomm DSP LPASS clock controller
125b2496de1SKrzysztof Kozlowski        unevaluatedProperties: false
126b2496de1SKrzysztof Kozlowski
127b2496de1SKrzysztof Kozlowski      dais:
128b2496de1SKrzysztof Kozlowski        type: object
1297b0ad462SKrzysztof Kozlowski        oneOf:
1307b0ad462SKrzysztof Kozlowski          - $ref: /schemas/sound/qcom,q6apm-dai.yaml#
1317b0ad462SKrzysztof Kozlowski          - $ref: /schemas/sound/qcom,q6dsp-lpass-ports.yaml#
1327b0ad462SKrzysztof Kozlowski          - $ref: /schemas/sound/qcom,q6asm-dais.yaml#
1337b0ad462SKrzysztof Kozlowski        unevaluatedProperties: false
134b2496de1SKrzysztof Kozlowski        description: Qualcomm DSP audio ports
135b2496de1SKrzysztof Kozlowski
136b2496de1SKrzysztof Kozlowski      routing:
137b2496de1SKrzysztof Kozlowski        type: object
138301628d8SKrzysztof Kozlowski        $ref: /schemas/sound/qcom,q6adm-routing.yaml#
139301628d8SKrzysztof Kozlowski        unevaluatedProperties: false
140b2496de1SKrzysztof Kozlowski        description: Qualcomm DSP LPASS audio routing
141b2496de1SKrzysztof Kozlowski
142985f62a9SSrinivas Kandagatla      qcom,protection-domain:
143985f62a9SSrinivas Kandagatla        $ref: /schemas/types.yaml#/definitions/string-array
144985f62a9SSrinivas Kandagatla        description: protection domain service name and path for apr service
145985f62a9SSrinivas Kandagatla          possible values are
146985f62a9SSrinivas Kandagatla          "avs/audio", "msm/adsp/audio_pd".
147985f62a9SSrinivas Kandagatla          "kernel/elf_loader", "msm/modem/wlan_pd".
148985f62a9SSrinivas Kandagatla          "tms/servreg", "msm/adsp/audio_pd".
149985f62a9SSrinivas Kandagatla          "tms/servreg", "msm/modem/wlan_pd".
150985f62a9SSrinivas Kandagatla          "tms/servreg", "msm/slpi/sensor_pd".
151985f62a9SSrinivas Kandagatla
152b2496de1SKrzysztof Kozlowski    allOf:
153b2496de1SKrzysztof Kozlowski      - if:
154b2496de1SKrzysztof Kozlowski          properties:
155b2496de1SKrzysztof Kozlowski            compatible:
156b2496de1SKrzysztof Kozlowski              enum:
157b2496de1SKrzysztof Kozlowski                - qcom,q6afe
158b2496de1SKrzysztof Kozlowski        then:
159b2496de1SKrzysztof Kozlowski          properties:
160b2496de1SKrzysztof Kozlowski            dais:
161b2496de1SKrzysztof Kozlowski              properties:
162b2496de1SKrzysztof Kozlowski                compatible:
163b2496de1SKrzysztof Kozlowski                  const: qcom,q6afe-dais
164985f62a9SSrinivas Kandagatla
165b2496de1SKrzysztof Kozlowski      - if:
166b2496de1SKrzysztof Kozlowski          properties:
167b2496de1SKrzysztof Kozlowski            compatible:
168b2496de1SKrzysztof Kozlowski              enum:
169b2496de1SKrzysztof Kozlowski                - qcom,q6apm
170b2496de1SKrzysztof Kozlowski        then:
171b2496de1SKrzysztof Kozlowski          properties:
172b2496de1SKrzysztof Kozlowski            dais:
173b2496de1SKrzysztof Kozlowski              properties:
174b2496de1SKrzysztof Kozlowski                compatible:
175b2496de1SKrzysztof Kozlowski                  enum:
176b2496de1SKrzysztof Kozlowski                    - qcom,q6apm-dais
177b2496de1SKrzysztof Kozlowski                    - qcom,q6apm-lpass-dais
178985f62a9SSrinivas Kandagatla
179b2496de1SKrzysztof Kozlowski      - if:
180b2496de1SKrzysztof Kozlowski          properties:
181b2496de1SKrzysztof Kozlowski            compatible:
182b2496de1SKrzysztof Kozlowski              enum:
183b2496de1SKrzysztof Kozlowski                - qcom,q6asm
184b2496de1SKrzysztof Kozlowski        then:
185b2496de1SKrzysztof Kozlowski          properties:
186b2496de1SKrzysztof Kozlowski            dais:
187b2496de1SKrzysztof Kozlowski              properties:
188b2496de1SKrzysztof Kozlowski                compatible:
189b2496de1SKrzysztof Kozlowski                  const: qcom,q6asm-dais
190985f62a9SSrinivas Kandagatla
191985f62a9SSrinivas Kandagatla    additionalProperties: false
192985f62a9SSrinivas Kandagatla
193985f62a9SSrinivas Kandagatlarequired:
194985f62a9SSrinivas Kandagatla  - compatible
1951ff63d54SSrinivas Kandagatla  - qcom,domain
196985f62a9SSrinivas Kandagatla
197b2d7616eSKrzysztof KozlowskiallOf:
198b2d7616eSKrzysztof Kozlowski  - if:
199b2d7616eSKrzysztof Kozlowski      properties:
200b2d7616eSKrzysztof Kozlowski        compatible:
201b2d7616eSKrzysztof Kozlowski          enum:
202b2d7616eSKrzysztof Kozlowski            - qcom,gpr
203b2d7616eSKrzysztof Kozlowski    then:
204b2d7616eSKrzysztof Kozlowski      properties:
205*0dd3618eSKrzysztof Kozlowski        qcom,glink-channels:
206*0dd3618eSKrzysztof Kozlowski          items:
207*0dd3618eSKrzysztof Kozlowski            - const: adsp_apps
208b2d7616eSKrzysztof Kozlowski        power-domains: false
209*0dd3618eSKrzysztof Kozlowski    else:
210*0dd3618eSKrzysztof Kozlowski      properties:
211*0dd3618eSKrzysztof Kozlowski        qcom,glink-channels:
212*0dd3618eSKrzysztof Kozlowski          items:
213*0dd3618eSKrzysztof Kozlowski            - const: apr_audio_svc
214b2d7616eSKrzysztof Kozlowski
215b2d7616eSKrzysztof Kozlowski  - if:
216b2d7616eSKrzysztof Kozlowski      required:
217b2d7616eSKrzysztof Kozlowski        - qcom,glink-channels
218b2d7616eSKrzysztof Kozlowski    then:
219b2d7616eSKrzysztof Kozlowski      properties:
220b2d7616eSKrzysztof Kozlowski        qcom,smd-channels: false
221b2d7616eSKrzysztof Kozlowski
222b2d7616eSKrzysztof Kozlowski  - if:
223b2d7616eSKrzysztof Kozlowski      required:
224b2d7616eSKrzysztof Kozlowski        - qcom,smd-channels
225b2d7616eSKrzysztof Kozlowski    then:
226b2d7616eSKrzysztof Kozlowski      properties:
227b2d7616eSKrzysztof Kozlowski        qcom,glink-channels: false
228b2d7616eSKrzysztof Kozlowski
229985f62a9SSrinivas KandagatlaadditionalProperties: false
230985f62a9SSrinivas Kandagatla
231985f62a9SSrinivas Kandagatlaexamples:
232985f62a9SSrinivas Kandagatla  - |
233985f62a9SSrinivas Kandagatla    #include <dt-bindings/soc/qcom,apr.h>
234985f62a9SSrinivas Kandagatla    apr {
235985f62a9SSrinivas Kandagatla        compatible = "qcom,apr-v2";
2361ff63d54SSrinivas Kandagatla        qcom,domain = <APR_DOMAIN_ADSP>;
237985f62a9SSrinivas Kandagatla        #address-cells = <1>;
238985f62a9SSrinivas Kandagatla        #size-cells = <0>;
239985f62a9SSrinivas Kandagatla
240985f62a9SSrinivas Kandagatla        q6core: service@3 {
241985f62a9SSrinivas Kandagatla          compatible = "qcom,q6core";
242985f62a9SSrinivas Kandagatla          reg = <APR_SVC_ADSP_CORE>;
243985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
244985f62a9SSrinivas Kandagatla        };
245985f62a9SSrinivas Kandagatla
246985f62a9SSrinivas Kandagatla        q6afe: service@4 {
247985f62a9SSrinivas Kandagatla          compatible = "qcom,q6afe";
248985f62a9SSrinivas Kandagatla          reg = <APR_SVC_AFE>;
249985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
250985f62a9SSrinivas Kandagatla        };
251985f62a9SSrinivas Kandagatla
252985f62a9SSrinivas Kandagatla        q6asm: service@7 {
253985f62a9SSrinivas Kandagatla          compatible = "qcom,q6asm";
254985f62a9SSrinivas Kandagatla          reg = <APR_SVC_ASM>;
255985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
256985f62a9SSrinivas Kandagatla        };
257985f62a9SSrinivas Kandagatla
258985f62a9SSrinivas Kandagatla        q6adm: service@8 {
259985f62a9SSrinivas Kandagatla          compatible = "qcom,q6adm";
260985f62a9SSrinivas Kandagatla          reg = <APR_SVC_ADM>;
261985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
262985f62a9SSrinivas Kandagatla        };
263985f62a9SSrinivas Kandagatla    };
264974c6fafSSrinivas Kandagatla
265974c6fafSSrinivas Kandagatla  - |
266974c6fafSSrinivas Kandagatla    #include <dt-bindings/soc/qcom,gpr.h>
267974c6fafSSrinivas Kandagatla    gpr {
268974c6fafSSrinivas Kandagatla        compatible = "qcom,gpr";
269974c6fafSSrinivas Kandagatla        qcom,domain = <GPR_DOMAIN_ID_ADSP>;
270974c6fafSSrinivas Kandagatla        #address-cells = <1>;
271974c6fafSSrinivas Kandagatla        #size-cells = <0>;
272974c6fafSSrinivas Kandagatla
273974c6fafSSrinivas Kandagatla        service@1 {
274974c6fafSSrinivas Kandagatla          compatible = "qcom,q6apm";
275974c6fafSSrinivas Kandagatla          reg = <GPR_APM_MODULE_IID>;
276974c6fafSSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
277974c6fafSSrinivas Kandagatla        };
278974c6fafSSrinivas Kandagatla    };
279