WIP FPC-III support
[linux/fpc-iii.git] / Documentation / devicetree / bindings / media / qcom,sdm845-venus.yaml
blob680f37726fdf9e708843ab51f89f3d8b981ad9a7
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
3 %YAML 1.2
4 ---
5 $id: "http://devicetree.org/schemas/media/qcom,sdm845-venus.yaml#"
6 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
8 title: Qualcomm Venus video encode and decode accelerators
10 maintainers:
11   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
13 description: |
14   The Venus IP is a video encode and decode accelerator present
15   on Qualcomm platforms
17 properties:
18   compatible:
19     const: qcom,sdm845-venus
21   reg:
22     maxItems: 1
24   interrupts:
25     maxItems: 1
27   power-domains:
28     maxItems: 1
30   clocks:
31     maxItems: 3
33   clock-names:
34     items:
35       - const: core
36       - const: iface
37       - const: bus
39   iommus:
40     maxItems: 2
42   memory-region:
43     maxItems: 1
45   video-core0:
46     type: object
48     properties:
49       compatible:
50         const: venus-decoder
52       clocks:
53         maxItems: 2
55       clock-names:
56         items:
57           - const: core
58           - const: bus
60       power-domains:
61         maxItems: 1
63     required:
64       - compatible
65       - clocks
66       - clock-names
67       - power-domains
69     additionalProperties: false
71   video-core1:
72     type: object
74     properties:
75       compatible:
76         const: venus-encoder
78       clocks:
79         maxItems: 2
81       clock-names:
82         items:
83           - const: core
84           - const: bus
86       power-domains:
87         maxItems: 1
89     required:
90       - compatible
91       - clocks
92       - clock-names
93       - power-domains
95     additionalProperties: false
97   video-firmware:
98     type: object
100     description: |
101       Firmware subnode is needed when the platform does not
102       have TrustZone.
104     properties:
105       iommus:
106         maxItems: 1
108     required:
109       - iommus
111 required:
112   - compatible
113   - reg
114   - interrupts
115   - power-domains
116   - clocks
117   - clock-names
118   - iommus
119   - memory-region
120   - video-core0
121   - video-core1
123 additionalProperties: false
125 examples:
126   - |
127         #include <dt-bindings/interrupt-controller/arm-gic.h>
128         #include <dt-bindings/clock/qcom,videocc-sdm845.h>
130         video-codec@aa00000 {
131                 compatible = "qcom,sdm845-venus";
132                 reg = <0x0aa00000 0xff000>;
133                 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
134                 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
135                          <&videocc VIDEO_CC_VENUS_AHB_CLK>,
136                          <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>;
137                 clock-names = "core", "iface", "bus";
138                 power-domains = <&videocc VENUS_GDSC>;
139                 iommus = <&apps_smmu 0x10a0 0x8>,
140                          <&apps_smmu 0x10b0 0x0>;
141                 memory-region = <&venus_mem>;
143                 video-core0 {
144                         compatible = "venus-decoder";
145                         clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
146                                  <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
147                         clock-names = "core", "bus";
148                         power-domains = <&videocc VCODEC0_GDSC>;
149                 };
151                 video-core1 {
152                         compatible = "venus-encoder";
153                         clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
154                                  <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
155                         clock-names = "core", "bus";
156                         power-domains = <&videocc VCODEC1_GDSC>;
157                 };
158         };