# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/samsung_uart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S3C, S5P, Exynos, and S5L (Apple SoC) SoC UART Controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>
  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>

description: |+
  Each Samsung UART should have an alias correctly numbered in the "aliases"
  node, according to serialN format, where N is the port number (non-negative
  decimal integer) as specified by User's Manual of respective SoC.

properties:
  compatible:
    oneOf:
      - enum:
          - apple,s5l-uart
          - axis,artpec8-uart
          - google,gs101-uart
          - samsung,s3c6400-uart
          - samsung,s5pv210-uart
          - samsung,exynos4210-uart
          - samsung,exynos5433-uart
          - samsung,exynos850-uart
      - items:
          - enum:
              - samsung,exynos7-uart
              - tesla,fsd-uart
          - const: samsung,exynos4210-uart
      - items:
          - enum:
              - samsung,exynos7885-uart
          - const: samsung,exynos5433-uart
      - items:
          - enum:
              - samsung,exynosautov9-uart
              - samsung,exynosautov920-uart
          - const: samsung,exynos850-uart

  reg:
    maxItems: 1

  reg-io-width:
    description: |
      The size (in bytes) of the IO accesses that should be performed
      on the device.
    enum: [ 1, 4 ]

  clocks:
    minItems: 2
    maxItems: 5

  clock-names:
    minItems: 2
    maxItems: 5

  dmas:
    items:
      - description: DMA controller phandle and request line for RX
      - description: DMA controller phandle and request line for TX

  dma-names:
    items:
      - const: rx
      - const: tx

  interrupts:
    description: RX interrupt and optionally TX interrupt.
    minItems: 1
    maxItems: 2

  power-domains:
    maxItems: 1

  samsung,uart-fifosize:
    description: The fifo size supported by the UART channel.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [16, 64, 256]

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

allOf:
  - $ref: serial.yaml#

  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,s3c6400-uart
    then:
      properties:
        clocks:
          minItems: 3
          maxItems: 3

        clock-names:
          items:
            - const: uart
            - const: clk_uart_baud2
            - const: clk_uart_baud3

    else:
      properties:
        clock-names:
          minItems: 2
          items:
            - const: uart
            - const: clk_uart_baud0
            - const: clk_uart_baud1
            - const: clk_uart_baud2
            - const: clk_uart_baud3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,s5pv210-uart
    then:
      properties:
        clocks:
          minItems: 3
          maxItems: 3

        clock-names:
          minItems: 3
          maxItems: 3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - apple,s5l-uart
              - axis,artpec8-uart
              - samsung,exynos4210-uart
              - samsung,exynos5433-uart
    then:
      properties:
        clocks:
          maxItems: 2

        clock-names:
          maxItems: 2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - google,gs101-uart
    then:
      required:
        - samsung,uart-fifosize
      properties:
        reg-io-width: false

        clocks:
          maxItems: 2

        clock-names:
          maxItems: 2

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/samsung,s3c64xx-clock.h>

    uart0: serial@7f005000 {
        compatible = "samsung,s3c6400-uart";
        reg = <0x7f005000 0x100>;
        interrupt-parent = <&vic1>;
        interrupts = <5>;
        clock-names = "uart", "clk_uart_baud2",
                      "clk_uart_baud3";
        clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
                 <&clocks SCLK_UART>;
        samsung,uart-fifosize = <16>;
    };
  - |
    #include <dt-bindings/clock/google,gs101.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    serial_0: serial@10a00000 {
      compatible = "google,gs101-uart";
      reg = <0x10a00000 0xc0>;
      clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0>,
               <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0>;
      clock-names = "uart", "clk_uart_baud0";
      interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
      pinctrl-0 = <&uart0_bus>;
      pinctrl-names = "default";
      samsung,uart-fifosize = <256>;
    };
