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

title: Samsung S3C, S5P and Exynos Real Time Clock controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

properties:
  compatible:
    oneOf:
      - enum:
          - samsung,s3c2410-rtc
          - samsung,s3c2416-rtc
          - samsung,s3c2443-rtc
          - samsung,s3c6410-rtc
      - const: samsung,exynos3250-rtc
        deprecated: true

  reg:
    maxItems: 1

  clocks:
    description:
      Must contain a list of phandle and clock specifier for the rtc
      clock and in the case of a s3c6410 compatible controller, also
      a source clock.
    minItems: 1
    maxItems: 2

  clock-names:
    description:
      Must contain "rtc" and for a s3c6410 compatible controller
      also "rtc_src".
    minItems: 1
    maxItems: 2

  interrupts:
    description:
      Two interrupt numbers to the cpu should be specified. First
      interrupt number is the rtc alarm interrupt and second interrupt number
      is the rtc tick interrupt. The number of cells representing a interrupt
      depends on the parent interrupt controller.
    minItems: 2
    maxItems: 2

allOf:
  - $ref: rtc.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,s3c6410-rtc
              - samsung,exynos3250-rtc
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          items:
            - const: rtc
            - const: rtc_src
    else:
      properties:
        clocks:
          minItems: 1
          maxItems: 1
        clock-names:
          items:
            - const: rtc

unevaluatedProperties: false

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

    rtc@10070000 {
        compatible = "samsung,s3c6410-rtc";
        reg = <0x10070000 0x100>;
        interrupts = <0 44 4>, <0 45 4>;
        clocks = <&clock CLK_RTC>,
                 <&s2mps11_osc S2MPS11_CLK_AP>;
        clock-names = "rtc", "rtc_src";
    };
