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