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