Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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,sdm845-venus-v2.yaml#"
6$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7
8title: Qualcomm Venus video encode and decode accelerators
9
10maintainers:
11 - Stanimir Varbanov <stanimir.varbanov@linaro.org>
12
13description: |
14 The Venus IP is a video encode and decode accelerator present
15 on Qualcomm platforms
16
17properties:
18 compatible:
19 const: qcom,sdm845-venus-v2
20
21 reg:
22 maxItems: 1
23
24 interrupts:
25 maxItems: 1
26
27 power-domains:
28 maxItems: 3
29
30 power-domain-names:
31 items:
32 - const: venus
33 - const: vcodec0
34 - const: vcodec1
35
36 clocks:
37 maxItems: 7
38
39 clock-names:
40 items:
41 - const: core
42 - const: iface
43 - const: bus
44 - const: vcodec0_core
45 - const: vcodec0_bus
46 - const: vcodec1_core
47 - const: vcodec1_bus
48
49 iommus:
50 maxItems: 2
51
52 memory-region:
53 maxItems: 1
54
55 video-core0:
56 type: object
57
58 properties:
59 compatible:
60 const: venus-decoder
61
62 required:
63 - compatible
64
65 additionalProperties: false
66
67 video-core1:
68 type: object
69
70 properties:
71 compatible:
72 const: venus-encoder
73
74 required:
75 - compatible
76
77 additionalProperties: false
78
79 video-firmware:
80 type: object
81
82 description: |
83 Firmware subnode is needed when the platform does not
84 have TrustZone.
85
86 properties:
87 iommus:
88 maxItems: 1
89
90 required:
91 - iommus
92
93required:
94 - compatible
95 - reg
96 - interrupts
97 - power-domains
98 - power-domain-names
99 - clocks
100 - clock-names
101 - iommus
102 - memory-region
103 - video-core0
104 - video-core1
105
106examples:
107 - |
108 #include <dt-bindings/interrupt-controller/arm-gic.h>
109 #include <dt-bindings/clock/qcom,videocc-sdm845.h>
110
111 video-codec@aa00000 {
112 compatible = "qcom,sdm845-venus-v2";
113 reg = <0x0aa00000 0xff000>;
114 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
115 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
116 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
117 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
118 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
119 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>,
120 <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
121 <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
122 clock-names = "core", "iface", "bus",
123 "vcodec0_core", "vcodec0_bus",
124 "vcodec1_core", "vcodec1_bus";
125 power-domains = <&videocc VENUS_GDSC>,
126 <&videocc VCODEC0_GDSC>,
127 <&videocc VCODEC1_GDSC>;
128 power-domain-names = "venus", "vcodec0", "vcodec1";
129 iommus = <&apps_smmu 0x10a0 0x8>,
130 <&apps_smmu 0x10b0 0x0>;
131 memory-region = <&venus_mem>;
132
133 video-core0 {
134 compatible = "venus-decoder";
135 };
136
137 video-core1 {
138 compatible = "venus-encoder";
139 };
140 };