[PATCH v4 01/20] soc: dt-bindings: qcom: apr: convert to yaml
Rob Herring
robh at kernel.org
Sat Aug 14 00:23:04 CEST 2021
On Mon, Aug 09, 2021 at 12:23:20PM +0100, Srinivas Kandagatla wrote:
> Convert APR bindings to yaml format so that we could add new bindings support.
>
> All the dsp services bindings are now part of apr bindings instead
> of adding them to audio bindings.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> ---
> .../devicetree/bindings/soc/qcom/qcom,apr.txt | 134 ------------------
> .../bindings/soc/qcom/qcom,apr.yaml | 127 +++++++++++++++++
> 2 files changed, 127 insertions(+), 134 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt
> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt
> deleted file mode 100644
> index 2e2f6dc351c0..000000000000
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt
> +++ /dev/null
> @@ -1,134 +0,0 @@
> -Qualcomm APR (Asynchronous Packet Router) binding
> -
> -This binding describes the Qualcomm APR. APR is a IPC protocol for
> -communication between Application processor and QDSP. APR is mainly
> -used for audio/voice services on the QDSP.
> -
> -- compatible:
> - Usage: required
> - Value type: <stringlist>
> - Definition: must be "qcom,apr-v<VERSION-NUMBER>", example "qcom,apr-v2"
> -
> -- qcom,apr-domain
> - Usage: required
> - Value type: <u32>
> - Definition: Destination processor ID.
> - Possible values are :
> - 1 - APR simulator
> - 2 - PC
> - 3 - MODEM
> - 4 - ADSP
> - 5 - APPS
> - 6 - MODEM2
> - 7 - APPS2
> -
> -= APR SERVICES
> -Each subnode of the APR node represents service tied to this apr. The name
> -of the nodes are not important. The properties of these nodes are defined
> -by the individual bindings for the specific service
> -- All APR services MUST contain the following property:
> -
> -- reg
> - Usage: required
> - Value type: <u32>
> - Definition: APR Service ID
> - Possible values are :
> - 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.
> -
> -- qcom,protection-domain
> - Usage: optional
> - Value type: <stringlist>
> - Definition: Must list the protection domain service name and path
> - that the particular apr service has a dependency on.
> - 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".
> -
> -= EXAMPLE
> -The following example represents a QDSP based sound card on a MSM8996 device
> -which uses apr as communication between Apps and QDSP.
> -
> - apr {
> - compatible = "qcom,apr-v2";
> - qcom,apr-domain = <APR_DOMAIN_ADSP>;
> -
> - apr-service at 3 {
> - compatible = "qcom,q6core";
> - reg = <APR_SVC_ADSP_CORE>;
> - };
> -
> - apr-service at 4 {
> - compatible = "qcom,q6afe";
> - reg = <APR_SVC_AFE>;
> -
> - dais {
> - #sound-dai-cells = <1>;
> - dai at 1 {
> - reg = <HDMI_RX>;
> - };
> - };
> - };
> -
> - apr-service at 7 {
> - compatible = "qcom,q6asm";
> - reg = <APR_SVC_ASM>;
> - ...
> - };
> -
> - apr-service at 8 {
> - compatible = "qcom,q6adm";
> - reg = <APR_SVC_ADM>;
> - ...
> - };
> - };
> -
> -= EXAMPLE 2
> -The following example represents a QDSP based sound card with protection domain
> -dependencies specified. Here some of the apr services are dependent on services
> -running on protection domain hosted on ADSP/SLPI remote processors while others
> -have no such dependency.
> -
> - apr {
> - compatible = "qcom,apr-v2";
> - qcom,glink-channels = "apr_audio_svc";
> - qcom,apr-domain = <APR_DOMAIN_ADSP>;
> -
> - apr-service at 3 {
> - compatible = "qcom,q6core";
> - reg = <APR_SVC_ADSP_CORE>;
> - };
> -
> - q6afe: apr-service at 4 {
> - compatible = "qcom,q6afe";
> - reg = <APR_SVC_AFE>;
> - qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> - ...
> - };
> -
> - q6asm: apr-service at 7 {
> - compatible = "qcom,q6asm";
> - reg = <APR_SVC_ASM>;
> - qcom,protection-domain = "tms/servreg", "msm/slpi/sensor_pd";
> - ...
> - };
> -
> - q6adm: apr-service at 8 {
> - compatible = "qcom,q6adm";
> - reg = <APR_SVC_ADM>;
> - qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> - ...
> - };
> - };
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
> new file mode 100644
> index 000000000000..12650f7084f4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
> @@ -0,0 +1,127 @@
> +# 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 (Asynchronous Packet Router) binding
> +
> +maintainers:
> + - Srinivas Kandagatla <srinivas.kandagatla at linaro.org>
> +
> +description: |
> + This binding describes the Qualcomm APR, APR is a IPC protocol for
> + communication between Application processor and QDSP. APR is mainly
> + used for audio/voice services on the QDSP.
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,apr
This wasn't a valid compatible before.
> + - qcom,apr-v2
> +
> + 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
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> +#APR Services
> +patternProperties:
> + "^apr-service@[0-9a-e]$":
Based on reg, this should be: [3-9a-d]
> + type: object
> + description:
> + APR node's client devices use subnodes for desired static port services.
> +
> + properties:
> + compatible:
> + enum:
> + - qcom,q6core
> + - qcom,q6asm
> + - qcom,q6afe
> + - qcom,q6adm
> +
> + reg:
> + enum: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 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.
> +
> + qcom,protection-domain:
> + $ref: /schemas/types.yaml#/definitions/string-array
> + description: protection domain service name and path for apr service
> + has dependency on.
> + items:
> + - const: avs/audio
> + - const: msm/adsp/audio_pd
You've dropped a bunch of possible values.
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - qcom,apr-domain
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/soc/qcom,apr.h>
> + apr {
> + compatible = "qcom,apr-v2";
> + qcom,apr-domain = <APR_DOMAIN_ADSP>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + q6core: apr-service at 3 {
> + compatible = "qcom,q6core";
> + reg = <APR_SVC_ADSP_CORE>;
> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> + };
> +
> + q6afe: apr-service at 4 {
> + compatible = "qcom,q6afe";
> + reg = <APR_SVC_AFE>;
> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> + };
> +
> + q6asm: apr-service at 7 {
> + compatible = "qcom,q6asm";
> + reg = <APR_SVC_ASM>;
> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> + };
> +
> + q6adm: apr-service at 8 {
> + compatible = "qcom,q6adm";
> + reg = <APR_SVC_ADM>;
> + qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
> + };
> + };
> --
> 2.21.0
>
>
More information about the Alsa-devel
mailing list