xref: /freebsd/sys/contrib/device-tree/Bindings/sound/nvidia,tegra186-asrc.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/nvidia,tegra186-asrc.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Tegra186 ASRC
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotdescription: |
10d5b0e70fSEmmanuel Vadot  Asynchronous Sample Rate Converter (ASRC) converts the sampling frequency
11d5b0e70fSEmmanuel Vadot  of the input signal from one frequency to another. It can handle over a
12d5b0e70fSEmmanuel Vadot  wide range of sample rate ratios (freq_in/freq_out) from 1:24 to 24:1.
13d5b0e70fSEmmanuel Vadot  ASRC has two modes of operation. One where ratio can be programmed in SW
14d5b0e70fSEmmanuel Vadot  and the other where it gets the information from ratio estimator module.
15d5b0e70fSEmmanuel Vadot
16d5b0e70fSEmmanuel Vadot  It supports  sample rate conversions in the range of 8 to 192 kHz and
17d5b0e70fSEmmanuel Vadot  supports 6 streams upto 12 total channels. The input data size can be
18d5b0e70fSEmmanuel Vadot  16, 24 and 32 bits.
19d5b0e70fSEmmanuel Vadot
20d5b0e70fSEmmanuel Vadotmaintainers:
21d5b0e70fSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
22d5b0e70fSEmmanuel Vadot  - Mohan Kumar <mkumard@nvidia.com>
23d5b0e70fSEmmanuel Vadot  - Sameer Pujar <spujar@nvidia.com>
24d5b0e70fSEmmanuel Vadot
25d5b0e70fSEmmanuel VadotallOf:
26d5b0e70fSEmmanuel Vadot  - $ref: name-prefix.yaml#
27d5b0e70fSEmmanuel Vadot
28d5b0e70fSEmmanuel Vadotproperties:
29d5b0e70fSEmmanuel Vadot  $nodename:
30d5b0e70fSEmmanuel Vadot    pattern: "^asrc@[0-9a-f]*$"
31d5b0e70fSEmmanuel Vadot
32d5b0e70fSEmmanuel Vadot  compatible:
33d5b0e70fSEmmanuel Vadot    oneOf:
34d5b0e70fSEmmanuel Vadot      - const: nvidia,tegra186-asrc
35d5b0e70fSEmmanuel Vadot      - items:
36d5b0e70fSEmmanuel Vadot          - enum:
37d5b0e70fSEmmanuel Vadot              - nvidia,tegra234-asrc
38d5b0e70fSEmmanuel Vadot              - nvidia,tegra194-asrc
39d5b0e70fSEmmanuel Vadot          - const: nvidia,tegra186-asrc
40d5b0e70fSEmmanuel Vadot
41d5b0e70fSEmmanuel Vadot  reg:
42d5b0e70fSEmmanuel Vadot    maxItems: 1
43d5b0e70fSEmmanuel Vadot
44d5b0e70fSEmmanuel Vadot  sound-name-prefix:
45d5b0e70fSEmmanuel Vadot    pattern: "^ASRC[1-9]$"
46d5b0e70fSEmmanuel Vadot
47d5b0e70fSEmmanuel Vadot  ports:
48d5b0e70fSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
49d5b0e70fSEmmanuel Vadot    description: |
50d5b0e70fSEmmanuel Vadot      ASRC has seven input ports and six output ports. Accordingly ACIF
51d5b0e70fSEmmanuel Vadot      (Audio Client Interfaces) port nodes are defined to represent the
52d5b0e70fSEmmanuel Vadot      ASRC inputs (port 0 to 6) and outputs (port 7 to 12). These are
53d5b0e70fSEmmanuel Vadot      connected to corresponding ports on AHUB (Audio Hub). Additional
54d5b0e70fSEmmanuel Vadot      input (port 6) is for receiving ratio information from estimator.
55d5b0e70fSEmmanuel Vadot
56d5b0e70fSEmmanuel Vadot    patternProperties:
57d5b0e70fSEmmanuel Vadot      '^port@[0-6]':
58d5b0e70fSEmmanuel Vadot        $ref: audio-graph-port.yaml#
59d5b0e70fSEmmanuel Vadot        unevaluatedProperties: false
60d5b0e70fSEmmanuel Vadot        description: ASRC ACIF input ports
61d5b0e70fSEmmanuel Vadot      '^port@[7-9]|1[1-2]':
62d5b0e70fSEmmanuel Vadot        $ref: audio-graph-port.yaml#
63d5b0e70fSEmmanuel Vadot        unevaluatedProperties: false
64d5b0e70fSEmmanuel Vadot        description: ASRC ACIF output ports
65d5b0e70fSEmmanuel Vadot
66d5b0e70fSEmmanuel Vadotrequired:
67d5b0e70fSEmmanuel Vadot  - compatible
68d5b0e70fSEmmanuel Vadot  - reg
69d5b0e70fSEmmanuel Vadot
70d5b0e70fSEmmanuel VadotadditionalProperties: false
71d5b0e70fSEmmanuel Vadot
72d5b0e70fSEmmanuel Vadotexamples:
73d5b0e70fSEmmanuel Vadot  - |
74d5b0e70fSEmmanuel Vadot
75d5b0e70fSEmmanuel Vadot    asrc@2910000 {
76d5b0e70fSEmmanuel Vadot        compatible = "nvidia,tegra186-asrc";
77d5b0e70fSEmmanuel Vadot        reg = <0x2910000 0x2000>;
78d5b0e70fSEmmanuel Vadot        sound-name-prefix = "ASRC1";
79d5b0e70fSEmmanuel Vadot    };
80d5b0e70fSEmmanuel Vadot
81d5b0e70fSEmmanuel Vadot...
82