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

title: Rockchip I2S/TDM Controller

description:
  The Rockchip I2S/TDM Controller is a Time Division Multiplexed
  audio interface found in various Rockchip SoCs, allowing up
  to 8 channels of audio over a serial interface.

maintainers:
  - Nicolas Frattaroli <frattaroli.nicolas@gmail.com>

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

properties:
  compatible:
    enum:
      - rockchip,px30-i2s-tdm
      - rockchip,rk1808-i2s-tdm
      - rockchip,rk3308-i2s-tdm
      - rockchip,rk3568-i2s-tdm
      - rockchip,rk3588-i2s-tdm
      - rockchip,rv1126-i2s-tdm

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  dmas:
    minItems: 1
    maxItems: 2

  dma-names:
    minItems: 1
    maxItems: 2
    items:
      enum:
        - rx
        - tx

  clocks:
    minItems: 3
    items:
      - description: clock for TX
      - description: clock for RX
      - description: AHB clock driving the interface
      - description:
          Parent clock for mclk_tx (only required when using mclk-calibrate)
      - description:
          Parent clock for mclk_rx (only required when using mclk-calibrate)
      - description:
          Clock for sample rates that are an integer multiple of 8000
          (only required when using mclk-calibrate)
      - description:
          Clock for sample rates that are an integer multiple of 11025
          (only required when using mclk-calibrate)

  clock-names:
    minItems: 3
    items:
      - const: mclk_tx
      - const: mclk_rx
      - const: hclk
      - const: mclk_tx_src
      - const: mclk_rx_src
      - const: mclk_root0
      - const: mclk_root1

  resets:
    minItems: 1
    maxItems: 2
    description: resets for the tx and rx directions

  reset-names:
    minItems: 1
    maxItems: 2
    items:
      enum:
        - tx-m
        - rx-m

  port:
    $ref: audio-graph-port.yaml#
    unevaluatedProperties: false

  power-domains:
    maxItems: 1

  rockchip,grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      The phandle of the syscon node for the GRF register.

  rockchip,trcm-sync-tx-only:
    type: boolean
    description: Use TX BCLK/LRCK for both TX and RX.

  rockchip,trcm-sync-rx-only:
    type: boolean
    description: Use RX BCLK/LRCK for both TX and RX.

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

  rockchip,i2s-rx-route:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      Defines the mapping of I2S RX sdis to I2S data bus lines.
      By default, they are mapped one-to-one.
      rockchip,i2s-rx-route = <3> would mean sdi3 is receiving from data0.
    maxItems: 4
    items:
      enum: [0, 1, 2, 3]

  rockchip,i2s-tx-route:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      Defines the mapping of I2S TX sdos to I2S data bus lines.
      By default, they are mapped one-to-one.
      rockchip,i2s-tx-route = <3> would mean sdo3 is sending to data0.
    maxItems: 4
    items:
      enum: [0, 1, 2, 3]

  rockchip,io-multiplex:
    description:
      Specify that the GPIO lines on the I2S bus are multiplexed such that
      the direction (input/output) needs to be dynamically adjusted.
    type: boolean


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

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/rk3568-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/pinctrl/rockchip.h>

    bus {
        #address-cells = <2>;
        #size-cells = <2>;
        i2s@fe410000 {
            compatible = "rockchip,rk3568-i2s-tdm";
            reg = <0x0 0xfe410000 0x0 0x1000>;
            interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>,
                     <&cru HCLK_I2S1_8CH>;
            clock-names = "mclk_tx", "mclk_rx", "hclk";
            dmas = <&dmac1 3>, <&dmac1 2>;
            dma-names = "rx", "tx";
            resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
            reset-names = "tx-m", "rx-m";
            rockchip,trcm-sync-tx-only;
            rockchip,grf = <&grf>;
            #sound-dai-cells = <0>;
            pinctrl-names = "default";
            pinctrl-0 =
                <&i2s1m0_sclktx
                &i2s1m0_sclkrx
                &i2s1m0_lrcktx
                &i2s1m0_lrckrx
                &i2s1m0_sdi0
                &i2s1m0_sdi1
                &i2s1m0_sdi2
                &i2s1m0_sdi3
                &i2s1m0_sdo0
                &i2s1m0_sdo1
                &i2s1m0_sdo2
                &i2s1m0_sdo3>;
        };
    };
