| # 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 <srinivas.kandagatla@linaro.org> | |
| 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 <dt-bindings/soc/qcom,apr.h> | |
| apr { | |
| compatible = "qcom,apr-v2"; | |
| qcom,domain = <APR_DOMAIN_ADSP>; | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| q6core: service@3 { | |
| compatible = "qcom,q6core"; | |
| reg = <APR_SVC_ADSP_CORE>; | |
| qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; | |
| }; | |
| q6afe: service@4 { | |
| compatible = "qcom,q6afe"; | |
| reg = <APR_SVC_AFE>; | |
| qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; | |
| }; | |
| q6asm: service@7 { | |
| compatible = "qcom,q6asm"; | |
| reg = <APR_SVC_ASM>; | |
| qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; | |
| }; | |
| q6adm: service@8 { | |
| compatible = "qcom,q6adm"; | |
| reg = <APR_SVC_ADM>; | |
| qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; | |
| }; | |
| }; | |
| - | | |
| #include <dt-bindings/soc/qcom,gpr.h> | |
| gpr { | |
| compatible = "qcom,gpr"; | |
| qcom,domain = <GPR_DOMAIN_ID_ADSP>; | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| service@1 { | |
| compatible = "qcom,q6apm"; | |
| reg = <GPR_APM_MODULE_IID>; | |
| qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd"; | |
| }; | |
| }; |