gpio: rcar: Fix runtime PM imbalance on error
[linux/fpc-iii.git] / Documentation / devicetree / bindings / media / qcom,sc7180-venus.yaml
blob764affa4877e326654892663ea3d62262100123b
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
3 %YAML 1.2
4 ---
5 $id: "http://devicetree.org/schemas/media/qcom,sc7180-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,sc7180-venus
21   reg:
22     maxItems: 1
24   interrupts:
25     maxItems: 1
27   power-domains:
28     maxItems: 2
30   power-domain-names:
31     items:
32       - const: venus
33       - const: vcodec0
35   clocks:
36     maxItems: 5
38   clock-names:
39     items:
40       - const: core
41       - const: iface
42       - const: bus
43       - const: vcodec0_core
44       - const: vcodec0_bus
46   iommus:
47     maxItems: 1
49   memory-region:
50     maxItems: 1
52   interconnects:
53     maxItems: 2
55   interconnect-names:
56     items:
57       - const: video-mem
58       - const: cpu-cfg
60   video-decoder:
61     type: object
63     properties:
64       compatible:
65         const: venus-decoder
67     required:
68       - compatible
70     additionalProperties: false
72   video-encoder:
73     type: object
75     properties:
76       compatible:
77         const: venus-encoder
79     required:
80       - compatible
82     additionalProperties: false
84   video-firmware:
85     type: object
87     description: |
88       Firmware subnode is needed when the platform does not
89       have TrustZone.
91     properties:
92       iommus:
93         maxItems: 1
95     required:
96       - iommus
98 required:
99   - compatible
100   - reg
101   - interrupts
102   - power-domains
103   - power-domain-names
104   - clocks
105   - clock-names
106   - iommus
107   - memory-region
108   - video-decoder
109   - video-encoder
111 examples:
112   - |
113         #include <dt-bindings/interrupt-controller/arm-gic.h>
114         #include <dt-bindings/clock/qcom,videocc-sc7180.h>
116         venus: video-codec@aa00000 {
117                 compatible = "qcom,sc7180-venus";
118                 reg = <0 0x0aa00000 0 0xff000>;
119                 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
120                 power-domains = <&videocc VENUS_GDSC>,
121                                 <&videocc VCODEC0_GDSC>;
122                 power-domain-names = "venus", "vcodec0";
123                 clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
124                          <&videocc VIDEO_CC_VENUS_AHB_CLK>,
125                          <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>,
126                          <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
127                          <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
128                 clock-names = "core", "iface", "bus",
129                               "vcodec0_core", "vcodec0_bus";
130                 iommus = <&apps_smmu 0x0c00 0x60>;
131                 memory-region = <&venus_mem>;
133                 video-decoder {
134                         compatible = "venus-decoder";
135                 };
137                 video-encoder {
138                         compatible = "venus-encoder";
139                 };
140         };