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@xxxxxxxxxx> > --- > .../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@xxxxxxxxxx> > + - Mohan Kumar <mkumard@xxxxxxxxxx> > + - Sameer Pujar <spujar@xxxxxxxxxx> > + > +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@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@xxxxxxxxxx> > + - Mohan Kumar <mkumard@xxxxxxxxxx> > + - Sameer Pujar <spujar@xxxxxxxxxx> > + > +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@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@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@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@xxxxxxxxxx> > + - Mohan Kumar <mkumard@xxxxxxxxxx> > + - Sameer Pujar <spujar@xxxxxxxxxx> > + > +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@702d8100 { > + compatible = "nvidia,tegra210-peq"; > + reg = <0x702d8100 0x100>; > + }; > + > +... Best regards, Krzysztof