xref: /freebsd/sys/contrib/device-tree/Bindings/media/qcom,msm8916-venus.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/qcom,msm8916-venus.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Qualcomm MSM8916 Venus video encode and decode accelerators
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The Venus IP is a video encode and decode accelerator present
14c66ec88fSEmmanuel Vadot  on Qualcomm platforms
15c66ec88fSEmmanuel Vadot
16fac71e4eSEmmanuel VadotallOf:
17fac71e4eSEmmanuel Vadot  - $ref: qcom,venus-common.yaml#
18fac71e4eSEmmanuel Vadot
19c66ec88fSEmmanuel Vadotproperties:
20c66ec88fSEmmanuel Vadot  compatible:
21c66ec88fSEmmanuel Vadot    const: qcom,msm8916-venus
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  power-domains:
24c66ec88fSEmmanuel Vadot    maxItems: 1
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  clocks:
27c66ec88fSEmmanuel Vadot    maxItems: 3
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  clock-names:
30c66ec88fSEmmanuel Vadot    items:
31c66ec88fSEmmanuel Vadot      - const: core
32c66ec88fSEmmanuel Vadot      - const: iface
33c66ec88fSEmmanuel Vadot      - const: bus
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot  iommus:
36c66ec88fSEmmanuel Vadot    maxItems: 1
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  video-decoder:
39c66ec88fSEmmanuel Vadot    type: object
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot    properties:
42c66ec88fSEmmanuel Vadot      compatible:
43*aa1a8ff2SEmmanuel Vadot        const: venus-decoder
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot    required:
46c66ec88fSEmmanuel Vadot      - compatible
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot    additionalProperties: false
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  video-encoder:
51c66ec88fSEmmanuel Vadot    type: object
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot    properties:
54c66ec88fSEmmanuel Vadot      compatible:
55*aa1a8ff2SEmmanuel Vadot        const: venus-encoder
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot    required:
58c66ec88fSEmmanuel Vadot      - compatible
59c66ec88fSEmmanuel Vadot
60c66ec88fSEmmanuel Vadot    additionalProperties: false
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadotrequired:
63c66ec88fSEmmanuel Vadot  - compatible
64c66ec88fSEmmanuel Vadot  - iommus
65c66ec88fSEmmanuel Vadot  - video-decoder
66c66ec88fSEmmanuel Vadot  - video-encoder
67c66ec88fSEmmanuel Vadot
68fac71e4eSEmmanuel VadotunevaluatedProperties: false
696be33864SEmmanuel Vadot
70c66ec88fSEmmanuel Vadotexamples:
71c66ec88fSEmmanuel Vadot  - |
72c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
73c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot    video-codec@1d00000 {
76c66ec88fSEmmanuel Vadot        compatible = "qcom,msm8916-venus";
77c66ec88fSEmmanuel Vadot        reg = <0x01d00000 0xff000>;
78c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
79c66ec88fSEmmanuel Vadot        clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
80c66ec88fSEmmanuel Vadot                 <&gcc GCC_VENUS0_AHB_CLK>,
81c66ec88fSEmmanuel Vadot                 <&gcc GCC_VENUS0_AXI_CLK>;
82c66ec88fSEmmanuel Vadot        clock-names = "core", "iface", "bus";
83c66ec88fSEmmanuel Vadot        power-domains = <&gcc VENUS_GDSC>;
84c66ec88fSEmmanuel Vadot        iommus = <&apps_iommu 5>;
85c66ec88fSEmmanuel Vadot        memory-region = <&venus_mem>;
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot        video-decoder {
88c66ec88fSEmmanuel Vadot            compatible = "venus-decoder";
89c66ec88fSEmmanuel Vadot        };
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot        video-encoder {
92c66ec88fSEmmanuel Vadot            compatible = "venus-encoder";
93c66ec88fSEmmanuel Vadot        };
94c66ec88fSEmmanuel Vadot    };
95