Skip to content

Commit e48b839

Browse files
Dikshita Agarwalmchehab
authored andcommitted
media: dt-bindings: media: venus: Add sc7280 dt schema
Add a schema description for the venus video encoder/decoder on the sc7280. Signed-off-by: Dikshita Agarwal <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Stanimir Varbanov <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent 1444232 commit e48b839

File tree

1 file changed

+162
-0
lines changed

1 file changed

+162
-0
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
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,sc7280-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 <[email protected]>
12+
13+
description: |
14+
The Venus Iris2 IP is a video encode and decode accelerator present
15+
on Qualcomm platforms
16+
17+
properties:
18+
compatible:
19+
const: qcom,sc7280-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+
maxItems: 3
34+
items:
35+
- const: venus
36+
- const: vcodec0
37+
- const: cx
38+
39+
clocks:
40+
maxItems: 5
41+
42+
clock-names:
43+
items:
44+
- const: core
45+
- const: bus
46+
- const: iface
47+
- const: vcodec_core
48+
- const: vcodec_bus
49+
50+
iommus:
51+
maxItems: 2
52+
53+
memory-region:
54+
maxItems: 1
55+
56+
interconnects:
57+
maxItems: 2
58+
59+
interconnect-names:
60+
items:
61+
- const: cpu-cfg
62+
- const: video-mem
63+
64+
video-decoder:
65+
type: object
66+
67+
properties:
68+
compatible:
69+
const: venus-decoder
70+
71+
required:
72+
- compatible
73+
74+
additionalProperties: false
75+
76+
video-encoder:
77+
type: object
78+
79+
properties:
80+
compatible:
81+
const: venus-encoder
82+
83+
required:
84+
- compatible
85+
86+
additionalProperties: false
87+
88+
video-firmware:
89+
type: object
90+
91+
description: |
92+
Firmware subnode is needed when the platform does not
93+
have TrustZone.
94+
95+
properties:
96+
iommus:
97+
maxItems: 1
98+
99+
required:
100+
- iommus
101+
102+
required:
103+
- compatible
104+
- reg
105+
- interrupts
106+
- power-domains
107+
- power-domain-names
108+
- clocks
109+
- clock-names
110+
- iommus
111+
- memory-region
112+
- video-decoder
113+
- video-encoder
114+
115+
additionalProperties: false
116+
117+
examples:
118+
- |
119+
#include <dt-bindings/interrupt-controller/arm-gic.h>
120+
#include <dt-bindings/clock/qcom,videocc-sc7280.h>
121+
#include <dt-bindings/interconnect/qcom,sc7280.h>
122+
#include <dt-bindings/power/qcom-rpmpd.h>
123+
124+
venus: video-codec@aa00000 {
125+
compatible = "qcom,sc7280-venus";
126+
reg = <0x0aa00000 0xd0600>;
127+
interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
128+
129+
clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
130+
<&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
131+
<&videocc VIDEO_CC_VENUS_AHB_CLK>,
132+
<&videocc VIDEO_CC_MVS0_CORE_CLK>,
133+
<&videocc VIDEO_CC_MVS0_AXI_CLK>;
134+
clock-names = "core", "bus", "iface",
135+
"vcodec_core", "vcodec_bus";
136+
137+
power-domains = <&videocc MVSC_GDSC>,
138+
<&videocc MVS0_GDSC>,
139+
<&rpmhpd SC7280_CX>;
140+
power-domain-names = "venus", "vcodec0", "cx";
141+
142+
interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
143+
<&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
144+
interconnect-names = "cpu-cfg", "video-mem";
145+
146+
iommus = <&apps_smmu 0x2180 0x20>,
147+
<&apps_smmu 0x2184 0x20>;
148+
149+
memory-region = <&video_mem>;
150+
151+
video-decoder {
152+
compatible = "venus-decoder";
153+
};
154+
155+
video-encoder {
156+
compatible = "venus-encoder";
157+
};
158+
159+
video-firmware {
160+
iommus = <&apps_smmu 0x21a2 0x0>;
161+
};
162+
};

0 commit comments

Comments
 (0)