xref: /freebsd/sys/contrib/device-tree/Bindings/sound/nvidia,tegra210-i2s.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/nvidia,tegra210-i2s.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Tegra210 I2S Controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription: |
10c66ec88fSEmmanuel Vadot  The Inter-IC Sound (I2S) controller implements full-duplex,
11c66ec88fSEmmanuel Vadot  bi-directional and single direction point-to-point serial
12c66ec88fSEmmanuel Vadot  interfaces. It can interface with I2S compatible devices.
13c66ec88fSEmmanuel Vadot  I2S controller can operate both in master and slave mode.
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadotmaintainers:
16c66ec88fSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
17c66ec88fSEmmanuel Vadot  - Sameer Pujar <spujar@nvidia.com>
18c66ec88fSEmmanuel Vadot
198cc087a1SEmmanuel VadotallOf:
20*8bab661aSEmmanuel Vadot  - $ref: dai-common.yaml#
218cc087a1SEmmanuel Vadot
22c66ec88fSEmmanuel Vadotproperties:
23c66ec88fSEmmanuel Vadot  $nodename:
24c66ec88fSEmmanuel Vadot    pattern: "^i2s@[0-9a-f]*$"
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  compatible:
27c66ec88fSEmmanuel Vadot    oneOf:
28c66ec88fSEmmanuel Vadot      - const: nvidia,tegra210-i2s
29c66ec88fSEmmanuel Vadot      - items:
30c66ec88fSEmmanuel Vadot          - enum:
31c9ccf3a3SEmmanuel Vadot              - nvidia,tegra234-i2s
32c66ec88fSEmmanuel Vadot              - nvidia,tegra194-i2s
33c66ec88fSEmmanuel Vadot              - nvidia,tegra186-i2s
34c66ec88fSEmmanuel Vadot          - const: nvidia,tegra210-i2s
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  reg:
37c66ec88fSEmmanuel Vadot    maxItems: 1
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  clocks:
40c66ec88fSEmmanuel Vadot    minItems: 1
41c66ec88fSEmmanuel Vadot    items:
42c66ec88fSEmmanuel Vadot      - description: I2S bit clock
43c66ec88fSEmmanuel Vadot      - description:
44c66ec88fSEmmanuel Vadot          Sync input clock, which can act as clock source to other I/O
45c66ec88fSEmmanuel Vadot          modules in AHUB. The Tegra I2S driver sets this clock rate as
46c66ec88fSEmmanuel Vadot          per bit clock rate. I/O module which wants to use this clock
47c66ec88fSEmmanuel Vadot          as source, can mention this clock as parent in the DT bindings.
48c66ec88fSEmmanuel Vadot          This is an optional clock entry, since it is only required when
49c66ec88fSEmmanuel Vadot          some other I/O wants to reference from a particular I2Sx
50c66ec88fSEmmanuel Vadot          instance.
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot  clock-names:
53c66ec88fSEmmanuel Vadot    minItems: 1
54c66ec88fSEmmanuel Vadot    items:
55c66ec88fSEmmanuel Vadot      - const: i2s
56c66ec88fSEmmanuel Vadot      - const: sync_input
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot  assigned-clocks:
59c66ec88fSEmmanuel Vadot    minItems: 1
60c66ec88fSEmmanuel Vadot    maxItems: 2
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot  assigned-clock-parents:
63c66ec88fSEmmanuel Vadot    minItems: 1
64c66ec88fSEmmanuel Vadot    maxItems: 2
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot  assigned-clock-rates:
67c66ec88fSEmmanuel Vadot    minItems: 1
68c66ec88fSEmmanuel Vadot    maxItems: 2
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot  sound-name-prefix:
71c66ec88fSEmmanuel Vadot    pattern: "^I2S[1-9]$"
72c66ec88fSEmmanuel Vadot
735def4c47SEmmanuel Vadot  ports:
742eb4d8dcSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
755def4c47SEmmanuel Vadot    properties:
765def4c47SEmmanuel Vadot      port@0:
772eb4d8dcSEmmanuel Vadot        $ref: audio-graph-port.yaml#
782eb4d8dcSEmmanuel Vadot        unevaluatedProperties: false
795def4c47SEmmanuel Vadot        description: |
805def4c47SEmmanuel Vadot          I2S ACIF (Audio Client Interface) port connected to the
815def4c47SEmmanuel Vadot          corresponding AHUB (Audio Hub) ACIF port.
825def4c47SEmmanuel Vadot
835def4c47SEmmanuel Vadot      port@1:
842eb4d8dcSEmmanuel Vadot        $ref: audio-graph-port.yaml#
852eb4d8dcSEmmanuel Vadot        unevaluatedProperties: false
865def4c47SEmmanuel Vadot        description: |
875def4c47SEmmanuel Vadot          I2S DAP (Digital Audio Port) interface which can be connected
885def4c47SEmmanuel Vadot          to external audio codec for playback or capture.
895def4c47SEmmanuel Vadot
90c66ec88fSEmmanuel Vadotrequired:
91c66ec88fSEmmanuel Vadot  - compatible
92c66ec88fSEmmanuel Vadot  - reg
93c66ec88fSEmmanuel Vadot  - clocks
94c66ec88fSEmmanuel Vadot  - clock-names
95c66ec88fSEmmanuel Vadot  - assigned-clocks
96c66ec88fSEmmanuel Vadot  - assigned-clock-parents
97c66ec88fSEmmanuel Vadot
982eb4d8dcSEmmanuel VadotadditionalProperties: false
996be33864SEmmanuel Vadot
100c66ec88fSEmmanuel Vadotexamples:
101c66ec88fSEmmanuel Vadot  - |
102c66ec88fSEmmanuel Vadot    #include<dt-bindings/clock/tegra210-car.h>
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot    i2s@702d1000 {
105c66ec88fSEmmanuel Vadot        compatible = "nvidia,tegra210-i2s";
106c66ec88fSEmmanuel Vadot        reg = <0x702d1000 0x100>;
107c66ec88fSEmmanuel Vadot        clocks = <&tegra_car TEGRA210_CLK_I2S0>;
108c66ec88fSEmmanuel Vadot        clock-names = "i2s";
109c66ec88fSEmmanuel Vadot        assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
110c66ec88fSEmmanuel Vadot        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
111c66ec88fSEmmanuel Vadot        assigned-clock-rates = <1536000>;
112c66ec88fSEmmanuel Vadot        sound-name-prefix = "I2S1";
113c66ec88fSEmmanuel Vadot    };
114c66ec88fSEmmanuel Vadot
115c66ec88fSEmmanuel Vadot...
116