xref: /linux/Documentation/devicetree/bindings/media/qcom,sc7180-venus.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1# 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    oneOf:
22      - items:
23          - enum:
24              - qcom,qcs615-venus
25          - const: qcom,sc7180-venus
26      - const: qcom,sc7180-venus
27
28  power-domains:
29    minItems: 2
30    maxItems: 3
31
32  power-domain-names:
33    minItems: 2
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: iface
46      - const: bus
47      - const: vcodec0_core
48      - const: vcodec0_bus
49
50  iommus:
51    maxItems: 1
52
53  memory-region:
54    maxItems: 1
55
56  interconnects:
57    maxItems: 2
58
59  interconnect-names:
60    items:
61      - const: video-mem
62      - const: cpu-cfg
63
64  operating-points-v2: true
65  opp-table:
66    type: object
67
68  video-decoder:
69    type: object
70
71    properties:
72      compatible:
73        const: venus-decoder
74
75    required:
76      - compatible
77
78    deprecated: true
79    additionalProperties: false
80
81  video-encoder:
82    type: object
83
84    properties:
85      compatible:
86        const: venus-encoder
87
88    required:
89      - compatible
90
91    deprecated: true
92    additionalProperties: false
93
94required:
95  - compatible
96  - power-domain-names
97  - iommus
98
99unevaluatedProperties: false
100
101examples:
102  - |
103    #include <dt-bindings/interrupt-controller/arm-gic.h>
104    #include <dt-bindings/clock/qcom,videocc-sc7180.h>
105
106    venus: video-codec@aa00000 {
107        compatible = "qcom,sc7180-venus";
108        reg = <0x0aa00000 0xff000>;
109        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
110        power-domains = <&videocc VENUS_GDSC>,
111                        <&videocc VCODEC0_GDSC>;
112        power-domain-names = "venus", "vcodec0";
113        clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
114                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
115                 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
116                 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
117                 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
118        clock-names = "core", "iface", "bus",
119                      "vcodec0_core", "vcodec0_bus";
120        iommus = <&apps_smmu 0x0c00 0x60>;
121        memory-region = <&venus_mem>;
122    };
123