1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/nvidia,tegra210-i2s.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Tegra210 I2S Controller Device Tree Bindings
8
9description: |
10  The Inter-IC Sound (I2S) controller implements full-duplex,
11  bi-directional and single direction point-to-point serial
12  interfaces. It can interface with I2S compatible devices.
13  I2S controller can operate both in master and slave mode.
14
15maintainers:
16  - Jon Hunter <jonathanh@nvidia.com>
17  - Sameer Pujar <spujar@nvidia.com>
18
19allOf:
20  - $ref: name-prefix.yaml#
21
22properties:
23  $nodename:
24    pattern: "^i2s@[0-9a-f]*$"
25
26  compatible:
27    oneOf:
28      - const: nvidia,tegra210-i2s
29      - items:
30          - enum:
31              - nvidia,tegra194-i2s
32              - nvidia,tegra186-i2s
33          - const: nvidia,tegra210-i2s
34
35  reg:
36    maxItems: 1
37
38  clocks:
39    minItems: 1
40    items:
41      - description: I2S bit clock
42      - description:
43          Sync input clock, which can act as clock source to other I/O
44          modules in AHUB. The Tegra I2S driver sets this clock rate as
45          per bit clock rate. I/O module which wants to use this clock
46          as source, can mention this clock as parent in the DT bindings.
47          This is an optional clock entry, since it is only required when
48          some other I/O wants to reference from a particular I2Sx
49          instance.
50
51  clock-names:
52    minItems: 1
53    items:
54      - const: i2s
55      - const: sync_input
56
57  assigned-clocks:
58    minItems: 1
59    maxItems: 2
60
61  assigned-clock-parents:
62    minItems: 1
63    maxItems: 2
64
65  assigned-clock-rates:
66    minItems: 1
67    maxItems: 2
68
69  sound-name-prefix:
70    pattern: "^I2S[1-9]$"
71
72  ports:
73    $ref: /schemas/graph.yaml#/properties/ports
74    properties:
75      port@0:
76        $ref: audio-graph-port.yaml#
77        unevaluatedProperties: false
78        description: |
79          I2S ACIF (Audio Client Interface) port connected to the
80          corresponding AHUB (Audio Hub) ACIF port.
81
82      port@1:
83        $ref: audio-graph-port.yaml#
84        unevaluatedProperties: false
85        description: |
86          I2S DAP (Digital Audio Port) interface which can be connected
87          to external audio codec for playback or capture.
88
89required:
90  - compatible
91  - reg
92  - clocks
93  - clock-names
94  - assigned-clocks
95  - assigned-clock-parents
96
97additionalProperties: false
98
99examples:
100  - |
101    #include<dt-bindings/clock/tegra210-car.h>
102
103    i2s@702d1000 {
104        compatible = "nvidia,tegra210-i2s";
105        reg = <0x702d1000 0x100>;
106        clocks = <&tegra_car TEGRA210_CLK_I2S0>;
107        clock-names = "i2s";
108        assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
109        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
110        assigned-clock-rates = <1536000>;
111        sound-name-prefix = "I2S1";
112    };
113
114...
115