[PATCH 1/6] ASoC: tegra: Add binding doc for OPE module
Krzysztof Kozlowski
krzysztof.kozlowski at linaro.org
Thu May 19 13:40:54 CEST 2022
On 18/05/2022 19:36, Sameer Pujar wrote:
> This patch adds YAML schema for DT bindings of Output Processing
> Engine (OPE) module. It consists of Parametric Equalizer (PEQ)
> and Multi Band Dynamic Range Compressor (MBDRC) sub blocks and
> binding doc for these blocks are added as well. The OPE will be
> registered as an ASoC component and can be plugged into an audio
> path as per need via ALSA mixer controls. The DT bindings are
> applicable on Tegra210 and later SoCs where OPE module is present.
>
> Signed-off-by: Sameer Pujar <spujar at nvidia.com>
> ---
> .../bindings/sound/nvidia,tegra210-ahub.yaml | 4 +
> .../bindings/sound/nvidia,tegra210-mbdrc.yaml | 51 ++++++++++++
> .../bindings/sound/nvidia,tegra210-ope.yaml | 91 ++++++++++++++++++++++
> .../bindings/sound/nvidia,tegra210-peq.yaml | 52 +++++++++++++
> 4 files changed, 198 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
> create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
> create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
>
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
> index 6df6f85..1fb93d9 100644
> --- a/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
> @@ -110,6 +110,10 @@ patternProperties:
> type: object
> $ref: nvidia,tegra186-asrc.yaml#
>
> + '^ope@[0-9a-f]+$':
> + type: object
> + $ref: nvidia,tegra210-ope.yaml#
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
> new file mode 100644
> index 00000000..199712ed
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
> @@ -0,0 +1,51 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-mbdrc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 MBDRC Device Tree Bindings
s/Device Tree Bindings//
and then you have enough space to de-acronym this MBDRC.
> +
> +description: |
> + The Multi Band Dynamic Range Compressor (MBDRC) is part of Output
> + Processing Engine (OPE) which interfaces with Audio Hub (AHUB) via
> + Audio Client Interface (ACIF). MBDRC can be used as a traditional
> + single full band or a dual band or a multi band dynamic processor.
> +
> +maintainers:
> + - Jon Hunter <jonathanh at nvidia.com>
> + - Mohan Kumar <mkumard at nvidia.com>
> + - Sameer Pujar <spujar at nvidia.com>
> +
> +properties:
> + $nodename:
> + pattern: "^mbdrc@[0-9a-f]*$"
Why? We enforce only generic names in shared schemas and this is neither
shared schema nor is it generic name.
> +
> + compatible:
> + oneOf:
> + - const: nvidia,tegra210-mbdrc
> + - items:
> + - enum:
> + - nvidia,tegra234-mbdrc
> + - nvidia,tegra194-mbdrc
> + - nvidia,tegra186-mbdrc
> + - const: nvidia,tegra210-mbdrc
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> +
No need for space
> + mbdrc at 702d8200 {
Generic node name.
> + compatible = "nvidia,tegra210-mbdrc";
> + reg = <0x702d8200 0x200>;
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
> new file mode 100644
> index 00000000..92488fd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
> @@ -0,0 +1,91 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-ope.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 OPE Device Tree Bindings
Same comment.
> +
> +description: |
> + The Output Processing Engine (OPE) is one of the AHUB client. It has
> + PEQ (Parametric Equalizer) and MBDRC (Multi Band Dynamic Range Compressor)
> + sub blocks for data processing.
> +
> +maintainers:
> + - Jon Hunter <jonathanh at nvidia.com>
> + - Mohan Kumar <mkumard at nvidia.com>
> + - Sameer Pujar <spujar at nvidia.com>
> +
> +allOf:
> + - $ref: name-prefix.yaml#
> +
> +properties:
> + $nodename:
> + pattern: "^ope@[0-9a-f]*$"
Same comment.
> +
> + compatible:
> + oneOf:
> + - const: nvidia,tegra210-ope
> + - items:
> + - enum:
> + - nvidia,tegra234-ope
> + - nvidia,tegra194-ope
> + - nvidia,tegra186-ope
> + - const: nvidia,tegra210-ope
> +
> + reg:
> + maxItems: 1
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> + ranges: true
> +
> + sound-name-prefix:
> + pattern: "^OPE[1-9]$"
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> + properties:
> + port at 0:
> + $ref: audio-graph-port.yaml#
> + unevaluatedProperties: false
> + description: |
No need for |
> + OPE ACIF (Audio Client Interface) input port. This is connected
> + to corresponding ACIF output port on AHUB (Audio Hub).
> +
> + port at 1:
> + $ref: audio-graph-port.yaml#
> + unevaluatedProperties: false
> + description: |
Ditto
> + OPE ACIF output port. This is connected to corresponding ACIF
> + input port on AHUB.
> +
> +patternProperties:
> + '^peq@[0-9a-f]+$':
> + type: object
> + $ref: nvidia,tegra210-peq.yaml#
> +
> + '^mbdrc@[0-9a-f]+$':
> + type: object
> + $ref: nvidia,tegra210-mbdrc.yaml#
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> +
Similar to other patch.
> + ope at 702d8000 {
I would suggest generic node name, if it is possible.
> + compatible = "nvidia,tegra210-ope";
> + reg = <0x702d8000 0x100>;
> + sound-name-prefix = "OPE1";
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
> new file mode 100644
> index 00000000..0f78746
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
> @@ -0,0 +1,52 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-peq.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 PEQ Device Tree Bindings
Ditto
> +
> +description: |
> + The Parametric Equalizer (PEQ) is a cascade of biquad filters with
> + each filter tuned based on certain parameters. It can be used to
> + equalize the irregularities in the speaker frequency response.
> + PEQ sits inside Output Processing Engine (OPE) which interfaces
> + with Audio Hub (AHUB) via Audio Client Interface (ACIF).
> +
> +maintainers:
> + - Jon Hunter <jonathanh at nvidia.com>
> + - Mohan Kumar <mkumard at nvidia.com>
> + - Sameer Pujar <spujar at nvidia.com>
> +
> +properties:
> + $nodename:
> + pattern: "^peq@[0-9a-f]*$"
Ditto
> +
> + compatible:
> + oneOf:
> + - const: nvidia,tegra210-peq
> + - items:
> + - enum:
> + - nvidia,tegra234-peq
> + - nvidia,tegra194-peq
> + - nvidia,tegra186-peq
> + - const: nvidia,tegra210-peq
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> +
Ditto
> + peq at 702d8100 {
Generic node name, so this is "equalizer", I guess?
> + compatible = "nvidia,tegra210-peq";
> + reg = <0x702d8100 0x100>;
> + };
> +
> +...
Best regards,
Krzysztof
More information about the Alsa-devel
mailing list