Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / nvidia,tegra210-i2s.yaml
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
7 title: Tegra210 I2S Controller Device Tree Bindings
8
9 description: |
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
15 maintainers:
16   - Jon Hunter <jonathanh@nvidia.com>
17   - Sameer Pujar <spujar@nvidia.com>
18
19 properties:
20   $nodename:
21     pattern: "^i2s@[0-9a-f]*$"
22
23   compatible:
24     oneOf:
25       - const: nvidia,tegra210-i2s
26       - items:
27           - enum:
28               - nvidia,tegra194-i2s
29               - nvidia,tegra186-i2s
30           - const: nvidia,tegra210-i2s
31
32   reg:
33     maxItems: 1
34
35   clocks:
36     minItems: 1
37     items:
38       - description: I2S bit clock
39       - description:
40           Sync input clock, which can act as clock source to other I/O
41           modules in AHUB. The Tegra I2S driver sets this clock rate as
42           per bit clock rate. I/O module which wants to use this clock
43           as source, can mention this clock as parent in the DT bindings.
44           This is an optional clock entry, since it is only required when
45           some other I/O wants to reference from a particular I2Sx
46           instance.
47
48   clock-names:
49     minItems: 1
50     items:
51       - const: i2s
52       - const: sync_input
53
54   assigned-clocks:
55     minItems: 1
56     maxItems: 2
57
58   assigned-clock-parents:
59     minItems: 1
60     maxItems: 2
61
62   assigned-clock-rates:
63     minItems: 1
64     maxItems: 2
65
66   sound-name-prefix:
67     pattern: "^I2S[1-9]$"
68     $ref: /schemas/types.yaml#/definitions/string
69     description:
70       Used as prefix for sink/source names of the component. Must be a
71       unique string among multiple instances of the same component.
72       The name can be "I2S1" or "I2S2" ... "I2Sx", where x depends
73       on the maximum available instances on a Tegra SoC.
74
75   ports:
76     $ref: /schemas/graph.yaml#/properties/ports
77     properties:
78       port@0:
79         $ref: audio-graph-port.yaml#
80         unevaluatedProperties: false
81         description: |
82           I2S ACIF (Audio Client Interface) port connected to the
83           corresponding AHUB (Audio Hub) ACIF port.
84
85       port@1:
86         $ref: audio-graph-port.yaml#
87         unevaluatedProperties: false
88         description: |
89           I2S DAP (Digital Audio Port) interface which can be connected
90           to external audio codec for playback or capture.
91
92 required:
93   - compatible
94   - reg
95   - clocks
96   - clock-names
97   - assigned-clocks
98   - assigned-clock-parents
99
100 additionalProperties: false
101
102 examples:
103   - |
104     #include<dt-bindings/clock/tegra210-car.h>
105
106     i2s@702d1000 {
107         compatible = "nvidia,tegra210-i2s";
108         reg = <0x702d1000 0x100>;
109         clocks = <&tegra_car TEGRA210_CLK_I2S0>;
110         clock-names = "i2s";
111         assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
112         assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
113         assigned-clock-rates = <1536000>;
114         sound-name-prefix = "I2S1";
115     };
116
117 ...