arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / bindings / media / qcom,sdm660-venus.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/media/qcom,sdm660-venus.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm SDM660 Venus video encode and decode accelerators
8
9 maintainers:
10   - Stanimir Varbanov <stanimir.varbanov@linaro.org>
11   - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
12
13 description: |
14   The Venus IP is a video encode and decode accelerator present
15   on Qualcomm platforms
16
17 allOf:
18   - $ref: qcom,venus-common.yaml#
19
20 properties:
21   compatible:
22     const: qcom,sdm660-venus
23
24   clocks:
25     maxItems: 4
26
27   clock-names:
28     items:
29       - const: core
30       - const: iface
31       - const: bus
32       - const: bus_throttle
33
34   interconnects:
35     maxItems: 2
36
37   interconnect-names:
38     items:
39       - const: cpu-cfg
40       - const: video-mem
41
42   iommus:
43     maxItems: 20
44
45   power-domains:
46     maxItems: 1
47
48   video-decoder:
49     type: object
50
51     properties:
52       compatible:
53         const: venus-decoder
54
55       clocks:
56         maxItems: 1
57
58       clock-names:
59         items:
60           - const: vcodec0_core
61
62       power-domains:
63         maxItems: 1
64
65     required:
66       - compatible
67       - clocks
68       - clock-names
69       - power-domains
70
71     additionalProperties: false
72
73   video-encoder:
74     type: object
75
76     properties:
77       compatible:
78         const: venus-encoder
79
80       clocks:
81         maxItems: 1
82
83       clock-names:
84         items:
85           - const: vcodec0_core
86
87       power-domains:
88         maxItems: 1
89
90     required:
91       - compatible
92       - clocks
93       - clock-names
94       - power-domains
95
96     additionalProperties: false
97
98 required:
99   - compatible
100   - iommus
101   - video-decoder
102   - video-encoder
103
104 unevaluatedProperties: false
105
106 examples:
107   - |
108     #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
109     #include <dt-bindings/interrupt-controller/arm-gic.h>
110
111     video-codec@cc00000 {
112         compatible = "qcom,sdm660-venus";
113         reg = <0x0cc00000 0xff000>;
114         clocks = <&mmcc VIDEO_CORE_CLK>,
115                  <&mmcc VIDEO_AHB_CLK>,
116                  <&mmcc VIDEO_AXI_CLK>,
117                  <&mmcc THROTTLE_VIDEO_AXI_CLK>;
118         clock-names = "core", "iface", "bus", "bus_throttle";
119         interconnects = <&gnoc 0 &mnoc 13>,
120                         <&mnoc 4 &bimc 5>;
121         interconnect-names = "cpu-cfg", "video-mem";
122         interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
123         iommus = <&mmss_smmu 0x400>,
124                  <&mmss_smmu 0x401>,
125                  <&mmss_smmu 0x40a>,
126                  <&mmss_smmu 0x407>,
127                  <&mmss_smmu 0x40e>,
128                  <&mmss_smmu 0x40f>,
129                  <&mmss_smmu 0x408>,
130                  <&mmss_smmu 0x409>,
131                  <&mmss_smmu 0x40b>,
132                  <&mmss_smmu 0x40c>,
133                  <&mmss_smmu 0x40d>,
134                  <&mmss_smmu 0x410>,
135                  <&mmss_smmu 0x421>,
136                  <&mmss_smmu 0x428>,
137                  <&mmss_smmu 0x429>,
138                  <&mmss_smmu 0x42b>,
139                  <&mmss_smmu 0x42c>,
140                  <&mmss_smmu 0x42d>,
141                  <&mmss_smmu 0x411>,
142                  <&mmss_smmu 0x431>;
143         memory-region = <&venus_region>;
144         power-domains = <&mmcc VENUS_GDSC>;
145
146         video-decoder {
147             compatible = "venus-decoder";
148             clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
149             clock-names = "vcodec0_core";
150             power-domains = <&mmcc VENUS_CORE0_GDSC>;
151         };
152
153         video-encoder {
154             compatible = "venus-encoder";
155             clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
156             clock-names = "vcodec0_core";
157             power-domains = <&mmcc VENUS_CORE0_GDSC>;
158         };
159     };