1545d984cSDikshita Agarwal# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2545d984cSDikshita Agarwal
3545d984cSDikshita Agarwal%YAML 1.2
4545d984cSDikshita Agarwal---
5545d984cSDikshita Agarwal$id: "http://devicetree.org/schemas/media/qcom,sc7180-venus.yaml#"
6545d984cSDikshita Agarwal$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7545d984cSDikshita Agarwal
8545d984cSDikshita Agarwaltitle: Qualcomm Venus video encode and decode accelerators
9545d984cSDikshita Agarwal
10545d984cSDikshita Agarwalmaintainers:
11545d984cSDikshita Agarwal  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
12545d984cSDikshita Agarwal
13545d984cSDikshita Agarwaldescription: |
14545d984cSDikshita Agarwal  The Venus IP is a video encode and decode accelerator present
15545d984cSDikshita Agarwal  on Qualcomm platforms
16545d984cSDikshita Agarwal
17545d984cSDikshita Agarwalproperties:
18545d984cSDikshita Agarwal  compatible:
19545d984cSDikshita Agarwal    const: qcom,sc7180-venus
20545d984cSDikshita Agarwal
21545d984cSDikshita Agarwal  reg:
22545d984cSDikshita Agarwal    maxItems: 1
23545d984cSDikshita Agarwal
24545d984cSDikshita Agarwal  interrupts:
25545d984cSDikshita Agarwal    maxItems: 1
26545d984cSDikshita Agarwal
27545d984cSDikshita Agarwal  power-domains:
28545d984cSDikshita Agarwal    maxItems: 2
29545d984cSDikshita Agarwal
30545d984cSDikshita Agarwal  power-domain-names:
31545d984cSDikshita Agarwal    items:
32545d984cSDikshita Agarwal      - const: venus
33545d984cSDikshita Agarwal      - const: vcodec0
34545d984cSDikshita Agarwal
35545d984cSDikshita Agarwal  clocks:
36545d984cSDikshita Agarwal    maxItems: 5
37545d984cSDikshita Agarwal
38545d984cSDikshita Agarwal  clock-names:
39545d984cSDikshita Agarwal    items:
40545d984cSDikshita Agarwal      - const: core
41545d984cSDikshita Agarwal      - const: iface
42545d984cSDikshita Agarwal      - const: bus
43545d984cSDikshita Agarwal      - const: vcodec0_core
44545d984cSDikshita Agarwal      - const: vcodec0_bus
45545d984cSDikshita Agarwal
46545d984cSDikshita Agarwal  iommus:
47545d984cSDikshita Agarwal    maxItems: 1
48545d984cSDikshita Agarwal
49545d984cSDikshita Agarwal  memory-region:
50545d984cSDikshita Agarwal    maxItems: 1
51545d984cSDikshita Agarwal
52545d984cSDikshita Agarwal  interconnects:
53545d984cSDikshita Agarwal    maxItems: 2
54545d984cSDikshita Agarwal
55545d984cSDikshita Agarwal  interconnect-names:
56545d984cSDikshita Agarwal    items:
57545d984cSDikshita Agarwal      - const: video-mem
58545d984cSDikshita Agarwal      - const: cpu-cfg
59545d984cSDikshita Agarwal
60545d984cSDikshita Agarwal  video-decoder:
61545d984cSDikshita Agarwal    type: object
62545d984cSDikshita Agarwal
63545d984cSDikshita Agarwal    properties:
64545d984cSDikshita Agarwal      compatible:
65545d984cSDikshita Agarwal        const: venus-decoder
66545d984cSDikshita Agarwal
67545d984cSDikshita Agarwal    required:
68545d984cSDikshita Agarwal      - compatible
69545d984cSDikshita Agarwal
70545d984cSDikshita Agarwal    additionalProperties: false
71545d984cSDikshita Agarwal
72545d984cSDikshita Agarwal  video-encoder:
73545d984cSDikshita Agarwal    type: object
74545d984cSDikshita Agarwal
75545d984cSDikshita Agarwal    properties:
76545d984cSDikshita Agarwal      compatible:
77545d984cSDikshita Agarwal        const: venus-encoder
78545d984cSDikshita Agarwal
79545d984cSDikshita Agarwal    required:
80545d984cSDikshita Agarwal      - compatible
81545d984cSDikshita Agarwal
82545d984cSDikshita Agarwal    additionalProperties: false
83545d984cSDikshita Agarwal
84545d984cSDikshita Agarwal  video-firmware:
85545d984cSDikshita Agarwal    type: object
86545d984cSDikshita Agarwal
87545d984cSDikshita Agarwal    description: |
88545d984cSDikshita Agarwal      Firmware subnode is needed when the platform does not
89545d984cSDikshita Agarwal      have TrustZone.
90545d984cSDikshita Agarwal
91545d984cSDikshita Agarwal    properties:
92545d984cSDikshita Agarwal      iommus:
93545d984cSDikshita Agarwal        maxItems: 1
94545d984cSDikshita Agarwal
95545d984cSDikshita Agarwal    required:
96545d984cSDikshita Agarwal      - iommus
97545d984cSDikshita Agarwal
98545d984cSDikshita Agarwalrequired:
99545d984cSDikshita Agarwal  - compatible
100545d984cSDikshita Agarwal  - reg
101545d984cSDikshita Agarwal  - interrupts
102545d984cSDikshita Agarwal  - power-domains
103545d984cSDikshita Agarwal  - power-domain-names
104545d984cSDikshita Agarwal  - clocks
105545d984cSDikshita Agarwal  - clock-names
106545d984cSDikshita Agarwal  - iommus
107545d984cSDikshita Agarwal  - memory-region
108545d984cSDikshita Agarwal  - video-decoder
109545d984cSDikshita Agarwal  - video-encoder
110545d984cSDikshita Agarwal
111545d984cSDikshita Agarwalexamples:
112545d984cSDikshita Agarwal  - |
113545d984cSDikshita Agarwal        #include <dt-bindings/interrupt-controller/arm-gic.h>
114545d984cSDikshita Agarwal        #include <dt-bindings/clock/qcom,videocc-sc7180.h>
115545d984cSDikshita Agarwal
116545d984cSDikshita Agarwal        venus: video-codec@aa00000 {
117545d984cSDikshita Agarwal                compatible = "qcom,sc7180-venus";
118fba56184SRob Herring                reg = <0x0aa00000 0xff000>;
119545d984cSDikshita Agarwal                interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
120545d984cSDikshita Agarwal                power-domains = <&videocc VENUS_GDSC>,
121545d984cSDikshita Agarwal                                <&videocc VCODEC0_GDSC>;
122545d984cSDikshita Agarwal                power-domain-names = "venus", "vcodec0";
123545d984cSDikshita Agarwal                clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
124545d984cSDikshita Agarwal                         <&videocc VIDEO_CC_VENUS_AHB_CLK>,
125545d984cSDikshita Agarwal                         <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
126545d984cSDikshita Agarwal                         <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
127545d984cSDikshita Agarwal                         <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
128545d984cSDikshita Agarwal                clock-names = "core", "iface", "bus",
129545d984cSDikshita Agarwal                              "vcodec0_core", "vcodec0_bus";
130545d984cSDikshita Agarwal                iommus = <&apps_smmu 0x0c00 0x60>;
131545d984cSDikshita Agarwal                memory-region = <&venus_mem>;
132545d984cSDikshita Agarwal
133545d984cSDikshita Agarwal                video-decoder {
134545d984cSDikshita Agarwal                        compatible = "venus-decoder";
135545d984cSDikshita Agarwal                };
136545d984cSDikshita Agarwal
137545d984cSDikshita Agarwal                video-encoder {
138545d984cSDikshita Agarwal                        compatible = "venus-encoder";
139545d984cSDikshita Agarwal                };
140545d984cSDikshita Agarwal        };
141