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,sdm845-venus-v2.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Qualcomm SDM845 Venus v2 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,sdm845-venus-v2
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  power-domains:
246be33864SEmmanuel Vadot    minItems: 3
256be33864SEmmanuel Vadot    maxItems: 4
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  power-domain-names:
286be33864SEmmanuel Vadot    minItems: 3
29c66ec88fSEmmanuel Vadot    items:
30c66ec88fSEmmanuel Vadot      - const: venus
31c66ec88fSEmmanuel Vadot      - const: vcodec0
32c66ec88fSEmmanuel Vadot      - const: vcodec1
336be33864SEmmanuel Vadot      - const: cx
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot  clocks:
36c66ec88fSEmmanuel Vadot    maxItems: 7
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  clock-names:
39c66ec88fSEmmanuel Vadot    items:
40c66ec88fSEmmanuel Vadot      - const: core
41c66ec88fSEmmanuel Vadot      - const: iface
42c66ec88fSEmmanuel Vadot      - const: bus
43c66ec88fSEmmanuel Vadot      - const: vcodec0_core
44c66ec88fSEmmanuel Vadot      - const: vcodec0_bus
45c66ec88fSEmmanuel Vadot      - const: vcodec1_core
46c66ec88fSEmmanuel Vadot      - const: vcodec1_bus
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot  iommus:
49c66ec88fSEmmanuel Vadot    maxItems: 2
50c66ec88fSEmmanuel Vadot
51*84943d6fSEmmanuel Vadot  interconnects:
52*84943d6fSEmmanuel Vadot    maxItems: 2
53*84943d6fSEmmanuel Vadot
54*84943d6fSEmmanuel Vadot  interconnect-names:
55*84943d6fSEmmanuel Vadot    items:
56*84943d6fSEmmanuel Vadot      - const: video-mem
57*84943d6fSEmmanuel Vadot      - const: cpu-cfg
58*84943d6fSEmmanuel Vadot
59fac71e4eSEmmanuel Vadot  operating-points-v2: true
60fac71e4eSEmmanuel Vadot  opp-table:
61fac71e4eSEmmanuel Vadot    type: object
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot  video-core0:
64c66ec88fSEmmanuel Vadot    type: object
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot    properties:
67c66ec88fSEmmanuel Vadot      compatible:
68c66ec88fSEmmanuel Vadot        const: venus-decoder
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot    required:
71c66ec88fSEmmanuel Vadot      - compatible
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot    additionalProperties: false
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot  video-core1:
76c66ec88fSEmmanuel Vadot    type: object
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot    properties:
79c66ec88fSEmmanuel Vadot      compatible:
80c66ec88fSEmmanuel Vadot        const: venus-encoder
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot    required:
83c66ec88fSEmmanuel Vadot      - compatible
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot    additionalProperties: false
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadotrequired:
88c66ec88fSEmmanuel Vadot  - compatible
89c66ec88fSEmmanuel Vadot  - power-domain-names
90c66ec88fSEmmanuel Vadot  - iommus
91c66ec88fSEmmanuel Vadot  - video-core0
92c66ec88fSEmmanuel Vadot  - video-core1
93c66ec88fSEmmanuel Vadot
94fac71e4eSEmmanuel VadotunevaluatedProperties: false
956be33864SEmmanuel Vadot
96c66ec88fSEmmanuel Vadotexamples:
97c66ec88fSEmmanuel Vadot  - |
98c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
99c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,videocc-sdm845.h>
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot    video-codec@aa00000 {
102c66ec88fSEmmanuel Vadot        compatible = "qcom,sdm845-venus-v2";
103c66ec88fSEmmanuel Vadot        reg = <0x0aa00000 0xff000>;
104c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
105c66ec88fSEmmanuel Vadot        clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
106c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
107c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
108c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
109c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>,
110c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
111c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
112c66ec88fSEmmanuel Vadot        clock-names = "core", "iface", "bus",
113c66ec88fSEmmanuel Vadot                      "vcodec0_core", "vcodec0_bus",
114c66ec88fSEmmanuel Vadot                      "vcodec1_core", "vcodec1_bus";
115c66ec88fSEmmanuel Vadot        power-domains = <&videocc VENUS_GDSC>,
116c66ec88fSEmmanuel Vadot                        <&videocc VCODEC0_GDSC>,
117c66ec88fSEmmanuel Vadot                        <&videocc VCODEC1_GDSC>;
118c66ec88fSEmmanuel Vadot        power-domain-names = "venus", "vcodec0", "vcodec1";
119c66ec88fSEmmanuel Vadot        iommus = <&apps_smmu 0x10a0 0x8>,
120c66ec88fSEmmanuel Vadot                 <&apps_smmu 0x10b0 0x0>;
121c66ec88fSEmmanuel Vadot        memory-region = <&venus_mem>;
122c66ec88fSEmmanuel Vadot
123c66ec88fSEmmanuel Vadot        video-core0 {
124c66ec88fSEmmanuel Vadot            compatible = "venus-decoder";
125c66ec88fSEmmanuel Vadot        };
126c66ec88fSEmmanuel Vadot
127c66ec88fSEmmanuel Vadot        video-core1 {
128c66ec88fSEmmanuel Vadot            compatible = "venus-encoder";
129c66ec88fSEmmanuel Vadot        };
130c66ec88fSEmmanuel Vadot    };
131