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

title: Renesas Serial Communication Interface with FIFO (SCIF)

maintainers:
  - Geert Uytterhoeven <geert+renesas@glider.be>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - renesas,scif-r7s72100     # RZ/A1H
          - const: renesas,scif           # generic SCIF compatible UART

      - items:
          - enum:
              - renesas,scif-r7s9210      # RZ/A2

      - items:
          - enum:
              - renesas,scif-r8a7778      # R-Car M1
              - renesas,scif-r8a7779      # R-Car H1
          - const: renesas,rcar-gen1-scif # R-Car Gen1
          - const: renesas,scif           # generic SCIF compatible UART

      - items:
          - enum:
              - renesas,scif-r8a7742      # RZ/G1H
              - renesas,scif-r8a7743      # RZ/G1M
              - renesas,scif-r8a7744      # RZ/G1N
              - renesas,scif-r8a7745      # RZ/G1E
              - renesas,scif-r8a77470     # RZ/G1C
              - renesas,scif-r8a7790      # R-Car H2
              - renesas,scif-r8a7791      # R-Car M2-W
              - renesas,scif-r8a7792      # R-Car V2H
              - renesas,scif-r8a7793      # R-Car M2-N
              - renesas,scif-r8a7794      # R-Car E2
          - const: renesas,rcar-gen2-scif # R-Car Gen2 and RZ/G1
          - const: renesas,scif           # generic SCIF compatible UART

      - items:
          - enum:
              - renesas,scif-r8a774a1     # RZ/G2M
              - renesas,scif-r8a774b1     # RZ/G2N
              - renesas,scif-r8a774c0     # RZ/G2E
              - renesas,scif-r8a774e1     # RZ/G2H
              - renesas,scif-r8a7795      # R-Car H3
              - renesas,scif-r8a7796      # R-Car M3-W
              - renesas,scif-r8a77961     # R-Car M3-W+
              - renesas,scif-r8a77965     # R-Car M3-N
              - renesas,scif-r8a77970     # R-Car V3M
              - renesas,scif-r8a77980     # R-Car V3H
              - renesas,scif-r8a77990     # R-Car E3
              - renesas,scif-r8a77995     # R-Car D3
          - const: renesas,rcar-gen3-scif # R-Car Gen3 and RZ/G2
          - const: renesas,scif           # generic SCIF compatible UART

      - items:
          - enum:
              - renesas,scif-r8a779a0     # R-Car V3U
              - renesas,scif-r8a779f0     # R-Car S4-8
              - renesas,scif-r8a779g0     # R-Car V4H
              - renesas,scif-r8a779h0     # R-Car V4M
          - const: renesas,rcar-gen4-scif # R-Car Gen4
          - const: renesas,scif           # generic SCIF compatible UART

      - items:
          - enum:
              - renesas,scif-r9a07g044      # RZ/G2{L,LC}

      - items:
          - enum:
              - renesas,scif-r9a07g043      # RZ/G2UL and RZ/Five
              - renesas,scif-r9a07g054      # RZ/V2L
              - renesas,scif-r9a08g045      # RZ/G3S
          - const: renesas,scif-r9a07g044   # RZ/G2{L,LC} fallback

      - const: renesas,scif-r9a09g057       # RZ/V2H(P)

  reg:
    maxItems: 1

  interrupts:
    oneOf:
      - items:
          - description: A combined interrupt
      - items:
          - description: Error interrupt
          - description: Receive buffer full interrupt
          - description: Transmit buffer empty interrupt
          - description: Break interrupt
          - description: Data Ready interrupt
          - description: Transmit End interrupt
          - description: Transmit End/Data Ready interrupt
          - description: Receive buffer full interrupt (EDGE trigger)
          - description: Transmit buffer empty interrupt (EDGE trigger)
        minItems: 4

  interrupt-names:
    minItems: 4
    items:
      - const: eri
      - const: rxi
      - const: txi
      - const: bri
      - const: dri
      - const: tei
      - const: tei-dri
      - const: rxi-edge
      - const: txi-edge

  clocks:
    minItems: 1
    maxItems: 4

  clock-names:
    minItems: 1
    maxItems: 4
    items:
      enum:
        - fck # UART functional clock
        - sck # optional external clock input
        - brg_int # optional internal clock source for BRG frequency divider
        - scif_clk # optional external clock source for BRG frequency divider

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  dmas:
    minItems: 2
    maxItems: 4
    description:
      Must contain a list of pairs of references to DMA specifiers, one for
      transmission, and one for reception.

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

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - power-domains

allOf:
  - $ref: serial.yaml#

  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,rcar-gen2-scif
              - renesas,rcar-gen3-scif
              - renesas,rcar-gen4-scif
              - renesas,scif-r9a07g044
              - renesas,scif-r9a09g057
    then:
      required:
        - resets

  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,rcar-gen1-scif
              - renesas,rcar-gen2-scif
              - renesas,rcar-gen3-scif
              - renesas,rcar-gen4-scif
    then:
      properties:
        interrupts:
          maxItems: 1

        interrupt-names: false
    else:
      required:
        - interrupt-names

  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,scif-r7s72100
    then:
      properties:
        interrupts:
          minItems: 4
          maxItems: 4

        interrupt-names:
          maxItems: 4

  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,scif-r7s9210
              - renesas,scif-r9a07g044
    then:
      properties:
        interrupts:
          minItems: 6
          maxItems: 6

        interrupt-names:
          minItems: 6
          maxItems: 6

  - if:
      properties:
        compatible:
          contains:
            const: renesas,scif-r9a09g057
    then:
      properties:
        clocks:
          maxItems: 1

        clock-names:
          maxItems: 1

        interrupts:
          minItems: 9

        interrupt-names:
          minItems: 9

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/r8a7791-sysc.h>
    aliases {
        serial0 = &scif0;
    };

    scif0: serial@e6e60000 {
        compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
                     "renesas,scif";
        reg = <0xe6e60000 64>;
        interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
                 <&scif_clk>;
        clock-names = "fck", "brg_int", "scif_clk";
        dmas = <&dmac0 0x29>, <&dmac0 0x2a>, <&dmac1 0x29>, <&dmac1 0x2a>;
        dma-names = "tx", "rx", "tx", "rx";
        power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
        resets = <&cpg 721>;
    };
