xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml (revision cd9ba3d065bb94f3c20e36ed400269a285bfa46d)
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
610dd3618eSKrzysztof 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
83985f62a9SSrinivas KandagatlapatternProperties:
84974c6fafSSrinivas Kandagatla  "^service@[1-9a-d]$":
85985f62a9SSrinivas Kandagatla    type: object
8641288c30SKrzysztof Kozlowski    $ref: /schemas/soc/qcom/qcom,apr-services.yaml
8741288c30SKrzysztof Kozlowski    additionalProperties: true
88985f62a9SSrinivas Kandagatla    description:
8941288c30SKrzysztof Kozlowski      APR/GPR static port services.
90985f62a9SSrinivas Kandagatla
91985f62a9SSrinivas Kandagatla    properties:
92985f62a9SSrinivas Kandagatla      compatible:
93985f62a9SSrinivas Kandagatla        enum:
94985f62a9SSrinivas Kandagatla          - qcom,q6core
95985f62a9SSrinivas Kandagatla          - qcom,q6asm
96985f62a9SSrinivas Kandagatla          - qcom,q6afe
97985f62a9SSrinivas Kandagatla          - qcom,q6adm
98974c6fafSSrinivas Kandagatla          - qcom,q6apm
99974c6fafSSrinivas Kandagatla          - qcom,q6prm
100985f62a9SSrinivas Kandagatla
101985f62a9SSrinivas Kandagatlarequired:
102985f62a9SSrinivas Kandagatla  - compatible
1031ff63d54SSrinivas Kandagatla  - qcom,domain
104985f62a9SSrinivas Kandagatla
105b2d7616eSKrzysztof KozlowskiallOf:
106b2d7616eSKrzysztof Kozlowski  - if:
107b2d7616eSKrzysztof Kozlowski      properties:
108b2d7616eSKrzysztof Kozlowski        compatible:
109b2d7616eSKrzysztof Kozlowski          enum:
110b2d7616eSKrzysztof Kozlowski            - qcom,gpr
111b2d7616eSKrzysztof Kozlowski    then:
112b2d7616eSKrzysztof Kozlowski      properties:
1130dd3618eSKrzysztof Kozlowski        qcom,glink-channels:
1140dd3618eSKrzysztof Kozlowski          items:
1150dd3618eSKrzysztof Kozlowski            - const: adsp_apps
116b2d7616eSKrzysztof Kozlowski        power-domains: false
1170dd3618eSKrzysztof Kozlowski    else:
1180dd3618eSKrzysztof Kozlowski      properties:
1190dd3618eSKrzysztof Kozlowski        qcom,glink-channels:
1200dd3618eSKrzysztof Kozlowski          items:
1210dd3618eSKrzysztof Kozlowski            - const: apr_audio_svc
122b2d7616eSKrzysztof Kozlowski
123b2d7616eSKrzysztof Kozlowski  - if:
124b2d7616eSKrzysztof Kozlowski      required:
125b2d7616eSKrzysztof Kozlowski        - qcom,glink-channels
126b2d7616eSKrzysztof Kozlowski    then:
127b2d7616eSKrzysztof Kozlowski      properties:
128b2d7616eSKrzysztof Kozlowski        qcom,smd-channels: false
129b2d7616eSKrzysztof Kozlowski
130b2d7616eSKrzysztof Kozlowski  - if:
131b2d7616eSKrzysztof Kozlowski      required:
132b2d7616eSKrzysztof Kozlowski        - qcom,smd-channels
133b2d7616eSKrzysztof Kozlowski    then:
134b2d7616eSKrzysztof Kozlowski      properties:
135b2d7616eSKrzysztof Kozlowski        qcom,glink-channels: false
136b2d7616eSKrzysztof Kozlowski
137985f62a9SSrinivas KandagatlaadditionalProperties: false
138985f62a9SSrinivas Kandagatla
139985f62a9SSrinivas Kandagatlaexamples:
140985f62a9SSrinivas Kandagatla  - |
141985f62a9SSrinivas Kandagatla    #include <dt-bindings/soc/qcom,apr.h>
142985f62a9SSrinivas Kandagatla    apr {
143985f62a9SSrinivas Kandagatla        compatible = "qcom,apr-v2";
1441ff63d54SSrinivas Kandagatla        qcom,domain = <APR_DOMAIN_ADSP>;
145*cd9ba3d0SKrzysztof Kozlowski        qcom,glink-channels = "apr_audio_svc";
146*cd9ba3d0SKrzysztof Kozlowski        qcom,intents = <512 20>;
147985f62a9SSrinivas Kandagatla        #address-cells = <1>;
148985f62a9SSrinivas Kandagatla        #size-cells = <0>;
149985f62a9SSrinivas Kandagatla
150985f62a9SSrinivas Kandagatla        q6core: service@3 {
151985f62a9SSrinivas Kandagatla            compatible = "qcom,q6core";
152985f62a9SSrinivas Kandagatla            reg = <APR_SVC_ADSP_CORE>;
153985f62a9SSrinivas Kandagatla            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
154985f62a9SSrinivas Kandagatla        };
155985f62a9SSrinivas Kandagatla
156*cd9ba3d0SKrzysztof Kozlowski        service@4 {
157985f62a9SSrinivas Kandagatla            compatible = "qcom,q6afe";
158985f62a9SSrinivas Kandagatla            reg = <APR_SVC_AFE>;
159985f62a9SSrinivas Kandagatla            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
160*cd9ba3d0SKrzysztof Kozlowski
161*cd9ba3d0SKrzysztof Kozlowski            clock-controller {
162*cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6afe-clocks";
163*cd9ba3d0SKrzysztof Kozlowski                #clock-cells = <2>;
164985f62a9SSrinivas Kandagatla            };
165985f62a9SSrinivas Kandagatla
166*cd9ba3d0SKrzysztof Kozlowski            dais {
167*cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6afe-dais";
168*cd9ba3d0SKrzysztof Kozlowski                #address-cells = <1>;
169*cd9ba3d0SKrzysztof Kozlowski                #size-cells = <0>;
170*cd9ba3d0SKrzysztof Kozlowski                #sound-dai-cells = <1>;
171*cd9ba3d0SKrzysztof Kozlowski                /* ... */
172985f62a9SSrinivas Kandagatla            };
173*cd9ba3d0SKrzysztof Kozlowski            /* ... */
174985f62a9SSrinivas Kandagatla        };
175985f62a9SSrinivas Kandagatla    };
176974c6fafSSrinivas Kandagatla
177974c6fafSSrinivas Kandagatla  - |
178974c6fafSSrinivas Kandagatla    #include <dt-bindings/soc/qcom,gpr.h>
179974c6fafSSrinivas Kandagatla    gpr {
180974c6fafSSrinivas Kandagatla        compatible = "qcom,gpr";
181974c6fafSSrinivas Kandagatla        qcom,domain = <GPR_DOMAIN_ID_ADSP>;
182*cd9ba3d0SKrzysztof Kozlowski        qcom,glink-channels = "adsp_apps";
183*cd9ba3d0SKrzysztof Kozlowski        qcom,intents = <512 20>;
184974c6fafSSrinivas Kandagatla        #address-cells = <1>;
185974c6fafSSrinivas Kandagatla        #size-cells = <0>;
186974c6fafSSrinivas Kandagatla
187974c6fafSSrinivas Kandagatla        service@1 {
188974c6fafSSrinivas Kandagatla            compatible = "qcom,q6apm";
189974c6fafSSrinivas Kandagatla            reg = <GPR_APM_MODULE_IID>;
190*cd9ba3d0SKrzysztof Kozlowski            #sound-dai-cells = <0>;
191974c6fafSSrinivas Kandagatla            qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
192*cd9ba3d0SKrzysztof Kozlowski
193*cd9ba3d0SKrzysztof Kozlowski            dais {
194*cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6apm-dais";
195*cd9ba3d0SKrzysztof Kozlowski                iommus = <&apps_smmu 0x1801 0x0>;
196*cd9ba3d0SKrzysztof Kozlowski            };
197*cd9ba3d0SKrzysztof Kozlowski
198*cd9ba3d0SKrzysztof Kozlowski            bedais {
199*cd9ba3d0SKrzysztof Kozlowski                compatible = "qcom,q6apm-lpass-dais";
200*cd9ba3d0SKrzysztof Kozlowski                #sound-dai-cells = <1>;
201*cd9ba3d0SKrzysztof Kozlowski            };
202974c6fafSSrinivas Kandagatla        };
203974c6fafSSrinivas Kandagatla    };
204