# 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
          - samsung,exynos8895-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
      - items:
          - enum:
              - samsung,exynos7870-uart
          - const: samsung,exynos8895-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
              - samsung,exynos8895-uart
    then:
      required:
        - samsung,uart-fifosize
      properties:
        clocks:
          maxItems: 2

        clock-names:
          maxItems: 2

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

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>;
    };
