blob: 5cec1d077cda77817f6d876109defcb0abbfeb2c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/qcom,sc7180-venus.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SC7180 Venus video encode and decode accelerators
8
9maintainers:
10 - Stanimir Varbanov <stanimir.varbanov@linaro.org>
11
12description: |
13 The Venus IP is a video encode and decode accelerator present
14 on Qualcomm platforms
15
16allOf:
17 - $ref: qcom,venus-common.yaml#
18
19properties:
20 compatible:
21 const: qcom,sc7180-venus
22
23 power-domains:
24 minItems: 2
25 maxItems: 3
26
27 power-domain-names:
28 minItems: 2
29 items:
30 - const: venus
31 - const: vcodec0
32 - const: cx
33
34 clocks:
35 maxItems: 5
36
37 clock-names:
38 items:
39 - const: core
40 - const: iface
41 - const: bus
42 - const: vcodec0_core
43 - const: vcodec0_bus
44
45 iommus:
46 maxItems: 1
47
48 memory-region:
49 maxItems: 1
50
51 interconnects:
52 maxItems: 2
53
54 interconnect-names:
55 items:
56 - const: video-mem
57 - const: cpu-cfg
58
59 operating-points-v2: true
60 opp-table:
61 type: object
62
63 video-decoder:
64 type: object
65
66 properties:
67 compatible:
68 const: venus-decoder
69
70 required:
71 - compatible
72
73 additionalProperties: false
74
75 video-encoder:
76 type: object
77
78 properties:
79 compatible:
80 const: venus-encoder
81
82 required:
83 - compatible
84
85 additionalProperties: false
86
87required:
88 - compatible
89 - power-domain-names
90 - iommus
91 - video-decoder
92 - video-encoder
93
94unevaluatedProperties: false
95
96examples:
97 - |
98 #include <dt-bindings/interrupt-controller/arm-gic.h>
99 #include <dt-bindings/clock/qcom,videocc-sc7180.h>
100
101 venus: video-codec@aa00000 {
102 compatible = "qcom,sc7180-venus";
103 reg = <0x0aa00000 0xff000>;
104 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
105 power-domains = <&videocc VENUS_GDSC>,
106 <&videocc VCODEC0_GDSC>;
107 power-domain-names = "venus", "vcodec0";
108 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
109 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
110 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
111 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
112 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
113 clock-names = "core", "iface", "bus",
114 "vcodec0_core", "vcodec0_bus";
115 iommus = <&apps_smmu 0x0c00 0x60>;
116 memory-region = <&venus_mem>;
117
118 video-decoder {
119 compatible = "venus-decoder";
120 };
121
122 video-encoder {
123 compatible = "venus-encoder";
124 };
125 };