Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / media / qcom,venus.txt
1 * Qualcomm Venus video encoder/decoder accelerators
2
3 - compatible:
4         Usage: required
5         Value type: <stringlist>
6         Definition: Value should contain one of:
7                 - "qcom,msm8916-venus"
8                 - "qcom,msm8996-venus"
9 - reg:
10         Usage: required
11         Value type: <prop-encoded-array>
12         Definition: Register base address and length of the register map.
13 - interrupts:
14         Usage: required
15         Value type: <prop-encoded-array>
16         Definition: Should contain interrupt line number.
17 - clocks:
18         Usage: required
19         Value type: <prop-encoded-array>
20         Definition: A List of phandle and clock specifier pairs as listed
21                     in clock-names property.
22 - clock-names:
23         Usage: required for msm8916
24         Value type: <stringlist>
25         Definition: Should contain the following entries:
26                 - "core"        Core video accelerator clock
27                 - "iface"       Video accelerator AHB clock
28                 - "bus"         Video accelerator AXI clock
29 - clock-names:
30         Usage: required for msm8996
31         Value type: <stringlist>
32         Definition: Should contain the following entries:
33                 - "core"        Core video accelerator clock
34                 - "iface"       Video accelerator AHB clock
35                 - "bus"         Video accelerator AXI clock
36                 - "mbus"        Video MAXI clock
37 - power-domains:
38         Usage: required
39         Value type: <prop-encoded-array>
40         Definition: A phandle and power domain specifier pairs to the
41                     power domain which is responsible for collapsing
42                     and restoring power to the peripheral.
43 - iommus:
44         Usage: required
45         Value type: <prop-encoded-array>
46         Definition: A list of phandle and IOMMU specifier pairs.
47 - memory-region:
48         Usage: required
49         Value type: <phandle>
50         Definition: reference to the reserved-memory for the firmware
51                     memory region.
52
53 * Subnodes
54 The Venus video-codec node must contain two subnodes representing
55 video-decoder and video-encoder.
56
57 Every of video-encoder or video-decoder subnode should have:
58
59 - compatible:
60         Usage: required
61         Value type: <stringlist>
62         Definition: Value should contain "venus-decoder" or "venus-encoder"
63 - clocks:
64         Usage: required for msm8996
65         Value type: <prop-encoded-array>
66         Definition: A List of phandle and clock specifier pairs as listed
67                     in clock-names property.
68 - clock-names:
69         Usage: required for msm8996
70         Value type: <stringlist>
71         Definition: Should contain the following entries:
72                 - "core"        Subcore video accelerator clock
73
74 - power-domains:
75         Usage: required for msm8996
76         Value type: <prop-encoded-array>
77         Definition: A phandle and power domain specifier pairs to the
78                     power domain which is responsible for collapsing
79                     and restoring power to the subcore.
80
81 * An Example
82         video-codec@1d00000 {
83                 compatible = "qcom,msm8916-venus";
84                 reg = <0x01d00000 0xff000>;
85                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
86                 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
87                          <&gcc GCC_VENUS0_AHB_CLK>,
88                          <&gcc GCC_VENUS0_AXI_CLK>;
89                 clock-names = "core", "iface", "bus";
90                 power-domains = <&gcc VENUS_GDSC>;
91                 iommus = <&apps_iommu 5>;
92                 memory-region = <&venus_mem>;
93
94                 video-decoder {
95                         compatible = "venus-decoder";
96                         clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
97                         clock-names = "core";
98                         power-domains = <&mmcc VENUS_CORE0_GDSC>;
99                 };
100
101                 video-encoder {
102                         compatible = "venus-encoder";
103                         clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
104                         clock-names = "core";
105                         power-domains = <&mmcc VENUS_CORE1_GDSC>;
106                 };
107         };