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,msm8996-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,msm8996-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: 4
32
33 clock-names:
34 items:
35 - const: core
36 - const: iface
37 - const: bus
38 - const: mbus
39
40 iommus:
41 maxItems: 20
42
43 memory-region:
44 maxItems: 1
45
46 video-decoder:
47 type: object
48
49 properties:
50 compatible:
51 const: venus-decoder
52
53 clocks:
54 maxItems: 1
55
56 clock-names:
57 items:
58 - const: core
59
60 power-domains:
61 maxItems: 1
62
63 required:
64 - compatible
65 - clocks
66 - clock-names
67 - power-domains
68
69 additionalProperties: false
70
71 video-encoder:
72 type: object
73
74 properties:
75 compatible:
76 const: venus-encoder
77
78 clocks:
79 maxItems: 1
80
81 clock-names:
82 items:
83 - const: core
84
85 power-domains:
86 maxItems: 1
87
88 required:
89 - compatible
90 - clocks
91 - clock-names
92 - power-domains
93
94 additionalProperties: false
95
96 video-firmware:
97 type: object
98
99 description: |
100 Firmware subnode is needed when the platform does not
101 have TrustZone.
102
103 properties:
104 iommus:
105 maxItems: 1
106
107 required:
108 - iommus
109
110 required:
111 - compatible
112 - reg
113 - interrupts
114 - power-domains
115 - clocks
116 - clock-names
117 - iommus
118 - memory-region
119 - video-decoder
120 - video-encoder
121
122 additionalProperties: false
123
124 examples:
125 - |
126 #include <dt-bindings/interrupt-controller/arm-gic.h>
127 #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
128
129 video-codec@c00000 {
130 compatible = "qcom,msm8996-venus";
131 reg = <0x00c00000 0xff000>;
132 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
133 clocks = <&mmcc VIDEO_CORE_CLK>,
134 <&mmcc VIDEO_AHB_CLK>,
135 <&mmcc VIDEO_AXI_CLK>,
136 <&mmcc VIDEO_MAXI_CLK>;
137 clock-names = "core", "iface", "bus", "mbus";
138 power-domains = <&mmcc VENUS_GDSC>;
139 iommus = <&venus_smmu 0x00>,
140 <&venus_smmu 0x01>,
141 <&venus_smmu 0x0a>,
142 <&venus_smmu 0x07>,
143 <&venus_smmu 0x0e>,
144 <&venus_smmu 0x0f>,
145 <&venus_smmu 0x08>,
146 <&venus_smmu 0x09>,
147 <&venus_smmu 0x0b>,
148 <&venus_smmu 0x0c>,
149 <&venus_smmu 0x0d>,
150 <&venus_smmu 0x10>,
151 <&venus_smmu 0x11>,
152 <&venus_smmu 0x21>,
153 <&venus_smmu 0x28>,
154 <&venus_smmu 0x29>,
155 <&venus_smmu 0x2b>,
156 <&venus_smmu 0x2c>,
157 <&venus_smmu 0x2d>,
158 <&venus_smmu 0x31>;
159 memory-region = <&venus_mem>;
160
161 video-decoder {
162 compatible = "venus-decoder";
163 clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
164 clock-names = "core";
165 power-domains = <&mmcc VENUS_CORE0_GDSC>;
166 };
167
168 video-encoder {
169 compatible = "venus-encoder";
170 clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
171 clock-names = "core";
172 power-domains = <&mmcc VENUS_CORE1_GDSC>;
173 };
174 };
Cache object: a4d96275cfaeb865c7b8c88d3e2c6033
|