[PATCH v2 1/6] ASoC: tegra: Add binding doc for OPE module
Krzysztof Kozlowski
krzysztof.kozlowski at linaro.org
Sun May 29 07:09:04 PDT 2022
On 27/05/2022 12:26, 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 | 47 ++++++++++++
> .../bindings/sound/nvidia,tegra210-ope.yaml | 87 ++++++++++++++++++++++
> .../bindings/sound/nvidia,tegra210-peq.yaml | 48 ++++++++++++
> 4 files changed, 186 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..47b6e71 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#
>
> + '^processing-engine@[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 0000000..0d55328
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
> @@ -0,0 +1,47 @@
> +# 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
Previous comments - s/Device Tree Bindings//
- still applies. Please do not ignore it.
> +
> +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:
> + 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:
> + - |
> + dynamic-range-compressor at 702d8200 {
> + 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 0000000..7cbc756
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
> @@ -0,0 +1,87 @@
> +# 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
Ditto.
> +
> +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:
> + 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:
> + 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:
> + OPE ACIF output port. This is connected to corresponding ACIF
> + input port on AHUB.
> +
> +patternProperties:
> + '^equalizer@[0-9a-f]+$':
> + type: object
> + $ref: nvidia,tegra210-peq.yaml#
> +
> + '^dynamic-range-compressor@[0-9a-f]+$':
> + type: object
> + $ref: nvidia,tegra210-mbdrc.yaml#
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + processing-engine at 702d8000 {
> + 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 0000000..fea4c63
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
> @@ -0,0 +1,48 @@
> +# 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:
> + 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:
> + - |
> + equalizer at 702d8100 {
> + compatible = "nvidia,tegra210-peq";
> + reg = <0x702d8100 0x100>;
> + };
> +
> +...
Best regards,
Krzysztof
More information about the linux-arm-kernel
mailing list