Merge tag 'fbdev-v5.0-rc3' of git://github.com/bzolnier/linux
[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                 - "qcom,sdm845-venus"
10 - reg:
11         Usage: required
12         Value type: <prop-encoded-array>
13         Definition: Register base address and length of the register map.
14 - interrupts:
15         Usage: required
16         Value type: <prop-encoded-array>
17         Definition: Should contain interrupt line number.
18 - clocks:
19         Usage: required
20         Value type: <prop-encoded-array>
21         Definition: A List of phandle and clock specifier pairs as listed
22                     in clock-names property.
23 - clock-names:
24         Usage: required for msm8916
25         Value type: <stringlist>
26         Definition: Should contain the following entries:
27                 - "core"        Core video accelerator clock
28                 - "iface"       Video accelerator AHB clock
29                 - "bus"         Video accelerator AXI clock
30 - clock-names:
31         Usage: required for msm8996
32         Value type: <stringlist>
33         Definition: Should contain the following entries:
34                 - "core"        Core video accelerator clock
35                 - "iface"       Video accelerator AHB clock
36                 - "bus"         Video accelerator AXI clock
37                 - "mbus"        Video MAXI clock
38 - power-domains:
39         Usage: required
40         Value type: <prop-encoded-array>
41         Definition: A phandle and power domain specifier pairs to the
42                     power domain which is responsible for collapsing
43                     and restoring power to the peripheral.
44 - iommus:
45         Usage: required
46         Value type: <prop-encoded-array>
47         Definition: A list of phandle and IOMMU specifier pairs.
48 - memory-region:
49         Usage: required
50         Value type: <phandle>
51         Definition: reference to the reserved-memory for the firmware
52                     memory region.
53
54 * Subnodes
55 The Venus video-codec node must contain two subnodes representing
56 video-decoder and video-encoder, and one optional firmware subnode.
57 Firmware subnode is needed when the platform does not have TrustZone.
58
59 Every of video-encoder or video-decoder subnode should have:
60
61 - compatible:
62         Usage: required
63         Value type: <stringlist>
64         Definition: Value should contain "venus-decoder" or "venus-encoder"
65 - clocks:
66         Usage: required for msm8996
67         Value type: <prop-encoded-array>
68         Definition: A List of phandle and clock specifier pairs as listed
69                     in clock-names property.
70 - clock-names:
71         Usage: required for msm8996
72         Value type: <stringlist>
73         Definition: Should contain the following entries:
74                 - "core"        Subcore video accelerator clock
75
76 - power-domains:
77         Usage: required for msm8996
78         Value type: <prop-encoded-array>
79         Definition: A phandle and power domain specifier pairs to the
80                     power domain which is responsible for collapsing
81                     and restoring power to the subcore.
82
83 The firmware subnode must have:
84
85 - iommus:
86         Usage: required
87         Value type: <prop-encoded-array>
88         Definition: A list of phandle and IOMMU specifier pairs.
89
90 * An Example
91         video-codec@1d00000 {
92                 compatible = "qcom,msm8916-venus";
93                 reg = <0x01d00000 0xff000>;
94                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
95                 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
96                          <&gcc GCC_VENUS0_AHB_CLK>,
97                          <&gcc GCC_VENUS0_AXI_CLK>;
98                 clock-names = "core", "iface", "bus";
99                 power-domains = <&gcc VENUS_GDSC>;
100                 iommus = <&apps_iommu 5>;
101                 memory-region = <&venus_mem>;
102
103                 video-decoder {
104                         compatible = "venus-decoder";
105                         clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
106                         clock-names = "core";
107                         power-domains = <&mmcc VENUS_CORE0_GDSC>;
108                 };
109
110                 video-encoder {
111                         compatible = "venus-encoder";
112                         clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
113                         clock-names = "core";
114                         power-domains = <&mmcc VENUS_CORE1_GDSC>;
115                 };
116
117                 video-firmware {
118                         iommus = <&apps_iommu 0x10b2 0x0>;
119                 };
120         };