| # 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"; |
| }; |
| }; |