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) binding 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-v2 21 - qcom,gpr 22 23 qcom,apr-domain: 24 $ref: /schemas/types.yaml#/definitions/uint32 25 enum: [1, 2, 3, 4, 5, 6, 7] 26 description: 27 Selects the processor domain for apr 28 1 = APR simulator 29 2 = PC Domain 30 3 = Modem Domain 31 4 = ADSP Domain 32 5 = Application processor Domain 33 6 = Modem2 Domain 34 7 = Application Processor2 Domain 35 deprecated: true 36 37 qcom,domain: 38 $ref: /schemas/types.yaml#/definitions/uint32 39 minimum: 1 40 maximum: 7 41 description: 42 Selects the processor domain for apr 43 1 = APR simulator 44 2 = PC Domain 45 3 = Modem Domain 46 4 = ADSP Domain 47 5 = Application processor Domain 48 6 = Modem2 Domain 49 7 = Application Processor2 Domain 50 Selects the processor domain for gpr 51 1 = Modem Domain 52 2 = Audio DSP Domain 53 3 = Application Processor Domain 54 55 '#address-cells': 56 const: 1 57 58 '#size-cells': 59 const: 0 60 61#APR/GPR Services 62patternProperties: 63 "^service@[1-9a-d]$": 64 type: object 65 description: 66 APR/GPR node's client devices use subnodes for desired static port services. 67 68 properties: 69 compatible: 70 enum: 71 - qcom,q6core 72 - qcom,q6asm 73 - qcom,q6afe 74 - qcom,q6adm 75 - qcom,q6apm 76 - qcom,q6prm 77 78 reg: 79 minimum: 1 80 maximum: 13 81 description: 82 APR Service ID 83 3 = DSP Core Service 84 4 = Audio Front End Service. 85 5 = Voice Stream Manager Service. 86 6 = Voice processing manager. 87 7 = Audio Stream Manager Service. 88 8 = Audio Device Manager Service. 89 9 = Multimode voice manager. 90 10 = Core voice stream. 91 11 = Core voice processor. 92 12 = Ultrasound stream manager. 93 13 = Listen stream manager. 94 GPR Service ID 95 1 = Audio Process Manager Service 96 2 = Proxy Resource Manager Service. 97 3 = AMDB Service. 98 4 = Voice processing manager. 99 100 qcom,protection-domain: 101 $ref: /schemas/types.yaml#/definitions/string-array 102 description: protection domain service name and path for apr service 103 possible values are 104 "avs/audio", "msm/adsp/audio_pd". 105 "kernel/elf_loader", "msm/modem/wlan_pd". 106 "tms/servreg", "msm/adsp/audio_pd". 107 "tms/servreg", "msm/modem/wlan_pd". 108 "tms/servreg", "msm/slpi/sensor_pd". 109 110 '#address-cells': 111 const: 1 112 113 '#size-cells': 114 const: 0 115 116 patternProperties: 117 "^.*@[0-9a-f]+$": 118 type: object 119 description: 120 Service based devices like clock controllers or digital audio interfaces. 121 122 additionalProperties: false 123 124required: 125 - compatible 126 - qcom,domain 127 128additionalProperties: false 129 130examples: 131 - | 132 #include <dt-bindings/soc/qcom,apr.h> 133 apr { 134 compatible = "qcom,apr-v2"; 135 qcom,domain = <APR_DOMAIN_ADSP>; 136 #address-cells = <1>; 137 #size-cells = <0>; 138 139 q6core: service@3 { 140 compatible = "qcom,q6core"; 141 reg = <APR_SVC_ADSP_CORE>; 142 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 143 }; 144 145 q6afe: service@4 { 146 compatible = "qcom,q6afe"; 147 reg = <APR_SVC_AFE>; 148 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 149 }; 150 151 q6asm: service@7 { 152 compatible = "qcom,q6asm"; 153 reg = <APR_SVC_ASM>; 154 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 155 }; 156 157 q6adm: service@8 { 158 compatible = "qcom,q6adm"; 159 reg = <APR_SVC_ADM>; 160 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 161 }; 162 }; 163 164 - | 165 #include <dt-bindings/soc/qcom,gpr.h> 166 gpr { 167 compatible = "qcom,gpr"; 168 qcom,domain = <GPR_DOMAIN_ID_ADSP>; 169 #address-cells = <1>; 170 #size-cells = <0>; 171 172 service@1 { 173 compatible = "qcom,q6apm"; 174 reg = <GPR_APM_MODULE_IID>; 175 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; 176 }; 177 }; 178