Unverified Commit aa56a9de authored by Sameer Pujar's avatar Sameer Pujar Committed by Mark Brown
Browse files

ASoC: dt-bindings: tegra: Few more Tegra210 AHUB modules



This patch adds YAML schema for DT bindings of few AHUB modules.
These devices will be registered as ASoC components and bindings
will be used on Tegra210 and later chips. The bindings for below
mentioned modules are added:

 * SFC (Sampling Frequency Converter)
 * MVC (Master Volume Control)
 * AMX (Audio Multiplexer)
 * ADX (Audio Demultiplexer)
 * Mixer

Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
Cc: Rob Herring <robh+dt@kernel.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/1631551342-25469-5-git-send-email-spujar@nvidia.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 30b428d0
Loading
Loading
Loading
Loading
+76 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nvidia,tegra210-adx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tegra210 ADX Device Tree Bindings

description: |
  The Audio Demultiplexer (ADX) block takes an input stream with up to
  16 channels and demultiplexes it into four output streams of up to 16
  channels each. A byte RAM helps to form output frames by any combination
  of bytes from the input frame. Its design is identical to that of byte
  RAM in the AMX except that the data flow direction is reversed.

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Mohan Kumar <mkumard@nvidia.com>
  - Sameer Pujar <spujar@nvidia.com>

allOf:
  - $ref: name-prefix.yaml#

properties:
  $nodename:
    pattern: "^adx@[0-9a-f]*$"

  compatible:
    oneOf:
      - const: nvidia,tegra210-adx
      - items:
          - enum:
              - nvidia,tegra194-adx
              - nvidia,tegra186-adx
          - const: nvidia,tegra210-adx

  reg:
    maxItems: 1

  sound-name-prefix:
    pattern: "^ADX[1-9]$"

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description: |
      ADX has one input and four outputs. Accordingly ACIF (Audio Client
      Interface) port nodes are defined to represent ADX input (port 0)
      and outputs (ports 1 to 4). These are connected to corresponding
      ports on AHUB (Audio Hub).
    properties:
      port@0:
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: ADX ACIF input port
    patternProperties:
      '^port@[1-4]':
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: ADX ACIF output ports

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |

    adx@702d3800 {
        compatible = "nvidia,tegra210-adx";
        reg = <0x702d3800 0x100>;
        sound-name-prefix = "ADX1";
    };

...
+20 −0
Original line number Diff line number Diff line
@@ -85,6 +85,26 @@ patternProperties:
    type: object
    $ref: nvidia,tegra186-dspk.yaml#

  '^mvc@[0-9a-f]+$':
    type: object
    $ref: nvidia,tegra210-mvc.yaml#

  '^sfc@[0-9a-f]+$':
    type: object
    $ref: nvidia,tegra210-sfc.yaml#

  '^amx@[0-9a-f]+$':
    type: object
    $ref: nvidia,tegra210-amx.yaml#

  '^adx@[0-9a-f]+$':
    type: object
    $ref: nvidia,tegra210-adx.yaml#

  '^amixer@[0-9a-f]+$':
    type: object
    $ref: nvidia,tegra210-mixer.yaml#

required:
  - compatible
  - reg
+76 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nvidia,tegra210-amx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tegra210 AMX Device Tree Bindings

description: |
  The Audio Multiplexer (AMX) block can multiplex up to four input streams
  each of which can have maximum 16 channels and generate an output stream
  with maximum 16 channels. A byte RAM helps to form an output frame by
  any combination of bytes from the input frames.

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Mohan Kumar <mkumard@nvidia.com>
  - Sameer Pujar <spujar@nvidia.com>

allOf:
  - $ref: name-prefix.yaml#

properties:
  $nodename:
    pattern: "^amx@[0-9a-f]*$"

  compatible:
    oneOf:
      - const: nvidia,tegra210-amx
      - items:
          - const: nvidia,tegra186-amx
          - const: nvidia,tegra210-amx
      - const: nvidia,tegra194-amx

  reg:
    maxItems: 1

  sound-name-prefix:
    pattern: "^AMX[1-9]$"

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description: |
      AMX has four inputs and one output. Accordingly ACIF (Audio Client
      Interfaces) port nodes are defined to represent AMX inputs (port 0
      to 3) and output (port 4). These are connected to corresponding
      ports on AHUB (Audio Hub).

    patternProperties:
      '^port@[0-3]':
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: AMX ACIF input ports

    properties:
      port@4:
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: AMX ACIF output port

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |

    amx@702d3000 {
        compatible = "nvidia,tegra210-amx";
        reg = <0x702d3000 0x100>;
        sound-name-prefix = "AMX1";
    };

...
+74 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nvidia,tegra210-mixer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tegra210 Mixer Device Tree Bindings

description: |
  The Mixer supports mixing of up to ten 7.1 audio input streams and
  generate five outputs (each of which can be any combination of the
  ten input streams).

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Mohan Kumar <mkumard@nvidia.com>
  - Sameer Pujar <spujar@nvidia.com>

allOf:
  - $ref: name-prefix.yaml#

properties:
  $nodename:
    pattern: "^amixer@[0-9a-f]*$"

  compatible:
    oneOf:
      - const: nvidia,tegra210-amixer
      - items:
          - enum:
              - nvidia,tegra194-amixer
              - nvidia,tegra186-amixer
          - const: nvidia,tegra210-amixer

  reg:
    maxItems: 1

  sound-name-prefix:
    pattern: "^MIXER[1-9]$"

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description: |
      Mixer has ten inputs and five outputs. Accordingly ACIF (Audio
      Client Interfaces) port nodes are defined to represent Mixer
      inputs (port 0 to 9) and outputs (port 10 to 14). These are
      connected to corresponding ports on AHUB (Audio Hub).

    patternProperties:
      '^port@[0-9]':
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: Mixer ACIF input ports
      '^port@[10-14]':
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: Mixer ACIF output ports

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |

    amixer@702dbb00 {
        compatible = "nvidia,tegra210-amixer";
        reg = <0x702dbb00 0x800>;
        sound-name-prefix = "MIXER1";
    };

...
+76 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nvidia,tegra210-mvc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tegra210 MVC Device Tree Bindings

description: |
  The Master Volume Control (MVC) provides gain or attenuation to a digital
  signal path. It can be used in input or output signal path for per-stream
  volume control or it can be used as master volume control. The MVC block
  has one input and one output. The input digital stream can be mono or
  multi-channel (up to 7.1 channels) stream. An independent mute control is
  also included in the MVC block.

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Mohan Kumar <mkumard@nvidia.com>
  - Sameer Pujar <spujar@nvidia.com>

allOf:
  - $ref: name-prefix.yaml#

properties:
  $nodename:
    pattern: "^mvc@[0-9a-f]*$"

  compatible:
    oneOf:
      - const: nvidia,tegra210-mvc
      - items:
          - enum:
              - nvidia,tegra194-mvc
              - nvidia,tegra186-mvc
          - const: nvidia,tegra210-mvc

  reg:
    maxItems: 1

  sound-name-prefix:
    pattern: "^MVC[1-9]$"

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: audio-graph-port.yaml#
        unevaluatedProperties: false
        description: |
          MVC 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: |
          MVC ACIF output port. This is connected to corresponding ACIF
          input port on AHUB.

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |

    mvc@702da000 {
        compatible = "nvidia,tegra210-mvc";
        reg = <0x702da000 0x200>;
        sound-name-prefix = "MVC1";
    };

...
Loading