Re: [PATCH v2 04/16] ASoC: qcom: dt-bindings: add bindings Audio Processing manager

From: Rob Herring
Date: Wed Jul 28 2021 - 13:36:58 EST


On Wed, Jul 14, 2021 at 04:30:27PM +0100, Srinivas Kandagatla wrote:
> This patch adds bindings support for Qualcomm Audio Processing Manager
> service in Audio DSP.
>
> Audio Process Manager is one of the static service in DSP which is
> responsible for Command/response handling, graph Management
> and Control/Event management between modules.

This all looks fairly similar to the prior Qcom audio binding(s). It
would be nice to not see this all re-invented.

>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> ---
> .../devicetree/bindings/sound/qcom,q6apm.yaml | 87 +++++++++++++++++++
> include/dt-bindings/sound/qcom,q6apm.h | 8 ++
> 2 files changed, 95 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6apm.yaml
> create mode 100644 include/dt-bindings/sound/qcom,q6apm.h
>
> diff --git a/Documentation/devicetree/bindings/sound/qcom,q6apm.yaml b/Documentation/devicetree/bindings/sound/qcom,q6apm.yaml
> new file mode 100644
> index 000000000000..6f27567523a9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/qcom,q6apm.yaml
> @@ -0,0 +1,87 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/sound/qcom,q6apm.yaml#";
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#";
> +
> +title: Qualcomm Audio Process Manager binding
> +
> +maintainers:
> + - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> +
> +description: |
> + This binding describes the Qualcomm Audio Process Manager service in DSP
> +
> +properties:
> + compatible:
> + const: qcom,q6apm
> +
> + reg:
> + maxItems: 1
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> +#APM Services
> +patternProperties:
> + 'apm@[0-9]+$':

This means '.*apm' for the node name. Did you need a '^'?

> + type: object
> + description:
> + APM devices use subnodes for services.
> +
> + properties:
> + compatible:
> + enum:
> + - qcom,q6apm-dais
> + - qcom,q6apm-bedais
> +
> + iommus:
> + maxItems: 1
> +
> + "#sound-dai-cells":
> + const: 1
> +
> + reg:
> + maxItems: 1
> +
> + required:
> + - compatible
> + - reg
> + - '#sound-dai-cells'
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + gpr {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + gprservice@1 {
> + compatible = "qcom,q6apm";
> + reg = <1>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + apm@1 {
> + compatible = "qcom,q6apm-dais";
> + #sound-dai-cells = <1>;
> + reg = <1>;
> + };
> +
> + apm@2 {
> + compatible = "qcom,q6apm-bedais";
> + #sound-dai-cells = <1>;
> + reg = <2>;
> + };
> + };
> + };
> diff --git a/include/dt-bindings/sound/qcom,q6apm.h b/include/dt-bindings/sound/qcom,q6apm.h
> new file mode 100644
> index 000000000000..3c3987eb6e95
> --- /dev/null
> +++ b/include/dt-bindings/sound/qcom,q6apm.h
> @@ -0,0 +1,8 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef __DT_BINDINGS_Q6_APM_H__
> +#define __DT_BINDINGS_Q6_APM_H__
> +
> +/* Audio Process Manager (APM) virtual ports IDs */
> +#include <dt-bindings/sound/qcom,q6afe.h>

Why add this indirection? Rename the file if you need something to cover
both.

> +
> +#endif /* __DT_BINDINGS_Q6_APM_H__ */
> --
> 2.21.0
>
>