18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/sound/nvidia,tegra210-i2s.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Tegra210 I2S Controller Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cidescription: |
108c2ecf20Sopenharmony_ci  The Inter-IC Sound (I2S) controller implements full-duplex,
118c2ecf20Sopenharmony_ci  bi-directional and single direction point-to-point serial
128c2ecf20Sopenharmony_ci  interfaces. It can interface with I2S compatible devices.
138c2ecf20Sopenharmony_ci  I2S controller can operate both in master and slave mode.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cimaintainers:
168c2ecf20Sopenharmony_ci  - Jon Hunter <jonathanh@nvidia.com>
178c2ecf20Sopenharmony_ci  - Sameer Pujar <spujar@nvidia.com>
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciproperties:
208c2ecf20Sopenharmony_ci  $nodename:
218c2ecf20Sopenharmony_ci    pattern: "^i2s@[0-9a-f]*$"
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  compatible:
248c2ecf20Sopenharmony_ci    oneOf:
258c2ecf20Sopenharmony_ci      - const: nvidia,tegra210-i2s
268c2ecf20Sopenharmony_ci      - items:
278c2ecf20Sopenharmony_ci          - enum:
288c2ecf20Sopenharmony_ci              - nvidia,tegra194-i2s
298c2ecf20Sopenharmony_ci              - nvidia,tegra186-i2s
308c2ecf20Sopenharmony_ci          - const: nvidia,tegra210-i2s
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  reg:
338c2ecf20Sopenharmony_ci    maxItems: 1
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  clocks:
368c2ecf20Sopenharmony_ci    minItems: 1
378c2ecf20Sopenharmony_ci    maxItems: 2
388c2ecf20Sopenharmony_ci    items:
398c2ecf20Sopenharmony_ci      - description: I2S bit clock
408c2ecf20Sopenharmony_ci      - description:
418c2ecf20Sopenharmony_ci          Sync input clock, which can act as clock source to other I/O
428c2ecf20Sopenharmony_ci          modules in AHUB. The Tegra I2S driver sets this clock rate as
438c2ecf20Sopenharmony_ci          per bit clock rate. I/O module which wants to use this clock
448c2ecf20Sopenharmony_ci          as source, can mention this clock as parent in the DT bindings.
458c2ecf20Sopenharmony_ci          This is an optional clock entry, since it is only required when
468c2ecf20Sopenharmony_ci          some other I/O wants to reference from a particular I2Sx
478c2ecf20Sopenharmony_ci          instance.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci  clock-names:
508c2ecf20Sopenharmony_ci    minItems: 1
518c2ecf20Sopenharmony_ci    maxItems: 2
528c2ecf20Sopenharmony_ci    items:
538c2ecf20Sopenharmony_ci      - const: i2s
548c2ecf20Sopenharmony_ci      - const: sync_input
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci  assigned-clocks:
578c2ecf20Sopenharmony_ci    minItems: 1
588c2ecf20Sopenharmony_ci    maxItems: 2
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci  assigned-clock-parents:
618c2ecf20Sopenharmony_ci    minItems: 1
628c2ecf20Sopenharmony_ci    maxItems: 2
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci  assigned-clock-rates:
658c2ecf20Sopenharmony_ci    minItems: 1
668c2ecf20Sopenharmony_ci    maxItems: 2
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci  sound-name-prefix:
698c2ecf20Sopenharmony_ci    pattern: "^I2S[1-9]$"
708c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/string
718c2ecf20Sopenharmony_ci    description:
728c2ecf20Sopenharmony_ci      Used as prefix for sink/source names of the component. Must be a
738c2ecf20Sopenharmony_ci      unique string among multiple instances of the same component.
748c2ecf20Sopenharmony_ci      The name can be "I2S1" or "I2S2" ... "I2Sx", where x depends
758c2ecf20Sopenharmony_ci      on the maximum available instances on a Tegra SoC.
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_cirequired:
788c2ecf20Sopenharmony_ci  - compatible
798c2ecf20Sopenharmony_ci  - reg
808c2ecf20Sopenharmony_ci  - clocks
818c2ecf20Sopenharmony_ci  - clock-names
828c2ecf20Sopenharmony_ci  - assigned-clocks
838c2ecf20Sopenharmony_ci  - assigned-clock-parents
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciadditionalProperties: false
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ciexamples:
888c2ecf20Sopenharmony_ci  - |
898c2ecf20Sopenharmony_ci    #include<dt-bindings/clock/tegra210-car.h>
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci    i2s@702d1000 {
928c2ecf20Sopenharmony_ci        compatible = "nvidia,tegra210-i2s";
938c2ecf20Sopenharmony_ci        reg = <0x702d1000 0x100>;
948c2ecf20Sopenharmony_ci        clocks = <&tegra_car TEGRA210_CLK_I2S0>;
958c2ecf20Sopenharmony_ci        clock-names = "i2s";
968c2ecf20Sopenharmony_ci        assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
978c2ecf20Sopenharmony_ci        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
988c2ecf20Sopenharmony_ci        assigned-clock-rates = <1536000>;
998c2ecf20Sopenharmony_ci        sound-name-prefix = "I2S1";
1008c2ecf20Sopenharmony_ci    };
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci...
103