xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml (revision 9ed8503114ccbfd116f18143a3604b9f1155ee9e)
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:
20*9ed85031SKrzysztof Kozlowski      - qcom,apr
21985f62a9SSrinivas Kandagatla      - qcom,apr-v2
22974c6fafSSrinivas Kandagatla      - qcom,gpr
23985f62a9SSrinivas Kandagatla
24b2d7616eSKrzysztof Kozlowski  power-domains:
25b2d7616eSKrzysztof Kozlowski    maxItems: 1
26b2d7616eSKrzysztof Kozlowski
27985f62a9SSrinivas Kandagatla  qcom,apr-domain:
28985f62a9SSrinivas Kandagatla    $ref: /schemas/types.yaml#/definitions/uint32
29985f62a9SSrinivas Kandagatla    enum: [1, 2, 3, 4, 5, 6, 7]
30985f62a9SSrinivas Kandagatla    description:
31985f62a9SSrinivas Kandagatla      Selects the processor domain for apr
32985f62a9SSrinivas Kandagatla        1 = APR simulator
33985f62a9SSrinivas Kandagatla        2 = PC Domain
34985f62a9SSrinivas Kandagatla        3 = Modem Domain
35985f62a9SSrinivas Kandagatla        4 = ADSP Domain
36985f62a9SSrinivas Kandagatla        5 = Application processor Domain
37985f62a9SSrinivas Kandagatla        6 = Modem2 Domain
38985f62a9SSrinivas Kandagatla        7 = Application Processor2 Domain
391ff63d54SSrinivas Kandagatla    deprecated: true
401ff63d54SSrinivas Kandagatla
411ff63d54SSrinivas Kandagatla  qcom,domain:
421ff63d54SSrinivas Kandagatla    $ref: /schemas/types.yaml#/definitions/uint32
431ff63d54SSrinivas Kandagatla    minimum: 1
441ff63d54SSrinivas Kandagatla    maximum: 7
451ff63d54SSrinivas Kandagatla    description:
461ff63d54SSrinivas Kandagatla      Selects the processor domain for apr
471ff63d54SSrinivas Kandagatla        1 = APR simulator
481ff63d54SSrinivas Kandagatla        2 = PC Domain
491ff63d54SSrinivas Kandagatla        3 = Modem Domain
501ff63d54SSrinivas Kandagatla        4 = ADSP Domain
511ff63d54SSrinivas Kandagatla        5 = Application processor Domain
521ff63d54SSrinivas Kandagatla        6 = Modem2 Domain
531ff63d54SSrinivas Kandagatla        7 = Application Processor2 Domain
54974c6fafSSrinivas Kandagatla      Selects the processor domain for gpr
55974c6fafSSrinivas Kandagatla        1 = Modem Domain
56974c6fafSSrinivas Kandagatla        2 = Audio DSP Domain
57974c6fafSSrinivas Kandagatla        3 = Application Processor Domain
58985f62a9SSrinivas Kandagatla
59b2d7616eSKrzysztof Kozlowski  qcom,glink-channels:
60b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/string-array
61b2d7616eSKrzysztof Kozlowski    description: Channel name used for the communication
62b2d7616eSKrzysztof Kozlowski    items:
63b2d7616eSKrzysztof Kozlowski      - const: apr_audio_svc
64b2d7616eSKrzysztof Kozlowski
65b2d7616eSKrzysztof Kozlowski  qcom,intents:
66b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
67b2d7616eSKrzysztof Kozlowski    description:
68b2d7616eSKrzysztof Kozlowski      List of (size, amount) pairs describing what intents should be
69b2d7616eSKrzysztof Kozlowski      preallocated for this virtual channel. This can be used to tweak the
70b2d7616eSKrzysztof Kozlowski      default intents available for the channel to meet expectations of the
71b2d7616eSKrzysztof Kozlowski      remote.
72b2d7616eSKrzysztof Kozlowski
73b2d7616eSKrzysztof Kozlowski  qcom,smd-channels:
74b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/string-array
75b2d7616eSKrzysztof Kozlowski    description: Channel name used for the communication
76b2d7616eSKrzysztof Kozlowski    items:
77b2d7616eSKrzysztof Kozlowski      - const: apr_audio_svc
78b2d7616eSKrzysztof Kozlowski
79985f62a9SSrinivas Kandagatla  '#address-cells':
80985f62a9SSrinivas Kandagatla    const: 1
81985f62a9SSrinivas Kandagatla
82985f62a9SSrinivas Kandagatla  '#size-cells':
83985f62a9SSrinivas Kandagatla    const: 0
84985f62a9SSrinivas Kandagatla
85974c6fafSSrinivas Kandagatla#APR/GPR Services
86985f62a9SSrinivas KandagatlapatternProperties:
87974c6fafSSrinivas Kandagatla  "^service@[1-9a-d]$":
88985f62a9SSrinivas Kandagatla    type: object
89985f62a9SSrinivas Kandagatla    description:
90974c6fafSSrinivas Kandagatla      APR/GPR node's client devices use subnodes for desired static port services.
91985f62a9SSrinivas Kandagatla
92985f62a9SSrinivas Kandagatla    properties:
93985f62a9SSrinivas Kandagatla      compatible:
94985f62a9SSrinivas Kandagatla        enum:
95985f62a9SSrinivas Kandagatla          - qcom,q6core
96985f62a9SSrinivas Kandagatla          - qcom,q6asm
97985f62a9SSrinivas Kandagatla          - qcom,q6afe
98985f62a9SSrinivas Kandagatla          - qcom,q6adm
99974c6fafSSrinivas Kandagatla          - qcom,q6apm
100974c6fafSSrinivas Kandagatla          - qcom,q6prm
101985f62a9SSrinivas Kandagatla
102985f62a9SSrinivas Kandagatla      reg:
103974c6fafSSrinivas Kandagatla        minimum: 1
104985f62a9SSrinivas Kandagatla        maximum: 13
105985f62a9SSrinivas Kandagatla        description:
106985f62a9SSrinivas Kandagatla          APR Service ID
107985f62a9SSrinivas Kandagatla            3 = DSP Core Service
108985f62a9SSrinivas Kandagatla            4 = Audio  Front End Service.
109985f62a9SSrinivas Kandagatla            5 = Voice Stream Manager Service.
110985f62a9SSrinivas Kandagatla            6 = Voice processing manager.
111985f62a9SSrinivas Kandagatla            7 = Audio Stream Manager Service.
112985f62a9SSrinivas Kandagatla            8 = Audio Device Manager Service.
113985f62a9SSrinivas Kandagatla            9 = Multimode voice manager.
114985f62a9SSrinivas Kandagatla            10 = Core voice stream.
115985f62a9SSrinivas Kandagatla            11 = Core voice processor.
116985f62a9SSrinivas Kandagatla            12 = Ultrasound stream manager.
117985f62a9SSrinivas Kandagatla            13 = Listen stream manager.
118974c6fafSSrinivas Kandagatla          GPR Service ID
119974c6fafSSrinivas Kandagatla            1 = Audio Process Manager Service
120974c6fafSSrinivas Kandagatla            2 = Proxy Resource Manager Service.
121974c6fafSSrinivas Kandagatla            3 = AMDB Service.
122974c6fafSSrinivas Kandagatla            4 = Voice processing manager.
123985f62a9SSrinivas Kandagatla
124b2496de1SKrzysztof Kozlowski      clock-controller:
125b2496de1SKrzysztof Kozlowski        $ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
126b2496de1SKrzysztof Kozlowski        description: Qualcomm DSP LPASS clock controller
127b2496de1SKrzysztof Kozlowski        unevaluatedProperties: false
128b2496de1SKrzysztof Kozlowski
129b2496de1SKrzysztof Kozlowski      dais:
130b2496de1SKrzysztof Kozlowski        type: object
1317b0ad462SKrzysztof Kozlowski        oneOf:
1327b0ad462SKrzysztof Kozlowski          - $ref: /schemas/sound/qcom,q6apm-dai.yaml#
1337b0ad462SKrzysztof Kozlowski          - $ref: /schemas/sound/qcom,q6dsp-lpass-ports.yaml#
1347b0ad462SKrzysztof Kozlowski          - $ref: /schemas/sound/qcom,q6asm-dais.yaml#
1357b0ad462SKrzysztof Kozlowski        unevaluatedProperties: false
136b2496de1SKrzysztof Kozlowski        description: Qualcomm DSP audio ports
137b2496de1SKrzysztof Kozlowski
138b2496de1SKrzysztof Kozlowski      routing:
139b2496de1SKrzysztof Kozlowski        type: object
140301628d8SKrzysztof Kozlowski        $ref: /schemas/sound/qcom,q6adm-routing.yaml#
141301628d8SKrzysztof Kozlowski        unevaluatedProperties: false
142b2496de1SKrzysztof Kozlowski        description: Qualcomm DSP LPASS audio routing
143b2496de1SKrzysztof Kozlowski
144985f62a9SSrinivas Kandagatla      qcom,protection-domain:
145985f62a9SSrinivas Kandagatla        $ref: /schemas/types.yaml#/definitions/string-array
146985f62a9SSrinivas Kandagatla        description: protection domain service name and path for apr service
147985f62a9SSrinivas Kandagatla          possible values are
148985f62a9SSrinivas Kandagatla          "avs/audio", "msm/adsp/audio_pd".
149985f62a9SSrinivas Kandagatla          "kernel/elf_loader", "msm/modem/wlan_pd".
150985f62a9SSrinivas Kandagatla          "tms/servreg", "msm/adsp/audio_pd".
151985f62a9SSrinivas Kandagatla          "tms/servreg", "msm/modem/wlan_pd".
152985f62a9SSrinivas Kandagatla          "tms/servreg", "msm/slpi/sensor_pd".
153985f62a9SSrinivas Kandagatla
154b2496de1SKrzysztof Kozlowski    allOf:
155b2496de1SKrzysztof Kozlowski      - if:
156b2496de1SKrzysztof Kozlowski          properties:
157b2496de1SKrzysztof Kozlowski            compatible:
158b2496de1SKrzysztof Kozlowski              enum:
159b2496de1SKrzysztof Kozlowski                - qcom,q6afe
160b2496de1SKrzysztof Kozlowski        then:
161b2496de1SKrzysztof Kozlowski          properties:
162b2496de1SKrzysztof Kozlowski            dais:
163b2496de1SKrzysztof Kozlowski              properties:
164b2496de1SKrzysztof Kozlowski                compatible:
165b2496de1SKrzysztof Kozlowski                  const: qcom,q6afe-dais
166985f62a9SSrinivas Kandagatla
167b2496de1SKrzysztof Kozlowski      - if:
168b2496de1SKrzysztof Kozlowski          properties:
169b2496de1SKrzysztof Kozlowski            compatible:
170b2496de1SKrzysztof Kozlowski              enum:
171b2496de1SKrzysztof Kozlowski                - qcom,q6apm
172b2496de1SKrzysztof Kozlowski        then:
173b2496de1SKrzysztof Kozlowski          properties:
174b2496de1SKrzysztof Kozlowski            dais:
175b2496de1SKrzysztof Kozlowski              properties:
176b2496de1SKrzysztof Kozlowski                compatible:
177b2496de1SKrzysztof Kozlowski                  enum:
178b2496de1SKrzysztof Kozlowski                    - qcom,q6apm-dais
179b2496de1SKrzysztof Kozlowski                    - qcom,q6apm-lpass-dais
180985f62a9SSrinivas Kandagatla
181b2496de1SKrzysztof Kozlowski      - if:
182b2496de1SKrzysztof Kozlowski          properties:
183b2496de1SKrzysztof Kozlowski            compatible:
184b2496de1SKrzysztof Kozlowski              enum:
185b2496de1SKrzysztof Kozlowski                - qcom,q6asm
186b2496de1SKrzysztof Kozlowski        then:
187b2496de1SKrzysztof Kozlowski          properties:
188b2496de1SKrzysztof Kozlowski            dais:
189b2496de1SKrzysztof Kozlowski              properties:
190b2496de1SKrzysztof Kozlowski                compatible:
191b2496de1SKrzysztof Kozlowski                  const: qcom,q6asm-dais
192985f62a9SSrinivas Kandagatla
193985f62a9SSrinivas Kandagatla    additionalProperties: false
194985f62a9SSrinivas Kandagatla
195985f62a9SSrinivas Kandagatlarequired:
196985f62a9SSrinivas Kandagatla  - compatible
1971ff63d54SSrinivas Kandagatla  - qcom,domain
198985f62a9SSrinivas Kandagatla
199b2d7616eSKrzysztof KozlowskiallOf:
200b2d7616eSKrzysztof Kozlowski  - if:
201b2d7616eSKrzysztof Kozlowski      properties:
202b2d7616eSKrzysztof Kozlowski        compatible:
203b2d7616eSKrzysztof Kozlowski          enum:
204b2d7616eSKrzysztof Kozlowski            - qcom,gpr
205b2d7616eSKrzysztof Kozlowski    then:
206b2d7616eSKrzysztof Kozlowski      properties:
207b2d7616eSKrzysztof Kozlowski        power-domains: false
208b2d7616eSKrzysztof Kozlowski
209b2d7616eSKrzysztof Kozlowski  - if:
210b2d7616eSKrzysztof Kozlowski      required:
211b2d7616eSKrzysztof Kozlowski        - qcom,glink-channels
212b2d7616eSKrzysztof Kozlowski    then:
213b2d7616eSKrzysztof Kozlowski      properties:
214b2d7616eSKrzysztof Kozlowski        qcom,smd-channels: false
215b2d7616eSKrzysztof Kozlowski
216b2d7616eSKrzysztof Kozlowski  - if:
217b2d7616eSKrzysztof Kozlowski      required:
218b2d7616eSKrzysztof Kozlowski        - qcom,smd-channels
219b2d7616eSKrzysztof Kozlowski    then:
220b2d7616eSKrzysztof Kozlowski      properties:
221b2d7616eSKrzysztof Kozlowski        qcom,glink-channels: false
222b2d7616eSKrzysztof Kozlowski
223985f62a9SSrinivas KandagatlaadditionalProperties: false
224985f62a9SSrinivas Kandagatla
225985f62a9SSrinivas Kandagatlaexamples:
226985f62a9SSrinivas Kandagatla  - |
227985f62a9SSrinivas Kandagatla    #include <dt-bindings/soc/qcom,apr.h>
228985f62a9SSrinivas Kandagatla    apr {
229985f62a9SSrinivas Kandagatla        compatible = "qcom,apr-v2";
2301ff63d54SSrinivas Kandagatla        qcom,domain = <APR_DOMAIN_ADSP>;
231985f62a9SSrinivas Kandagatla        #address-cells = <1>;
232985f62a9SSrinivas Kandagatla        #size-cells = <0>;
233985f62a9SSrinivas Kandagatla
234985f62a9SSrinivas Kandagatla        q6core: service@3 {
235985f62a9SSrinivas Kandagatla          compatible = "qcom,q6core";
236985f62a9SSrinivas Kandagatla          reg = <APR_SVC_ADSP_CORE>;
237985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
238985f62a9SSrinivas Kandagatla        };
239985f62a9SSrinivas Kandagatla
240985f62a9SSrinivas Kandagatla        q6afe: service@4 {
241985f62a9SSrinivas Kandagatla          compatible = "qcom,q6afe";
242985f62a9SSrinivas Kandagatla          reg = <APR_SVC_AFE>;
243985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
244985f62a9SSrinivas Kandagatla        };
245985f62a9SSrinivas Kandagatla
246985f62a9SSrinivas Kandagatla        q6asm: service@7 {
247985f62a9SSrinivas Kandagatla          compatible = "qcom,q6asm";
248985f62a9SSrinivas Kandagatla          reg = <APR_SVC_ASM>;
249985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
250985f62a9SSrinivas Kandagatla        };
251985f62a9SSrinivas Kandagatla
252985f62a9SSrinivas Kandagatla        q6adm: service@8 {
253985f62a9SSrinivas Kandagatla          compatible = "qcom,q6adm";
254985f62a9SSrinivas Kandagatla          reg = <APR_SVC_ADM>;
255985f62a9SSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
256985f62a9SSrinivas Kandagatla        };
257985f62a9SSrinivas Kandagatla    };
258974c6fafSSrinivas Kandagatla
259974c6fafSSrinivas Kandagatla  - |
260974c6fafSSrinivas Kandagatla    #include <dt-bindings/soc/qcom,gpr.h>
261974c6fafSSrinivas Kandagatla    gpr {
262974c6fafSSrinivas Kandagatla        compatible = "qcom,gpr";
263974c6fafSSrinivas Kandagatla        qcom,domain = <GPR_DOMAIN_ID_ADSP>;
264974c6fafSSrinivas Kandagatla        #address-cells = <1>;
265974c6fafSSrinivas Kandagatla        #size-cells = <0>;
266974c6fafSSrinivas Kandagatla
267974c6fafSSrinivas Kandagatla        service@1 {
268974c6fafSSrinivas Kandagatla          compatible = "qcom,q6apm";
269974c6fafSSrinivas Kandagatla          reg = <GPR_APM_MODULE_IID>;
270974c6fafSSrinivas Kandagatla          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
271974c6fafSSrinivas Kandagatla        };
272974c6fafSSrinivas Kandagatla    };
273