File Index
Files and directories
Sign in
FILE

qcom,apr.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/soc/qcom/qcom,apr.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Qualcomm APR/GPR (Asynchronous/Generic Packet Router)
  8
  9maintainers:
 10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 11
 12description: |
 13  This binding describes the Qualcomm APR/GPR, APR/GPR is a IPC protocol for
 14  communication between Application processor and QDSP. APR/GPR is mainly
 15  used for audio/voice services on the QDSP.
 16
 17properties:
 18  compatible:
 19    enum:
 20      - qcom,apr
 21      - qcom,apr-v2
 22      - qcom,gpr
 23
 24  power-domains:
 25    maxItems: 1
 26
 27  qcom,apr-domain:
 28    $ref: /schemas/types.yaml#/definitions/uint32
 29    enum: [1, 2, 3, 4, 5, 6, 7]
 30    description:
 31      Selects the processor domain for apr
 32        1 = APR simulator
 33        2 = PC Domain
 34        3 = Modem Domain
 35        4 = ADSP Domain
 36        5 = Application processor Domain
 37        6 = Modem2 Domain
 38        7 = Application Processor2 Domain
 39    deprecated: true
 40
 41  qcom,domain:
 42    $ref: /schemas/types.yaml#/definitions/uint32
 43    minimum: 1
 44    maximum: 7
 45    description:
 46      Selects the processor domain for apr
 47        1 = APR simulator
 48        2 = PC Domain
 49        3 = Modem Domain
 50        4 = ADSP Domain
 51        5 = Application processor Domain
 52        6 = Modem2 Domain
 53        7 = Application Processor2 Domain
 54      Selects the processor domain for gpr
 55        1 = Modem Domain
 56        2 = Audio DSP Domain
 57        3 = Application Processor Domain
 58
 59  qcom,glink-channels:
 60    $ref: /schemas/types.yaml#/definitions/string-array
 61    description: Channel name used for the communication
 62    maxItems: 1
 63
 64  qcom,intents:
 65    $ref: /schemas/types.yaml#/definitions/uint32-matrix
 66    minItems: 1
 67    maxItems: 32
 68    items:
 69      items:
 70        - description: size of each intent to preallocate
 71        - description: amount of intents to preallocate
 72          minimum: 1
 73    description:
 74      List of (size, amount) pairs describing what intents should be
 75      preallocated for this virtual channel. This can be used to tweak the
 76      default intents available for the channel to meet expectations of the
 77      remote.
 78
 79  qcom,smd-channels:
 80    $ref: /schemas/types.yaml#/definitions/string-array
 81    description: Channel name used for the communication
 82    items:
 83      - const: apr_audio_svc
 84
 85  '#address-cells':
 86    const: 1
 87
 88  '#size-cells':
 89    const: 0
 90
 91patternProperties:
 92  "^service@[1-9a-d]$":
 93    type: object
 94    $ref: /schemas/soc/qcom/qcom,apr-services.yaml
 95    additionalProperties: true
 96    description:
 97      APR/GPR static port services.
 98
 99    properties:
100      compatible:
101        enum:
102          - qcom,q6core
103          - qcom,q6asm
104          - qcom,q6afe
105          - qcom,q6adm
106          - qcom,q6apm
107          - qcom,q6prm
108
109required:
110  - compatible
111  - qcom,domain
112
113allOf:
114  - if:
115      properties:
116        compatible:
117          enum:
118            - qcom,gpr
119    then:
120      properties:
121        qcom,glink-channels:
122          items:
123            - const: adsp_apps
124        power-domains: false
125    else:
126      properties:
127        qcom,glink-channels:
128          items:
129            - const: apr_audio_svc
130
131  - if:
132      required:
133        - qcom,glink-channels
134    then:
135      properties:
136        qcom,smd-channels: false
137
138  - if:
139      required:
140        - qcom,smd-channels
141    then:
142      properties:
143        qcom,glink-channels: false
144
145additionalProperties: false
146
147examples:
148  - |
149    #include <dt-bindings/soc/qcom,apr.h>
150    apr {
151        compatible = "qcom,apr-v2";
152        qcom,domain = <APR_DOMAIN_ADSP>;
153        qcom,glink-channels = "apr_audio_svc";
154        qcom,intents = <512 20>;
155        #address-cells = <1>;
156        #size-cells = <0>;
157
158        q6core: service@3 {
159            compatible = "qcom,q6core";
160            reg = <APR_SVC_ADSP_CORE>;
161            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
162        };
163
164        service@4 {
165            compatible = "qcom,q6afe";
166            reg = <APR_SVC_AFE>;
167            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
168
169            clock-controller {
170                compatible = "qcom,q6afe-clocks";
171                #clock-cells = <2>;
172            };
173
174            dais {
175                compatible = "qcom,q6afe-dais";
176                #address-cells = <1>;
177                #size-cells = <0>;
178                #sound-dai-cells = <1>;
179                /* ... */
180            };
181            /* ... */
182        };
183    };
184
185  - |
186    #include <dt-bindings/soc/qcom,gpr.h>
187    gpr {
188        compatible = "qcom,gpr";
189        qcom,domain = <GPR_DOMAIN_ID_ADSP>;
190        qcom,glink-channels = "adsp_apps";
191        qcom,intents = <512 20>;
192        #address-cells = <1>;
193        #size-cells = <0>;
194
195        service@1 {
196            compatible = "qcom,q6apm";
197            reg = <GPR_APM_MODULE_IID>;
198            #sound-dai-cells = <0>;
199            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
200
201            dais {
202                compatible = "qcom,q6apm-dais";
203                iommus = <&apps_smmu 0x1801 0x0>;
204            };
205
206            bedais {
207                compatible = "qcom,q6apm-lpass-dais";
208                #sound-dai-cells = <1>;
209            };
210        };
211    };
~/ Read-only file preview.