blob: eabc0957b2416bfe7499720e5f7021e42ecc4801 [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,sdm845-venus.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SDM845 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,sdm845-venus
22
23 power-domains:
24 maxItems: 1
25
26 clocks:
27 maxItems: 3
28
29 clock-names:
30 items:
31 - const: core
32 - const: iface
33 - const: bus
34
35 iommus:
36 maxItems: 2
37
38 video-core0:
39 type: object
40
41 properties:
42 compatible:
43 const: venus-decoder
44
45 clocks:
46 maxItems: 2
47
48 clock-names:
49 items:
50 - const: core
51 - const: bus
52
53 power-domains:
54 maxItems: 1
55
56 required:
57 - compatible
58 - clocks
59 - clock-names
60 - power-domains
61
62 additionalProperties: false
63
64 video-core1:
65 type: object
66
67 properties:
68 compatible:
69 const: venus-encoder
70
71 clocks:
72 maxItems: 2
73
74 clock-names:
75 items:
76 - const: core
77 - const: bus
78
79 power-domains:
80 maxItems: 1
81
82 required:
83 - compatible
84 - clocks
85 - clock-names
86 - power-domains
87
88 additionalProperties: false
89
90required:
91 - compatible
92 - iommus
93 - video-core0
94 - video-core1
95
96unevaluatedProperties: false
97
98examples:
99 - |
100 #include <dt-bindings/interrupt-controller/arm-gic.h>
101 #include <dt-bindings/clock/qcom,videocc-sdm845.h>
102
103 video-codec@aa00000 {
104 compatible = "qcom,sdm845-venus";
105 reg = <0x0aa00000 0xff000>;
106 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
107 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
108 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
109 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>;
110 clock-names = "core", "iface", "bus";
111 power-domains = <&videocc VENUS_GDSC>;
112 iommus = <&apps_smmu 0x10a0 0x8>,
113 <&apps_smmu 0x10b0 0x0>;
114 memory-region = <&venus_mem>;
115
116 video-core0 {
117 compatible = "venus-decoder";
118 clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
119 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
120 clock-names = "core", "bus";
121 power-domains = <&videocc VCODEC0_GDSC>;
122 };
123
124 video-core1 {
125 compatible = "venus-encoder";
126 clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
127 <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
128 clock-names = "core", "bus";
129 power-domains = <&videocc VCODEC1_GDSC>;
130 };
131 };