]> git.ipfire.org Git - thirdparty/u-boot.git/blob - Bindings/soc/qcom/qcom,apr.yaml
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / Bindings / soc / qcom / qcom,apr.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
7 title: Qualcomm APR/GPR (Asynchronous/Generic Packet Router)
8
9 maintainers:
10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12 description: |
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
17 properties:
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
91 patternProperties:
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
109 required:
110 - compatible
111 - qcom,domain
112
113 allOf:
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
145 additionalProperties: false
146
147 examples:
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 };