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