1146b5bbfSStanimir Varbanov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2146b5bbfSStanimir Varbanov%YAML 1.2
3146b5bbfSStanimir Varbanov---
4af2270e0SKrzysztof Kozlowski$id: http://devicetree.org/schemas/media/qcom,msm8916-venus.yaml#
5af2270e0SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6146b5bbfSStanimir Varbanov
7af2270e0SKrzysztof Kozlowskititle: Qualcomm MSM8916 Venus video encode and decode accelerators
8146b5bbfSStanimir Varbanov
9146b5bbfSStanimir Varbanovmaintainers:
10146b5bbfSStanimir Varbanov  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
11146b5bbfSStanimir Varbanov
12146b5bbfSStanimir Varbanovdescription: |
13146b5bbfSStanimir Varbanov  The Venus IP is a video encode and decode accelerator present
14146b5bbfSStanimir Varbanov  on Qualcomm platforms
15146b5bbfSStanimir Varbanov
16f8cc21d4SKrzysztof KozlowskiallOf:
17f8cc21d4SKrzysztof Kozlowski  - $ref: qcom,venus-common.yaml#
18f8cc21d4SKrzysztof Kozlowski
19146b5bbfSStanimir Varbanovproperties:
20146b5bbfSStanimir Varbanov  compatible:
21146b5bbfSStanimir Varbanov    const: qcom,msm8916-venus
22146b5bbfSStanimir Varbanov
23146b5bbfSStanimir Varbanov  power-domains:
24146b5bbfSStanimir Varbanov    maxItems: 1
25146b5bbfSStanimir Varbanov
26146b5bbfSStanimir Varbanov  clocks:
27146b5bbfSStanimir Varbanov    maxItems: 3
28146b5bbfSStanimir Varbanov
29146b5bbfSStanimir Varbanov  clock-names:
30146b5bbfSStanimir Varbanov    items:
31146b5bbfSStanimir Varbanov      - const: core
32146b5bbfSStanimir Varbanov      - const: iface
33146b5bbfSStanimir Varbanov      - const: bus
34146b5bbfSStanimir Varbanov
35146b5bbfSStanimir Varbanov  iommus:
36146b5bbfSStanimir Varbanov    maxItems: 1
37146b5bbfSStanimir Varbanov
38146b5bbfSStanimir Varbanov  video-decoder:
39146b5bbfSStanimir Varbanov    type: object
40146b5bbfSStanimir Varbanov
41146b5bbfSStanimir Varbanov    properties:
42146b5bbfSStanimir Varbanov      compatible:
43*45698208SRob Herring        const: venus-decoder
44146b5bbfSStanimir Varbanov
45146b5bbfSStanimir Varbanov    required:
46146b5bbfSStanimir Varbanov      - compatible
47146b5bbfSStanimir Varbanov
48146b5bbfSStanimir Varbanov    additionalProperties: false
49146b5bbfSStanimir Varbanov
50146b5bbfSStanimir Varbanov  video-encoder:
51146b5bbfSStanimir Varbanov    type: object
52146b5bbfSStanimir Varbanov
53146b5bbfSStanimir Varbanov    properties:
54146b5bbfSStanimir Varbanov      compatible:
55*45698208SRob Herring        const: venus-encoder
56146b5bbfSStanimir Varbanov
57146b5bbfSStanimir Varbanov    required:
58146b5bbfSStanimir Varbanov      - compatible
59146b5bbfSStanimir Varbanov
60146b5bbfSStanimir Varbanov    additionalProperties: false
61146b5bbfSStanimir Varbanov
62146b5bbfSStanimir Varbanovrequired:
63146b5bbfSStanimir Varbanov  - compatible
64146b5bbfSStanimir Varbanov  - iommus
65146b5bbfSStanimir Varbanov  - video-decoder
66146b5bbfSStanimir Varbanov  - video-encoder
67146b5bbfSStanimir Varbanov
68f8cc21d4SKrzysztof KozlowskiunevaluatedProperties: false
695be478f9SRob Herring
70146b5bbfSStanimir Varbanovexamples:
71146b5bbfSStanimir Varbanov  - |
72146b5bbfSStanimir Varbanov    #include <dt-bindings/interrupt-controller/arm-gic.h>
73146b5bbfSStanimir Varbanov    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
74146b5bbfSStanimir Varbanov
75146b5bbfSStanimir Varbanov    video-codec@1d00000 {
76146b5bbfSStanimir Varbanov        compatible = "qcom,msm8916-venus";
77146b5bbfSStanimir Varbanov        reg = <0x01d00000 0xff000>;
78146b5bbfSStanimir Varbanov        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
79146b5bbfSStanimir Varbanov        clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
80146b5bbfSStanimir Varbanov                 <&gcc GCC_VENUS0_AHB_CLK>,
81146b5bbfSStanimir Varbanov                 <&gcc GCC_VENUS0_AXI_CLK>;
82146b5bbfSStanimir Varbanov        clock-names = "core", "iface", "bus";
83146b5bbfSStanimir Varbanov        power-domains = <&gcc VENUS_GDSC>;
84146b5bbfSStanimir Varbanov        iommus = <&apps_iommu 5>;
85146b5bbfSStanimir Varbanov        memory-region = <&venus_mem>;
86146b5bbfSStanimir Varbanov
87146b5bbfSStanimir Varbanov        video-decoder {
88146b5bbfSStanimir Varbanov            compatible = "venus-decoder";
89146b5bbfSStanimir Varbanov        };
90146b5bbfSStanimir Varbanov
91146b5bbfSStanimir Varbanov        video-encoder {
92146b5bbfSStanimir Varbanov            compatible = "venus-encoder";
93146b5bbfSStanimir Varbanov        };
94146b5bbfSStanimir Varbanov    };
95