212 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---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 for14 communication between Application processor and QDSP. APR/GPR is mainly15 used for audio/voice services on the QDSP.16 17properties:18 compatible:19 enum:20 - qcom,apr21 - qcom,apr-v222 - qcom,gpr23 24 power-domains:25 maxItems: 126 27 qcom,apr-domain:28 $ref: /schemas/types.yaml#/definitions/uint3229 enum: [1, 2, 3, 4, 5, 6, 7]30 description:31 Selects the processor domain for apr32 1 = APR simulator33 2 = PC Domain34 3 = Modem Domain35 4 = ADSP Domain36 5 = Application processor Domain37 6 = Modem2 Domain38 7 = Application Processor2 Domain39 deprecated: true40 41 qcom,domain:42 $ref: /schemas/types.yaml#/definitions/uint3243 minimum: 144 maximum: 745 description:46 Selects the processor domain for apr47 1 = APR simulator48 2 = PC Domain49 3 = Modem Domain50 4 = ADSP Domain51 5 = Application processor Domain52 6 = Modem2 Domain53 7 = Application Processor2 Domain54 Selects the processor domain for gpr55 1 = Modem Domain56 2 = Audio DSP Domain57 3 = Application Processor Domain58 59 qcom,glink-channels:60 $ref: /schemas/types.yaml#/definitions/string-array61 description: Channel name used for the communication62 maxItems: 163 64 qcom,intents:65 $ref: /schemas/types.yaml#/definitions/uint32-matrix66 minItems: 167 maxItems: 3268 items:69 items:70 - description: size of each intent to preallocate71 - description: amount of intents to preallocate72 minimum: 173 description:74 List of (size, amount) pairs describing what intents should be75 preallocated for this virtual channel. This can be used to tweak the76 default intents available for the channel to meet expectations of the77 remote.78 79 qcom,smd-channels:80 $ref: /schemas/types.yaml#/definitions/string-array81 description: Channel name used for the communication82 items:83 - const: apr_audio_svc84 85 '#address-cells':86 const: 187 88 '#size-cells':89 const: 090 91patternProperties:92 "^service@[1-9a-d]$":93 type: object94 $ref: /schemas/soc/qcom/qcom,apr-services.yaml95 additionalProperties: true96 description:97 APR/GPR static port services.98 99 properties:100 compatible:101 enum:102 - qcom,q6core103 - qcom,q6asm104 - qcom,q6afe105 - qcom,q6adm106 - qcom,q6apm107 - qcom,q6prm108 109required:110 - compatible111 - qcom,domain112 113allOf:114 - if:115 properties:116 compatible:117 enum:118 - qcom,gpr119 then:120 properties:121 qcom,glink-channels:122 items:123 - const: adsp_apps124 power-domains: false125 else:126 properties:127 qcom,glink-channels:128 items:129 - const: apr_audio_svc130 131 - if:132 required:133 - qcom,glink-channels134 then:135 properties:136 qcom,smd-channels: false137 138 - if:139 required:140 - qcom,smd-channels141 then:142 properties:143 qcom,glink-channels: false144 145additionalProperties: false146 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 };212