# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/rng/samsung,exynos5250-trng.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung Exynos SoC True Random Number Generator

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>
  - Łukasz Stelmach <l.stelmach@samsung.com>

properties:
  compatible:
    oneOf:
      - enum:
          - samsung,exynos5250-trng
          - samsung,exynos850-trng
      - items:
          - const: google,gs101-trng
          - const: samsung,exynos850-trng

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    maxItems: 2

  power-domains:
    maxItems: 1

  reg:
    maxItems: 1

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

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos850-trng

    then:
      properties:
        clocks:
          items:
            - description: SSS (Security Sub System) operating clock
            - description: SSS (Security Sub System) bus clock

        clock-names:
          items:
            - const: secss
            - const: pclk

    else:
      properties:
        clocks:
          items:
            - description: SSS (Security Sub System) operating clock

        clock-names:
          items:
            - const: secss

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/exynos5250.h>

    rng@10830600 {
        compatible = "samsung,exynos5250-trng";
        reg = <0x10830600 0x100>;
        clocks = <&clock CLK_SSS>;
        clock-names = "secss";
    };
