Merge tag 'block-6.13-20242901' of git://git.kernel.dk/linux
[drm/drm-misc.git] / Documentation / devicetree / bindings / media / qcom,sc7280-venus.yaml
blob10c334e6b3dcf25967fa438f8e6e5035448af1b9
1 # 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#
7 title: Qualcomm SC7280 Venus video encode and decode accelerators
9 maintainers:
10   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
12 description: |
13   The Venus Iris2 IP is a video encode and decode accelerator present
14   on Qualcomm platforms
16 allOf:
17   - $ref: qcom,venus-common.yaml#
19 properties:
20   compatible:
21     const: qcom,sc7280-venus
23   power-domains:
24     minItems: 2
25     maxItems: 3
27   power-domain-names:
28     minItems: 2
29     items:
30       - const: venus
31       - const: vcodec0
32       - const: cx
34   clocks:
35     maxItems: 5
37   clock-names:
38     items:
39       - const: core
40       - const: bus
41       - const: iface
42       - const: vcodec_core
43       - const: vcodec_bus
45   iommus:
46     minItems: 1
47     maxItems: 2
49   interconnects:
50     maxItems: 2
52   interconnect-names:
53     items:
54       - const: cpu-cfg
55       - const: video-mem
57   operating-points-v2: true
58   opp-table:
59     type: object
61   video-decoder:
62     type: object
64     properties:
65       compatible:
66         const: venus-decoder
68     required:
69       - compatible
71     additionalProperties: false
73   video-encoder:
74     type: object
76     properties:
77       compatible:
78         const: venus-encoder
80     required:
81       - compatible
83     additionalProperties: false
85 required:
86   - compatible
87   - power-domain-names
88   - iommus
89   - video-decoder
90   - video-encoder
92 unevaluatedProperties: false
94 examples:
95   - |
96     #include <dt-bindings/interrupt-controller/arm-gic.h>
97     #include <dt-bindings/clock/qcom,videocc-sc7280.h>
98     #include <dt-bindings/interconnect/qcom,sc7280.h>
99     #include <dt-bindings/power/qcom-rpmpd.h>
101     venus: video-codec@aa00000 {
102         compatible = "qcom,sc7280-venus";
103         reg = <0x0aa00000 0xd0600>;
104         interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
106         clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
107                  <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
108                  <&videocc VIDEO_CC_VENUS_AHB_CLK>,
109                  <&videocc VIDEO_CC_MVS0_CORE_CLK>,
110                  <&videocc VIDEO_CC_MVS0_AXI_CLK>;
111         clock-names = "core", "bus", "iface",
112                       "vcodec_core", "vcodec_bus";
114         power-domains = <&videocc MVSC_GDSC>,
115                         <&videocc MVS0_GDSC>,
116                         <&rpmhpd SC7280_CX>;
117         power-domain-names = "venus", "vcodec0", "cx";
119         interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
120                         <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
121         interconnect-names = "cpu-cfg", "video-mem";
123         iommus = <&apps_smmu 0x2180 0x20>,
124                  <&apps_smmu 0x2184 0x20>;
126         memory-region = <&video_mem>;
128         video-decoder {
129             compatible = "venus-decoder";
130         };
132         video-encoder {
133             compatible = "venus-encoder";
134         };
136         video-firmware {
137             iommus = <&apps_smmu 0x21a2 0x0>;
138         };
139     };