# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: "http://devicetree.org/schemas/soc/qcom/qcom,apr.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: Qualcomm APR/GPR (Asynchronous/Generic Packet Router) binding maintainers: - Srinivas Kandagatla description: | This binding describes the Qualcomm APR/GPR, APR/GPR is a IPC protocol for communication between Application processor and QDSP. APR/GPR is mainly used for audio/voice services on the QDSP. properties: compatible: enum: - qcom,apr-v2 - qcom,gpr qcom,apr-domain: $ref: /schemas/types.yaml#/definitions/uint32 enum: [1, 2, 3, 4, 5, 6, 7] description: Selects the processor domain for apr 1 = APR simulator 2 = PC Domain 3 = Modem Domain 4 = ADSP Domain 5 = Application processor Domain 6 = Modem2 Domain 7 = Application Processor2 Domain deprecated: true qcom,domain: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 1 maximum: 7 description: Selects the processor domain for apr 1 = APR simulator 2 = PC Domain 3 = Modem Domain 4 = ADSP Domain 5 = Application processor Domain 6 = Modem2 Domain 7 = Application Processor2 Domain Selects the processor domain for gpr 1 = Modem Domain 2 = Audio DSP Domain 3 = Application Processor Domain '#address-cells': const: 1 '#size-cells': const: 0 #APR/GPR Services patternProperties: "^service@[1-9a-d]$": type: object description: APR/GPR node's client devices use subnodes for desired static port services. properties: compatible: enum: - qcom,q6core - qcom,q6asm - qcom,q6afe - qcom,q6adm - qcom,q6apm - qcom,q6prm reg: minimum: 1 maximum: 13 description: APR Service ID 3 = DSP Core Service 4 = Audio Front End Service. 5 = Voice Stream Manager Service. 6 = Voice processing manager. 7 = Audio Stream Manager Service. 8 = Audio Device Manager Service. 9 = Multimode voice manager. 10 = Core voice stream. 11 = Core voice processor. 12 = Ultrasound stream manager. 13 = Listen stream manager. GPR Service ID 1 = Audio Process Manager Service 2 = Proxy Resource Manager Service. 3 = AMDB Service. 4 = Voice processing manager. qcom,protection-domain: $ref: /schemas/types.yaml#/definitions/string-array description: protection domain service name and path for apr service possible values are "avs/audio", "msm/adsp/audio_pd". "kernel/elf_loader", "msm/modem/wlan_pd". "tms/servreg", "msm/adsp/audio_pd". "tms/servreg", "msm/modem/wlan_pd". "tms/servreg", "msm/slpi/sensor_pd". '#address-cells': const: 1 '#size-cells': const: 0 patternProperties: "^.*@[0-9a-f]+$": type: object description: Service based devices like clock controllers or digital audio interfaces. additionalProperties: false required: - compatible - qcom,domain additionalProperties: false examples: - | #include apr { compatible = "qcom,apr-v2"; qcom,domain = ; #address-cells = <1>; #size-cells = <0>; q6core: service@3 { compatible = "qcom,q6core"; reg = ; qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; }; q6afe: service@4 { compatible = "qcom,q6afe"; reg = ; qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; }; q6asm: service@7 { compatible = "qcom,q6asm"; reg = ; qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; }; q6adm: service@8 { compatible = "qcom,q6adm"; reg = ; qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; }; }; - | #include gpr { compatible = "qcom,gpr"; qcom,domain = ; #address-cells = <1>; #size-cells = <0>; service@1 { compatible = "qcom,q6apm"; reg = ; qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; }; };