Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: tegra: Add binding doc for OPE module

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@nvidia.com>
Link: https://lore.kernel.org/r/1654238172-16293-2-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Sameer Pujar and committed by
Mark Brown
45c6c5e0 be1a63da

+186
+4
Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
··· 110 110 type: object 111 111 $ref: nvidia,tegra186-asrc.yaml# 112 112 113 + '^processing-engine@[0-9a-f]+$': 114 + type: object 115 + $ref: nvidia,tegra210-ope.yaml# 116 + 113 117 required: 114 118 - compatible 115 119 - reg
+47
Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/nvidia,tegra210-mbdrc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Tegra210 MBDRC 8 + 9 + description: 10 + The Multi Band Dynamic Range Compressor (MBDRC) is part of Output 11 + Processing Engine (OPE) which interfaces with Audio Hub (AHUB) via 12 + Audio Client Interface (ACIF). MBDRC can be used as a traditional 13 + single full band or a dual band or a multi band dynamic processor. 14 + 15 + maintainers: 16 + - Jon Hunter <jonathanh@nvidia.com> 17 + - Mohan Kumar <mkumard@nvidia.com> 18 + - Sameer Pujar <spujar@nvidia.com> 19 + 20 + properties: 21 + compatible: 22 + oneOf: 23 + - const: nvidia,tegra210-mbdrc 24 + - items: 25 + - enum: 26 + - nvidia,tegra234-mbdrc 27 + - nvidia,tegra194-mbdrc 28 + - nvidia,tegra186-mbdrc 29 + - const: nvidia,tegra210-mbdrc 30 + 31 + reg: 32 + maxItems: 1 33 + 34 + required: 35 + - compatible 36 + - reg 37 + 38 + additionalProperties: false 39 + 40 + examples: 41 + - | 42 + dynamic-range-compressor@702d8200 { 43 + compatible = "nvidia,tegra210-mbdrc"; 44 + reg = <0x702d8200 0x200>; 45 + }; 46 + 47 + ...
+87
Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/nvidia,tegra210-ope.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Tegra210 OPE 8 + 9 + description: 10 + The Output Processing Engine (OPE) is one of the AHUB client. It has 11 + PEQ (Parametric Equalizer) and MBDRC (Multi Band Dynamic Range Compressor) 12 + sub blocks for data processing. 13 + 14 + maintainers: 15 + - Jon Hunter <jonathanh@nvidia.com> 16 + - Mohan Kumar <mkumard@nvidia.com> 17 + - Sameer Pujar <spujar@nvidia.com> 18 + 19 + allOf: 20 + - $ref: name-prefix.yaml# 21 + 22 + properties: 23 + compatible: 24 + oneOf: 25 + - const: nvidia,tegra210-ope 26 + - items: 27 + - enum: 28 + - nvidia,tegra234-ope 29 + - nvidia,tegra194-ope 30 + - nvidia,tegra186-ope 31 + - const: nvidia,tegra210-ope 32 + 33 + reg: 34 + maxItems: 1 35 + 36 + "#address-cells": 37 + const: 1 38 + 39 + "#size-cells": 40 + const: 1 41 + 42 + ranges: true 43 + 44 + sound-name-prefix: 45 + pattern: "^OPE[1-9]$" 46 + 47 + ports: 48 + $ref: /schemas/graph.yaml#/properties/ports 49 + properties: 50 + port@0: 51 + $ref: audio-graph-port.yaml# 52 + unevaluatedProperties: false 53 + description: 54 + OPE ACIF (Audio Client Interface) input port. This is connected 55 + to corresponding ACIF output port on AHUB (Audio Hub). 56 + 57 + port@1: 58 + $ref: audio-graph-port.yaml# 59 + unevaluatedProperties: false 60 + description: 61 + OPE ACIF output port. This is connected to corresponding ACIF 62 + input port on AHUB. 63 + 64 + patternProperties: 65 + '^equalizer@[0-9a-f]+$': 66 + type: object 67 + $ref: nvidia,tegra210-peq.yaml# 68 + 69 + '^dynamic-range-compressor@[0-9a-f]+$': 70 + type: object 71 + $ref: nvidia,tegra210-mbdrc.yaml# 72 + 73 + required: 74 + - compatible 75 + - reg 76 + 77 + additionalProperties: false 78 + 79 + examples: 80 + - | 81 + processing-engine@702d8000 { 82 + compatible = "nvidia,tegra210-ope"; 83 + reg = <0x702d8000 0x100>; 84 + sound-name-prefix = "OPE1"; 85 + }; 86 + 87 + ...
+48
Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/sound/nvidia,tegra210-peq.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Tegra210 PEQ 8 + 9 + description: 10 + The Parametric Equalizer (PEQ) is a cascade of biquad filters with 11 + each filter tuned based on certain parameters. It can be used to 12 + equalize the irregularities in the speaker frequency response. 13 + PEQ sits inside Output Processing Engine (OPE) which interfaces 14 + with Audio Hub (AHUB) via Audio Client Interface (ACIF). 15 + 16 + maintainers: 17 + - Jon Hunter <jonathanh@nvidia.com> 18 + - Mohan Kumar <mkumard@nvidia.com> 19 + - Sameer Pujar <spujar@nvidia.com> 20 + 21 + properties: 22 + compatible: 23 + oneOf: 24 + - const: nvidia,tegra210-peq 25 + - items: 26 + - enum: 27 + - nvidia,tegra234-peq 28 + - nvidia,tegra194-peq 29 + - nvidia,tegra186-peq 30 + - const: nvidia,tegra210-peq 31 + 32 + reg: 33 + maxItems: 1 34 + 35 + required: 36 + - compatible 37 + - reg 38 + 39 + additionalProperties: false 40 + 41 + examples: 42 + - | 43 + equalizer@702d8100 { 44 + compatible = "nvidia,tegra210-peq"; 45 + reg = <0x702d8100 0x100>; 46 + }; 47 + 48 + ...