gpio: rcar: Fix runtime PM imbalance on error
[linux/fpc-iii.git] / Documentation / devicetree / bindings / media / qcom,sdm845-venus-v2.yaml
blob8552f4ab907eedcd408f50e75f7ac8a7f2e12207
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-v2.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-v2
21   reg:
22     maxItems: 1
24   interrupts:
25     maxItems: 1
27   power-domains:
28     maxItems: 3
30   power-domain-names:
31     items:
32       - const: venus
33       - const: vcodec0
34       - const: vcodec1
36   clocks:
37     maxItems: 7
39   clock-names:
40     items:
41       - const: core
42       - const: iface
43       - const: bus
44       - const: vcodec0_core
45       - const: vcodec0_bus
46       - const: vcodec1_core
47       - const: vcodec1_bus
49   iommus:
50     maxItems: 2
52   memory-region:
53     maxItems: 1
55   video-core0:
56     type: object
58     properties:
59       compatible:
60         const: venus-decoder
62     required:
63       - compatible
65     additionalProperties: false
67   video-core1:
68     type: object
70     properties:
71       compatible:
72         const: venus-encoder
74     required:
75       - compatible
77     additionalProperties: false
79   video-firmware:
80     type: object
82     description: |
83       Firmware subnode is needed when the platform does not
84       have TrustZone.
86     properties:
87       iommus:
88         maxItems: 1
90     required:
91       - iommus
93 required:
94   - compatible
95   - reg
96   - interrupts
97   - power-domains
98   - power-domain-names
99   - clocks
100   - clock-names
101   - iommus
102   - memory-region
103   - video-core0
104   - video-core1
106 examples:
107   - |
108         #include <dt-bindings/interrupt-controller/arm-gic.h>
109         #include <dt-bindings/clock/qcom,videocc-sdm845.h>
111         video-codec@aa00000 {
112                 compatible = "qcom,sdm845-venus-v2";
113                 reg = <0 0x0aa00000 0 0xff000>;
114                 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
115                 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
116                          <&videocc VIDEO_CC_VENUS_AHB_CLK>,
117                          <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
118                          <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
119                          <&videocc VIDEO_CC_VCODEC0_AXI_CLK>,
120                          <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
121                          <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
122                 clock-names = "core", "iface", "bus",
123                               "vcodec0_core", "vcodec0_bus",
124                               "vcodec1_core", "vcodec1_bus";
125                 power-domains = <&videocc VENUS_GDSC>,
126                                 <&videocc VCODEC0_GDSC>,
127                                 <&videocc VCODEC1_GDSC>;
128                 power-domain-names = "venus", "vcodec0", "vcodec1";
129                 iommus = <&apps_smmu 0x10a0 0x8>,
130                          <&apps_smmu 0x10b0 0x0>;
131                 memory-region = <&venus_mem>;
133                 video-core0 {
134                         compatible = "venus-decoder";
135                 };
137                 video-core1 {
138                         compatible = "venus-encoder";
139                 };
140         };