xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1985f62a9SSrinivas Kandagatla# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2985f62a9SSrinivas Kandagatla%YAML 1.2
3985f62a9SSrinivas Kandagatla---
4*2961ab05SRob Herring$id: http://devicetree.org/schemas/soc/qcom/qcom,apr.yaml#
5*2961ab05SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6985f62a9SSrinivas Kandagatla
784e85359SKrzysztof Kozlowskititle: Qualcomm APR/GPR (Asynchronous/Generic Packet Router)
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:
209ed85031SKrzysztof 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
620dd3618eSKrzysztof Kozlowski    maxItems: 1
63b2d7616eSKrzysztof Kozlowski
64b2d7616eSKrzysztof Kozlowski  qcom,intents:
65b5bec0f0SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-matrix
66b5bec0f0SKrzysztof Kozlowski    minItems: 1
67b5bec0f0SKrzysztof Kozlowski    maxItems: 32
68b5bec0f0SKrzysztof Kozlowski    items:
69b5bec0f0SKrzysztof Kozlowski      items:
70b5bec0f0SKrzysztof Kozlowski        - description: size of each intent to preallocate
71b5bec0f0SKrzysztof Kozlowski        - description: amount of intents to preallocate
72b5bec0f0SKrzysztof Kozlowski          minimum: 1
73b2d7616eSKrzysztof Kozlowski    description:
74b2d7616eSKrzysztof Kozlowski      List of (size, amount) pairs describing what intents should be
75b2d7616eSKrzysztof Kozlowski      preallocated for this virtual channel. This can be used to tweak the
76b2d7616eSKrzysztof Kozlowski      default intents available for the channel to meet expectations of the
77b2d7616eSKrzysztof Kozlowski      remote.
78b2d7616eSKrzysztof Kozlowski
79b2d7616eSKrzysztof Kozlowski  qcom,smd-channels:
80b2d7616eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/string-array
81b2d7616eSKrzysztof Kozlowski    description: Channel name used for the communication
82b2d7616eSKrzysztof Kozlowski    items:
83b2d7616eSKrzysztof Kozlowski      - const: apr_audio_svc
84b2d7616eSKrzysztof Kozlowski
85985f62a9SSrinivas Kandagatla  '#address-cells':
86985f62a9SSrinivas Kandagatla    const: 1
87985f62a9SSrinivas Kandagatla
88985f62a9SSrinivas Kandagatla  '#size-cells':
89985f62a9SSrinivas Kandagatla    const: 0
90985f62a9SSrinivas Kandagatla
91985f62a9SSrinivas KandagatlapatternProperties:
92974c6fafSSrinivas Kandagatla  "^service@[1-9a-d]$":
93985f62a9SSrinivas Kandagatla    type: object
9441288c30SKrzysztof Kozlowski    $ref: /schemas/soc/qcom/qcom,apr-services.yaml
9541288c30SKrzysztof Kozlowski    additionalProperties: true
96985f62a9SSrinivas Kandagatla    description:
9741288c30SKrzysztof Kozlowski      APR/GPR static port services.
98985f62a9SSrinivas Kandagatla
99985f62a9SSrinivas Kandagatla    properties:
100985f62a9SSrinivas Kandagatla      compatible:
101985f62a9SSrinivas Kandagatla        enum:
102985f62a9SSrinivas Kandagatla          - qcom,q6core
103985f62a9SSrinivas Kandagatla          - qcom,q6asm
104985f62a9SSrinivas Kandagatla          - qcom,q6afe
105985f62a9SSrinivas Kandagatla          - qcom,q6adm
106974c6fafSSrinivas Kandagatla          - qcom,q6apm
107974c6fafSSrinivas Kandagatla          - qcom,q6prm
108985f62a9SSrinivas Kandagatla
109985f62a9SSrinivas Kandagatlarequired:
110985f62a9SSrinivas Kandagatla  - compatible
1111ff63d54SSrinivas Kandagatla  - qcom,domain
112985f62a9SSrinivas Kandagatla
113b2d7616eSKrzysztof KozlowskiallOf:
114b2d7616eSKrzysztof Kozlowski  - if:
115b2d7616eSKrzysztof Kozlowski      properties:
116b2d7616eSKrzysztof Kozlowski        compatible:
117b2d7616eSKrzysztof Kozlowski          enum:
118b2d7616eSKrzysztof Kozlowski            - qcom,gpr
119b2d7616eSKrzysztof Kozlowski    then:
120b2d7616eSKrzysztof Kozlowski      properties:
1210dd3618eSKrzysztof Kozlowski        qcom,glink-channels:
1220dd3618eSKrzysztof Kozlowski          items:
1230dd3618eSKrzysztof Kozlowski            - const: adsp_apps
124b2d7616eSKrzysztof Kozlowski        power-domains: false
1250dd3618eSKrzysztof Kozlowski    else:
1260dd3618eSKrzysztof Kozlowski      properties:
1270dd3618eSKrzysztof Kozlowski        qcom,glink-channels:
1280dd3618eSKrzysztof Kozlowski          items:
1290dd3618eSKrzysztof Kozlowski            - const: apr_audio_svc
130b2d7616eSKrzysztof Kozlowski
131b2d7616eSKrzysztof Kozlowski  - if:
132b2d7616eSKrzysztof Kozlowski      required:
133b2d7616eSKrzysztof Kozlowski        - qcom,glink-channels
134b2d7616eSKrzysztof Kozlowski    then:
135b2d7616eSKrzysztof Kozlowski      properties:
136b2d7616eSKrzysztof Kozlowski        qcom,smd-channels: false
137b2d7616eSKrzysztof Kozlowski
138b2d7616eSKrzysztof Kozlowski  - if:
139b2d7616eSKrzysztof Kozlowski      required:
140b2d7616eSKrzysztof Kozlowski        - qcom,smd-channels
141b2d7616eSKrzysztof Kozlowski    then:
142b2d7616eSKrzysztof Kozlowski      properties:
143b2d7616eSKrzysztof Kozlowski        qcom,glink-channels: false
144b2d7616eSKrzysztof Kozlowski
145985f62a9SSrinivas KandagatlaadditionalProperties: false
146985f62a9SSrinivas Kandagatla
147985f62a9SSrinivas Kandagatlaexamples:
148985f62a9SSrinivas Kandagatla  - |
149985f62a9SSrinivas Kandagatla    #include <dt-bindings/soc/qcom,apr.h>
150985f62a9SSrinivas Kandagatla    apr {
151985f62a9SSrinivas Kandagatla        compatible = "qcom,apr-v2";
1521ff63d54SSrinivas Kandagatla        qcom,domain = <APR_DOMAIN_ADSP>;
153cd9ba3d0SKrzysztof Kozlowski        qcom,glink-channels = "apr_audio_svc";
154cd9ba3d0SKrzysztof Kozlowski        qcom,intents = <512 20>;
155985f62a9SSrinivas Kandagatla        #address-cells = <1>;
156985f62a9SSrinivas Kandagatla        #size-cells = <0>;
157985f62a9SSrinivas Kandagatla
158985f62a9SSrinivas Kandagatla        q6core: service@3 {
159985f62a9SSrinivas Kandagatla            compatible = "qcom,q6core";
160985f62a9SSrinivas Kandagatla            reg = <APR_SVC_ADSP_CORE>;
161985f62a9SSrinivas Kandagatla            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
162985f62a9SSrinivas Kandagatla        };
163985f62a9SSrinivas Kandagatla
164cd9ba3d0SKrzysztof Kozlowski        service@4 {
165985f62a9SSrinivas Kandagatla            compatible = "qcom,q6afe";
166985f62a9SSrinivas Kandagatla            reg = <APR_SVC_AFE>;
167985f62a9SSrinivas Kandagatla            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
168cd9ba3d0SKrzysztof Kozlowski
169cd9ba3d0SKrzysztof Kozlowski            clock-controller {
170cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6afe-clocks";
171cd9ba3d0SKrzysztof Kozlowski                #clock-cells = <2>;
172985f62a9SSrinivas Kandagatla            };
173985f62a9SSrinivas Kandagatla
174cd9ba3d0SKrzysztof Kozlowski            dais {
175cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6afe-dais";
176cd9ba3d0SKrzysztof Kozlowski                #address-cells = <1>;
177cd9ba3d0SKrzysztof Kozlowski                #size-cells = <0>;
178cd9ba3d0SKrzysztof Kozlowski                #sound-dai-cells = <1>;
179cd9ba3d0SKrzysztof Kozlowski                /* ... */
180985f62a9SSrinivas Kandagatla            };
181cd9ba3d0SKrzysztof Kozlowski            /* ... */
182985f62a9SSrinivas Kandagatla        };
183985f62a9SSrinivas Kandagatla    };
184974c6fafSSrinivas Kandagatla
185974c6fafSSrinivas Kandagatla  - |
186974c6fafSSrinivas Kandagatla    #include <dt-bindings/soc/qcom,gpr.h>
187974c6fafSSrinivas Kandagatla    gpr {
188974c6fafSSrinivas Kandagatla        compatible = "qcom,gpr";
189974c6fafSSrinivas Kandagatla        qcom,domain = <GPR_DOMAIN_ID_ADSP>;
190cd9ba3d0SKrzysztof Kozlowski        qcom,glink-channels = "adsp_apps";
191cd9ba3d0SKrzysztof Kozlowski        qcom,intents = <512 20>;
192974c6fafSSrinivas Kandagatla        #address-cells = <1>;
193974c6fafSSrinivas Kandagatla        #size-cells = <0>;
194974c6fafSSrinivas Kandagatla
195974c6fafSSrinivas Kandagatla        service@1 {
196974c6fafSSrinivas Kandagatla            compatible = "qcom,q6apm";
197974c6fafSSrinivas Kandagatla            reg = <GPR_APM_MODULE_IID>;
198cd9ba3d0SKrzysztof Kozlowski            #sound-dai-cells = <0>;
199974c6fafSSrinivas Kandagatla            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
200cd9ba3d0SKrzysztof Kozlowski
201cd9ba3d0SKrzysztof Kozlowski            dais {
202cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6apm-dais";
203cd9ba3d0SKrzysztof Kozlowski                iommus = <&apps_smmu 0x1801 0x0>;
204cd9ba3d0SKrzysztof Kozlowski            };
205cd9ba3d0SKrzysztof Kozlowski
206cd9ba3d0SKrzysztof Kozlowski            bedais {
207cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6apm-lpass-dais";
208cd9ba3d0SKrzysztof Kozlowski                #sound-dai-cells = <1>;
209cd9ba3d0SKrzysztof Kozlowski            };
210974c6fafSSrinivas Kandagatla        };
211974c6fafSSrinivas Kandagatla    };
212