# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/fsl,saif.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale MXS Serial Audio Interface (SAIF)

maintainers:
  - Lukasz Majewski <lukma@denx.de>

allOf:
  - $ref: dai-common.yaml#

description:
  The SAIF is based on I2S module that is used to communicate with audio codecs,
  but only with half-duplex manner (i.e. it can either transmit or receive PCM
  audio).

properties:
  compatible:
    const: fsl,imx28-saif

  reg:
    maxItems: 1

  "#sound-dai-cells":
    const: 0

  interrupts:
    maxItems: 1

  dmas:
    maxItems: 1

  dma-names:
    const: rx-tx

  "#clock-cells":
    description: Configure the I2S device as MCLK clock provider.
    const: 0

  clocks:
    maxItems: 1

  fsl,saif-master:
    description: Indicate that saif is a slave and its phandle points to master
    $ref: /schemas/types.yaml#/definitions/phandle

required:
  - compatible
  - reg
  - "#sound-dai-cells"
  - interrupts
  - dmas
  - dma-names
  - clocks

unevaluatedProperties: false

examples:
  - |
    saif0: saif@80042000 {
        compatible = "fsl,imx28-saif";
        reg = <0x80042000 2000>;
        #sound-dai-cells = <0>;
        interrupts = <59>;
        dmas = <&dma_apbx 4>;
        dma-names = "rx-tx";
        #clock-cells = <0>;
        clocks = <&clks 53>;
    };
  - |
    saif1: saif@80046000 {
        compatible = "fsl,imx28-saif";
        reg = <0x80046000 2000>;
        #sound-dai-cells = <0>;
        interrupts = <58>;
        dmas = <&dma_apbx 5>;
        dma-names = "rx-tx";
        clocks = <&clks 53>;
        fsl,saif-master = <&saif0>;
    };
