blob: eabc0957b2416bfe7499720e5f7021e42ecc4801 [file] [log] [blame]
Stanimir Varbanov49a37972019-12-17 14:25:34 +01001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
Stanimir Varbanov49a37972019-12-17 14:25:34 +01002%YAML 1.2
3---
Krzysztof Kozlowskiaf2270e2022-12-27 15:40:55 +01004$id: http://devicetree.org/schemas/media/qcom,sdm845-venus.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
Stanimir Varbanov49a37972019-12-17 14:25:34 +01006
Krzysztof Kozlowskiaf2270e2022-12-27 15:40:55 +01007title: Qualcomm SDM845 Venus video encode and decode accelerators
Stanimir Varbanov49a37972019-12-17 14:25:34 +01008
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
Krzysztof Kozlowskif8cc21d2022-12-27 15:40:56 +010016allOf:
17 - $ref: qcom,venus-common.yaml#
18
Stanimir Varbanov49a37972019-12-17 14:25:34 +010019properties:
20 compatible:
21 const: qcom,sdm845-venus
22
Stanimir Varbanov49a37972019-12-17 14:25:34 +010023 power-domains:
24 maxItems: 1
25
26 clocks:
27 maxItems: 3
28
29 clock-names:
30 items:
31 - const: core
32 - const: iface
33 - const: bus
34
35 iommus:
36 maxItems: 2
37
Stanimir Varbanov49a37972019-12-17 14:25:34 +010038 video-core0:
39 type: object
40
41 properties:
42 compatible:
43 const: venus-decoder
44
45 clocks:
46 maxItems: 2
47
48 clock-names:
49 items:
50 - const: core
51 - const: bus
52
53 power-domains:
54 maxItems: 1
55
56 required:
57 - compatible
58 - clocks
59 - clock-names
60 - power-domains
61
62 additionalProperties: false
63
64 video-core1:
65 type: object
66
67 properties:
68 compatible:
69 const: venus-encoder
70
71 clocks:
72 maxItems: 2
73
74 clock-names:
75 items:
76 - const: core
77 - const: bus
78
79 power-domains:
80 maxItems: 1
81
82 required:
83 - compatible
84 - clocks
85 - clock-names
86 - power-domains
87
88 additionalProperties: false
89
Stanimir Varbanov49a37972019-12-17 14:25:34 +010090required:
91 - compatible
Stanimir Varbanov49a37972019-12-17 14:25:34 +010092 - iommus
Stanimir Varbanov49a37972019-12-17 14:25:34 +010093 - video-core0
94 - video-core1
95
Krzysztof Kozlowskif8cc21d2022-12-27 15:40:56 +010096unevaluatedProperties: false
Rob Herring5be478f2020-10-02 18:41:43 -050097
Stanimir Varbanov49a37972019-12-17 14:25:34 +010098examples:
99 - |
Krzysztof Kozlowskiaf2270e2022-12-27 15:40:55 +0100100 #include <dt-bindings/interrupt-controller/arm-gic.h>
101 #include <dt-bindings/clock/qcom,videocc-sdm845.h>
Stanimir Varbanov49a37972019-12-17 14:25:34 +0100102
Krzysztof Kozlowskiaf2270e2022-12-27 15:40:55 +0100103 video-codec@aa00000 {
104 compatible = "qcom,sdm845-venus";
105 reg = <0x0aa00000 0xff000>;
106 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
107 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
108 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
109 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>;
110 clock-names = "core", "iface", "bus";
111 power-domains = <&videocc VENUS_GDSC>;
112 iommus = <&apps_smmu 0x10a0 0x8>,
113 <&apps_smmu 0x10b0 0x0>;
114 memory-region = <&venus_mem>;
Stanimir Varbanov49a37972019-12-17 14:25:34 +0100115
Krzysztof Kozlowskiaf2270e2022-12-27 15:40:55 +0100116 video-core0 {
117 compatible = "venus-decoder";
118 clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
119 <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
120 clock-names = "core", "bus";
121 power-domains = <&videocc VCODEC0_GDSC>;
Stanimir Varbanov49a37972019-12-17 14:25:34 +0100122 };
Krzysztof Kozlowskiaf2270e2022-12-27 15:40:55 +0100123
124 video-core1 {
125 compatible = "venus-encoder";
126 clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
127 <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
128 clock-names = "core", "bus";
129 power-domains = <&videocc VCODEC1_GDSC>;
130 };
131 };