Merge tag '9p-for-5.3' of git://github.com/martinetd/linux
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / media / amlogic,vdec.txt
1 Amlogic Video Decoder
2 ================================
3
4 The video decoding IP lies within the DOS memory region,
5 except for the hardware bitstream parser that makes use of an undocumented
6 region.
7
8 It makes use of the following blocks:
9
10 - ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks
11 then feed from this VIFIFO.
12 - VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1.
13 - VDEC_HEVC can decode HEVC and VP9.
14
15 Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run
16 concurrently.
17
18 Device Tree Bindings:
19 ---------------------
20
21 VDEC: Video Decoder
22 --------------------------
23
24 Required properties:
25 - compatible: value should be different for each SoC family as :
26         - GXBB (S905) : "amlogic,gxbb-vdec"
27         - GXL (S905X, S905D) : "amlogic,gxl-vdec"
28         - GXM (S912) : "amlogic,gxm-vdec"
29 - reg: base address and size of he following memory-mapped regions :
30         - dos
31         - esparser
32 - reg-names: should contain the names of the previous memory regions
33 - interrupts: should contain the following IRQs:
34         - vdec
35         - esparser
36 - interrupt-names: should contain the names of the previous interrupts
37 - amlogic,ao-sysctrl: should point to the AOBUS sysctrl node
38 - amlogic,canvas: should point to a canvas provider node
39 - clocks: should contain the following clocks :
40         - dos_parser
41         - dos
42         - vdec_1
43         - vdec_hevc
44 - clock-names: should contain the names of the previous clocks
45 - resets: should contain the parser reset
46 - reset-names: should be "esparser"
47
48 Example:
49
50 vdec: video-decoder@c8820000 {
51         compatible = "amlogic,gxbb-vdec";
52         reg = <0x0 0xc8820000 0x0 0x10000>,
53               <0x0 0xc110a580 0x0 0xe4>;
54         reg-names = "dos", "esparser";
55
56         interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
57                      <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
58         interrupt-names = "vdec", "esparser";
59
60         amlogic,ao-sysctrl = <&sysctrl_AO>;
61         amlogic,canvas = <&canvas>;
62
63         clocks = <&clkc CLKID_DOS_PARSER>,
64                  <&clkc CLKID_DOS>,
65                  <&clkc CLKID_VDEC_1>,
66                  <&clkc CLKID_VDEC_HEVC>;
67         clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
68
69         resets = <&reset RESET_PARSER>;
70         reset-names = "esparser";
71 };