blob: 084b44582a434d7ad5e4d6b236d7cc5e4ac7b96d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/samsung,s5p-mfc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung Exynos Multi Format Codec (MFC)
8
9maintainers:
10 - Marek Szyprowski <m.szyprowski@samsung.com>
11 - Aakarsh Jain <aakarsh.jain@samsung.com>
12
13description:
14 Multi Format Codec (MFC) is the IP present in Samsung SoCs which
15 supports high resolution decoding and encoding functionalities.
16
17properties:
18 compatible:
19 oneOf:
20 - enum:
21 - samsung,exynos5433-mfc # Exynos5433
22 - samsung,mfc-v5 # Exynos4
23 - samsung,mfc-v6 # Exynos5
24 - samsung,mfc-v7 # Exynos5420
25 - samsung,mfc-v8 # Exynos5800
26 - samsung,mfc-v10 # Exynos7880
27 - items:
28 - enum:
29 - samsung,exynos3250-mfc # Exynos3250
30 - const: samsung,mfc-v7 # Fall back for Exynos3250
31
32 reg:
33 maxItems: 1
34
35 clocks:
36 minItems: 1
37 maxItems: 3
38
39 clock-names:
40 minItems: 1
41 maxItems: 3
42
43 interrupts:
44 maxItems: 1
45
46 iommus:
47 minItems: 1
48 maxItems: 2
49
50 iommu-names:
51 minItems: 1
52 maxItems: 2
53
54 power-domains:
55 maxItems: 1
56
57 memory-region:
58 minItems: 1
59 maxItems: 2
60
61required:
62 - compatible
63 - reg
64 - clocks
65 - clock-names
66 - interrupts
67
68additionalProperties: false
69
70allOf:
71 - if:
72 properties:
73 compatible:
74 contains:
75 enum:
76 - samsung,exynos3250-mfc
77 then:
78 properties:
79 clocks:
80 maxItems: 2
81 clock-names:
82 items:
83 - const: mfc
84 - const: sclk_mfc
85 iommus:
86 maxItems: 1
87 iommus-names: false
88
89 - if:
90 properties:
91 compatible:
92 contains:
93 enum:
94 - samsung,exynos5433-mfc
95 then:
96 properties:
97 clocks:
98 maxItems: 3
99 clock-names:
100 items:
101 - const: pclk
102 - const: aclk
103 - const: aclk_xiu
104 iommus:
105 maxItems: 2
106 iommus-names:
107 items:
108 - const: left
109 - const: right
110
111 - if:
112 properties:
113 compatible:
114 contains:
115 enum:
116 - samsung,mfc-v5
117 then:
118 properties:
119 clocks:
120 maxItems: 2
121 clock-names:
122 items:
123 - const: mfc
124 - const: sclk_mfc
125 iommus:
126 maxItems: 2
127 iommus-names:
128 items:
129 - const: left
130 - const: right
131
132 - if:
133 properties:
134 compatible:
135 contains:
136 enum:
137 - samsung,mfc-v6
138 - samsung,mfc-v8
139 then:
140 properties:
141 clocks:
142 maxItems: 1
143 clock-names:
144 items:
145 - const: mfc
146 iommus:
147 maxItems: 2
148 iommus-names:
149 items:
150 - const: left
151 - const: right
152
153 - if:
154 properties:
155 compatible:
156 contains:
157 enum:
158 - samsung,mfc-v7
159 then:
160 properties:
161 clocks:
162 minItems: 1
163 maxItems: 2
164 iommus:
165 minItems: 1
166 maxItems: 2
167
168examples:
169 - |
170 #include <dt-bindings/clock/exynos4.h>
171 #include <dt-bindings/clock/exynos-audss-clk.h>
172 #include <dt-bindings/interrupt-controller/arm-gic.h>
173 #include <dt-bindings/interrupt-controller/irq.h>
174
175 codec@13400000 {
176 compatible = "samsung,mfc-v5";
177 reg = <0x13400000 0x10000>;
178 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
179 power-domains = <&pd_mfc>;
180 clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>;
181 clock-names = "mfc", "sclk_mfc";
182 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
183 iommu-names = "left", "right";
184 };