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