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