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,sm8250-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,sm8250-venus
20
21 reg:
22 maxItems: 1
23
24 interrupts:
25 maxItems: 1
26
27 power-domains:
28 minItems: 2
29 maxItems: 3
30
31 power-domain-names:
32 minItems: 2
33 items:
34 - const: venus
35 - const: vcodec0
36 - const: mx
37
38 clocks:
39 maxItems: 3
40
41 clock-names:
42 items:
43 - const: iface
44 - const: core
45 - const: vcodec0_core
46
47 iommus:
48 maxItems: 1
49
50 memory-region:
51 maxItems: 1
52
53 interconnects:
54 maxItems: 2
55
56 interconnect-names:
57 items:
58 - const: cpu-cfg
59 - const: video-mem
60
61 resets:
62 maxItems: 2
63
64 reset-names:
65 items:
66 - const: bus
67 - const: core
68
69 video-decoder:
70 type: object
71
72 properties:
73 compatible:
74 const: venus-decoder
75
76 required:
77 - compatible
78
79 additionalProperties: false
80
81 video-encoder:
82 type: object
83
84 properties:
85 compatible:
86 const: venus-encoder
87
88 required:
89 - compatible
90
91 additionalProperties: false
92
93 video-firmware:
94 type: object
95
96 description: |
97 Firmware subnode is needed when the platform does not
98 have TrustZone.
99
100 properties:
101 iommus:
102 maxItems: 1
103
104 required:
105 - iommus
106
107 required:
108 - compatible
109 - reg
110 - interrupts
111 - power-domains
112 - power-domain-names
113 - clocks
114 - clock-names
115 - interconnects
116 - interconnect-names
117 - iommus
118 - memory-region
119 - resets
120 - reset-names
121 - video-decoder
122 - video-encoder
123
124 additionalProperties: false
125
126 examples:
127 - |
128 #include <dt-bindings/interrupt-controller/arm-gic.h>
129 #include <dt-bindings/clock/qcom,videocc-sm8250.h>
130 #include <dt-bindings/interconnect/qcom,sm8250.h>
131 #include <dt-bindings/clock/qcom,gcc-sm8250.h>
132 #include <dt-bindings/power/qcom-rpmpd.h>
133
134 venus: video-codec@aa00000 {
135 compatible = "qcom,sm8250-venus";
136 reg = <0x0aa00000 0xff000>;
137 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
138 power-domains = <&videocc MVS0C_GDSC>,
139 <&videocc MVS0_GDSC>,
140 <&rpmhpd SM8250_MX>;
141 power-domain-names = "venus", "vcodec0", "mx";
142
143 clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
144 <&videocc VIDEO_CC_MVS0C_CLK>,
145 <&videocc VIDEO_CC_MVS0_CLK>;
146 clock-names = "iface", "core", "vcodec0_core";
147
148 interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_VENUS_CFG>,
149 <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI_CH0>;
150 interconnect-names = "cpu-cfg", "video-mem";
151
152 iommus = <&apps_smmu 0x2100 0x0400>;
153 memory-region = <&video_mem>;
154
155 resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
156 <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
157 reset-names = "bus", "core";
158
159 video-decoder {
160 compatible = "venus-decoder";
161 };
162
163 video-encoder {
164 compatible = "venus-encoder";
165 };
166 };
Cache object: aaa97e96bfdd340337ffe8eced16ab4b
|