Merge branch 'next' into for-linus
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / media / qcom,msm8916-venus.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
3 %YAML 1.2
4 ---
5 $id: "http://devicetree.org/schemas/media/qcom,msm8916-venus.yaml#"
6 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
7
8 title: Qualcomm Venus video encode and decode accelerators
9
10 maintainers:
11   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
12
13 description: |
14   The Venus IP is a video encode and decode accelerator present
15   on Qualcomm platforms
16
17 properties:
18   compatible:
19     const: qcom,msm8916-venus
20
21   reg:
22     maxItems: 1
23
24   interrupts:
25     maxItems: 1
26
27   power-domains:
28     maxItems: 1
29
30   clocks:
31     maxItems: 3
32
33   clock-names:
34     items:
35       - const: core
36       - const: iface
37       - const: bus
38
39   iommus:
40     maxItems: 1
41
42   memory-region:
43     maxItems: 1
44
45   video-decoder:
46     type: object
47
48     properties:
49       compatible:
50         const: "venus-decoder"
51
52     required:
53       - compatible
54
55     additionalProperties: false
56
57   video-encoder:
58     type: object
59
60     properties:
61       compatible:
62         const: "venus-encoder"
63
64     required:
65       - compatible
66
67     additionalProperties: false
68
69   video-firmware:
70     type: object
71
72     description: |
73       Firmware subnode is needed when the platform does not
74       have TrustZone.
75
76     properties:
77       iommus:
78         maxItems: 1
79
80     required:
81       - iommus
82
83 required:
84   - compatible
85   - reg
86   - interrupts
87   - power-domains
88   - clocks
89   - clock-names
90   - iommus
91   - memory-region
92   - video-decoder
93   - video-encoder
94
95 examples:
96   - |
97         #include <dt-bindings/interrupt-controller/arm-gic.h>
98         #include <dt-bindings/clock/qcom,gcc-msm8916.h>
99
100         video-codec@1d00000 {
101                 compatible = "qcom,msm8916-venus";
102                 reg = <0x01d00000 0xff000>;
103                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
104                 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
105                         <&gcc GCC_VENUS0_AHB_CLK>,
106                         <&gcc GCC_VENUS0_AXI_CLK>;
107                 clock-names = "core", "iface", "bus";
108                 power-domains = <&gcc VENUS_GDSC>;
109                 iommus = <&apps_iommu 5>;
110                 memory-region = <&venus_mem>;
111
112                 video-decoder {
113                         compatible = "venus-decoder";
114                 };
115
116                 video-encoder {
117                         compatible = "venus-encoder";
118                 };
119         };