0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/soc/qcom/qcom,apr.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006
0007 title: Qualcomm APR/GPR (Asynchronous/Generic Packet Router) binding
0008
0009 maintainers:
0010 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
0011
0012 description: |
0013 This binding describes the Qualcomm APR/GPR, APR/GPR is a IPC protocol for
0014 communication between Application processor and QDSP. APR/GPR is mainly
0015 used for audio/voice services on the QDSP.
0016
0017 properties:
0018 compatible:
0019 enum:
0020 - qcom,apr-v2
0021 - qcom,gpr
0022
0023 qcom,apr-domain:
0024 $ref: /schemas/types.yaml#/definitions/uint32
0025 enum: [1, 2, 3, 4, 5, 6, 7]
0026 description:
0027 Selects the processor domain for apr
0028 1 = APR simulator
0029 2 = PC Domain
0030 3 = Modem Domain
0031 4 = ADSP Domain
0032 5 = Application processor Domain
0033 6 = Modem2 Domain
0034 7 = Application Processor2 Domain
0035 deprecated: true
0036
0037 qcom,domain:
0038 $ref: /schemas/types.yaml#/definitions/uint32
0039 minimum: 1
0040 maximum: 7
0041 description:
0042 Selects the processor domain for apr
0043 1 = APR simulator
0044 2 = PC Domain
0045 3 = Modem Domain
0046 4 = ADSP Domain
0047 5 = Application processor Domain
0048 6 = Modem2 Domain
0049 7 = Application Processor2 Domain
0050 Selects the processor domain for gpr
0051 1 = Modem Domain
0052 2 = Audio DSP Domain
0053 3 = Application Processor Domain
0054
0055 '#address-cells':
0056 const: 1
0057
0058 '#size-cells':
0059 const: 0
0060
0061 #APR/GPR Services
0062 patternProperties:
0063 "^service@[1-9a-d]$":
0064 type: object
0065 description:
0066 APR/GPR node's client devices use subnodes for desired static port services.
0067
0068 properties:
0069 compatible:
0070 enum:
0071 - qcom,q6core
0072 - qcom,q6asm
0073 - qcom,q6afe
0074 - qcom,q6adm
0075 - qcom,q6apm
0076 - qcom,q6prm
0077
0078 reg:
0079 minimum: 1
0080 maximum: 13
0081 description:
0082 APR Service ID
0083 3 = DSP Core Service
0084 4 = Audio Front End Service.
0085 5 = Voice Stream Manager Service.
0086 6 = Voice processing manager.
0087 7 = Audio Stream Manager Service.
0088 8 = Audio Device Manager Service.
0089 9 = Multimode voice manager.
0090 10 = Core voice stream.
0091 11 = Core voice processor.
0092 12 = Ultrasound stream manager.
0093 13 = Listen stream manager.
0094 GPR Service ID
0095 1 = Audio Process Manager Service
0096 2 = Proxy Resource Manager Service.
0097 3 = AMDB Service.
0098 4 = Voice processing manager.
0099
0100 qcom,protection-domain:
0101 $ref: /schemas/types.yaml#/definitions/string-array
0102 description: protection domain service name and path for apr service
0103 possible values are
0104 "avs/audio", "msm/adsp/audio_pd".
0105 "kernel/elf_loader", "msm/modem/wlan_pd".
0106 "tms/servreg", "msm/adsp/audio_pd".
0107 "tms/servreg", "msm/modem/wlan_pd".
0108 "tms/servreg", "msm/slpi/sensor_pd".
0109
0110 '#address-cells':
0111 const: 1
0112
0113 '#size-cells':
0114 const: 0
0115
0116 patternProperties:
0117 "^.*@[0-9a-f]+$":
0118 type: object
0119 description:
0120 Service based devices like clock controllers or digital audio interfaces.
0121
0122 additionalProperties: false
0123
0124 required:
0125 - compatible
0126 - qcom,domain
0127
0128 additionalProperties: false
0129
0130 examples:
0131 - |
0132 #include <dt-bindings/soc/qcom,apr.h>
0133 apr {
0134 compatible = "qcom,apr-v2";
0135 qcom,domain = <APR_DOMAIN_ADSP>;
0136 #address-cells = <1>;
0137 #size-cells = <0>;
0138
0139 q6core: service@3 {
0140 compatible = "qcom,q6core";
0141 reg = <APR_SVC_ADSP_CORE>;
0142 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
0143 };
0144
0145 q6afe: service@4 {
0146 compatible = "qcom,q6afe";
0147 reg = <APR_SVC_AFE>;
0148 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
0149 };
0150
0151 q6asm: service@7 {
0152 compatible = "qcom,q6asm";
0153 reg = <APR_SVC_ASM>;
0154 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
0155 };
0156
0157 q6adm: service@8 {
0158 compatible = "qcom,q6adm";
0159 reg = <APR_SVC_ADM>;
0160 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
0161 };
0162 };
0163
0164 - |
0165 #include <dt-bindings/soc/qcom,gpr.h>
0166 gpr {
0167 compatible = "qcom,gpr";
0168 qcom,domain = <GPR_DOMAIN_ID_ADSP>;
0169 #address-cells = <1>;
0170 #size-cells = <0>;
0171
0172 service@1 {
0173 compatible = "qcom,q6apm";
0174 reg = <GPR_APM_MODULE_IID>;
0175 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
0176 };
0177 };