blob: 8f9b6433aeb8c130b8895916d3a53c9a836a3eac [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,sc7280-venus.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SC7280 Venus video encode and decode accelerators
8
9maintainers:
10 - Stanimir Varbanov <stanimir.varbanov@linaro.org>
11
12description: |
13 The Venus Iris2 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,sc7280-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: bus
41 - const: iface
42 - const: vcodec_core
43 - const: vcodec_bus
44
45 iommus:
46 maxItems: 2
47
48 interconnects:
49 maxItems: 2
50
51 interconnect-names:
52 items:
53 - const: cpu-cfg
54 - const: video-mem
55
56 operating-points-v2: true
57 opp-table:
58 type: object
59
60 video-decoder:
61 type: object
62
63 properties:
64 compatible:
65 const: venus-decoder
66
67 required:
68 - compatible
69
70 additionalProperties: false
71
72 video-encoder:
73 type: object
74
75 properties:
76 compatible:
77 const: venus-encoder
78
79 required:
80 - compatible
81
82 additionalProperties: false
83
84required:
85 - compatible
86 - power-domain-names
87 - iommus
88 - video-decoder
89 - video-encoder
90
91unevaluatedProperties: false
92
93examples:
94 - |
95 #include <dt-bindings/interrupt-controller/arm-gic.h>
96 #include <dt-bindings/clock/qcom,videocc-sc7280.h>
97 #include <dt-bindings/interconnect/qcom,sc7280.h>
98 #include <dt-bindings/power/qcom-rpmpd.h>
99
100 venus: video-codec@aa00000 {
101 compatible = "qcom,sc7280-venus";
102 reg = <0x0aa00000 0xd0600>;
103 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
104
105 clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
106 <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
107 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
108 <&videocc VIDEO_CC_MVS0_CORE_CLK>,
109 <&videocc VIDEO_CC_MVS0_AXI_CLK>;
110 clock-names = "core", "bus", "iface",
111 "vcodec_core", "vcodec_bus";
112
113 power-domains = <&videocc MVSC_GDSC>,
114 <&videocc MVS0_GDSC>,
115 <&rpmhpd SC7280_CX>;
116 power-domain-names = "venus", "vcodec0", "cx";
117
118 interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
119 <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
120 interconnect-names = "cpu-cfg", "video-mem";
121
122 iommus = <&apps_smmu 0x2180 0x20>,
123 <&apps_smmu 0x2184 0x20>;
124
125 memory-region = <&video_mem>;
126
127 video-decoder {
128 compatible = "venus-decoder";
129 };
130
131 video-encoder {
132 compatible = "venus-encoder";
133 };
134
135 video-firmware {
136 iommus = <&apps_smmu 0x21a2 0x0>;
137 };
138 };