1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/samsung/samsung,exynos-mixer.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung Exynos SoC Mixer
8
9maintainers:
10  - Inki Dae <inki.dae@samsung.com>
11  - Seung-Woo Kim <sw0312.kim@samsung.com>
12  - Kyungmin Park <kyungmin.park@samsung.com>
13  - Krzysztof Kozlowski <krzk@kernel.org>
14
15description:
16  Samsung Exynos SoC Mixer is responsible for mixing and blending multiple data
17  inputs before passing it to an output device.  The output is passed to HDMI.
18
19properties:
20  compatible:
21    oneOf:
22      - enum:
23          - samsung,exynos4210-mixer
24          - samsung,exynos4212-mixer
25          - samsung,exynos5250-mixer
26          - samsung,exynos5420-mixer
27      - const: samsung,exynos5-mixer
28        deprecated: true
29
30  clocks:
31    minItems: 3
32    items:
33      - description: Gate of Mixer IP bus clock.
34      - description: Gate of HDMI IP bus clock, needed together with sclk_hdmi.
35      - description: HDMI Special clock, one of the two possible inputs of
36          mixer mux.
37      - description: Video Processor clock.
38      - description: Mixer mux clock.
39      - description: Mixer Special clock.
40
41  clock-names:
42    minItems: 3
43    items:
44      - const: mixer
45      - const: hdmi
46      - const: sclk_hdmi
47      - const: vp
48      - const: mout_mixer
49      - const: sclk_mixer
50
51  interconnects:
52    maxItems: 1
53
54  interrupts:
55    maxItems: 1
56
57  iommus:
58    maxItems: 1
59
60  power-domains:
61    maxItems: 1
62
63  reg:
64    minItems: 1
65    items:
66      - description: Mixer memory region.
67      - description: Video Processor memory region.
68
69required:
70  - compatible
71  - clocks
72  - clock-names
73  - interrupts
74  - reg
75
76allOf:
77  - if:
78      properties:
79        compatible:
80          contains:
81            const: samsung,exynos4210-mixer
82              - samsung,exynos4212-mixer
83    then:
84      properties:
85        clocks:
86          minItems: 6
87          maxItems: 6
88        reg:
89          minItems: 2
90          maxItems: 2
91
92  - if:
93      properties:
94        compatible:
95          contains:
96            const: samsung,exynos4212-mixer
97    then:
98      properties:
99        clocks:
100          minItems: 4
101          maxItems: 4
102        reg:
103          minItems: 2
104          maxItems: 2
105
106  - if:
107      properties:
108        compatible:
109          contains:
110            enum:
111              - samsung,exynos5-mixer
112              - samsung,exynos5250-mixer
113              - samsung,exynos5420-mixer
114    then:
115      properties:
116        clocks:
117          minItems: 3
118          maxItems: 3
119        reg:
120          minItems: 1
121          maxItems: 1
122
123additionalProperties: false
124
125examples:
126  - |
127    #include <dt-bindings/clock/exynos5250.h>
128    #include <dt-bindings/interrupt-controller/arm-gic.h>
129
130    mixer@14450000 {
131        compatible = "samsung,exynos5250-mixer";
132        reg = <0x14450000 0x10000>;
133        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
134        clocks = <&clock CLK_MIXER>,
135                 <&clock CLK_HDMI>,
136                 <&clock CLK_SCLK_HDMI>;
137        clock-names = "mixer",
138                      "hdmi",
139                      "sclk_hdmi";
140        iommus = <&sysmmu_tv>;
141        power-domains = <&pd_disp1>;
142    };
143