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

title: Samsung Exynos SoC Mixer

maintainers:
  - Inki Dae <inki.dae@samsung.com>
  - Seung-Woo Kim <sw0312.kim@samsung.com>
  - Kyungmin Park <kyungmin.park@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

description:
  Samsung Exynos SoC Mixer is responsible for mixing and blending multiple data
  inputs before passing it to an output device.  The output is passed to HDMI.

properties:
  compatible:
    oneOf:
      - enum:
          - samsung,exynos4210-mixer
          - samsung,exynos4212-mixer
          - samsung,exynos5250-mixer
          - samsung,exynos5420-mixer
      - const: samsung,exynos5-mixer
        deprecated: true

  clocks:
    minItems: 3
    items:
      - description: Gate of Mixer IP bus clock.
      - description: Gate of HDMI IP bus clock, needed together with sclk_hdmi.
      - description: HDMI Special clock, one of the two possible inputs of
          mixer mux.
      - description: Video Processor clock.
      - description: Mixer mux clock.
      - description: Mixer Special clock.

  clock-names:
    minItems: 3
    items:
      - const: mixer
      - const: hdmi
      - const: sclk_hdmi
      - const: vp
      - const: mout_mixer
      - const: sclk_mixer

  interconnects:
    maxItems: 1

  interrupts:
    maxItems: 1

  iommus:
    maxItems: 1

  power-domains:
    maxItems: 1

  reg:
    minItems: 1
    items:
      - description: Mixer memory region.
      - description: Video Processor memory region.

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

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos4210-mixer
              - samsung,exynos4212-mixer
    then:
      properties:
        clocks:
          minItems: 6
          maxItems: 6
        regs:
          minItems: 2
          maxItems: 2

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos4212-mixer
    then:
      properties:
        clocks:
          minItems: 4
          maxItems: 4
        regs:
          minItems: 2
          maxItems: 2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,exynos5-mixer
              - samsung,exynos5250-mixer
              - samsung,exynos5420-mixer
    then:
      properties:
        clocks:
          minItems: 3
          maxItems: 3
        regs:
          minItems: 1
          maxItems: 1

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/exynos5250.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    mixer@14450000 {
        compatible = "samsung,exynos5250-mixer";
        reg = <0x14450000 0x10000>;
        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clock CLK_MIXER>,
                 <&clock CLK_HDMI>,
                 <&clock CLK_SCLK_HDMI>;
        clock-names = "mixer",
                      "hdmi",
                      "sclk_hdmi";
        iommus = <&sysmmu_tv>;
        power-domains = <&pd_disp1>;
    };
