]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/media/qcom,sc7180-venus.yaml
Import DTS from Linux 5.8
[FreeBSD/FreeBSD.git] / Bindings / media / qcom,sc7180-venus.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
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#"
7
8 title: Qualcomm Venus video encode and decode accelerators
9
10 maintainers:
11   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
12
13 description: |
14   The Venus IP is a video encode and decode accelerator present
15   on Qualcomm platforms
16
17 properties:
18   compatible:
19     const: qcom,sc7180-venus
20
21   reg:
22     maxItems: 1
23
24   interrupts:
25     maxItems: 1
26
27   power-domains:
28     maxItems: 2
29
30   power-domain-names:
31     items:
32       - const: venus
33       - const: vcodec0
34
35   clocks:
36     maxItems: 5
37
38   clock-names:
39     items:
40       - const: core
41       - const: iface
42       - const: bus
43       - const: vcodec0_core
44       - const: vcodec0_bus
45
46   iommus:
47     maxItems: 1
48
49   memory-region:
50     maxItems: 1
51
52   interconnects:
53     maxItems: 2
54
55   interconnect-names:
56     items:
57       - const: video-mem
58       - const: cpu-cfg
59
60   video-decoder:
61     type: object
62
63     properties:
64       compatible:
65         const: venus-decoder
66
67     required:
68       - compatible
69
70     additionalProperties: false
71
72   video-encoder:
73     type: object
74
75     properties:
76       compatible:
77         const: venus-encoder
78
79     required:
80       - compatible
81
82     additionalProperties: false
83
84   video-firmware:
85     type: object
86
87     description: |
88       Firmware subnode is needed when the platform does not
89       have TrustZone.
90
91     properties:
92       iommus:
93         maxItems: 1
94
95     required:
96       - iommus
97
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
110
111 examples:
112   - |
113         #include <dt-bindings/interrupt-controller/arm-gic.h>
114         #include <dt-bindings/clock/qcom,videocc-sc7180.h>
115
116         venus: video-codec@aa00000 {
117                 compatible = "qcom,sc7180-venus";
118                 reg = <0x0aa00000 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>;
132
133                 video-decoder {
134                         compatible = "venus-decoder";
135                 };
136
137                 video-encoder {
138                         compatible = "venus-encoder";
139                 };
140         };