mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 10:56:40 +00:00
0b34189b08
The first version of the bindings is missing a generic compatible that is used by the base node (GX), and then extended by the SoC device trees (GXBB, GXL, GXM) Also change the example to use "video-codec" instead of "video-decoder", as the former is the one used in almost all cases when it comes to video decode/encode accelerators. Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Kevin Hilman <khilman@baylibre.com>
73 lines
2.1 KiB
Plaintext
73 lines
2.1 KiB
Plaintext
Amlogic Video Decoder
|
|
================================
|
|
|
|
The video decoding IP lies within the DOS memory region,
|
|
except for the hardware bitstream parser that makes use of an undocumented
|
|
region.
|
|
|
|
It makes use of the following blocks:
|
|
|
|
- ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks
|
|
then feed from this VIFIFO.
|
|
- VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1.
|
|
- VDEC_HEVC can decode HEVC and VP9.
|
|
|
|
Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run
|
|
concurrently.
|
|
|
|
Device Tree Bindings:
|
|
---------------------
|
|
|
|
VDEC: Video Decoder
|
|
--------------------------
|
|
|
|
Required properties:
|
|
- compatible: value should be different for each SoC family as :
|
|
- GXBB (S905) : "amlogic,gxbb-vdec"
|
|
- GXL (S905X, S905D) : "amlogic,gxl-vdec"
|
|
- GXM (S912) : "amlogic,gxm-vdec"
|
|
followed by the common "amlogic,gx-vdec"
|
|
- reg: base address and size of he following memory-mapped regions :
|
|
- dos
|
|
- esparser
|
|
- reg-names: should contain the names of the previous memory regions
|
|
- interrupts: should contain the following IRQs:
|
|
- vdec
|
|
- esparser
|
|
- interrupt-names: should contain the names of the previous interrupts
|
|
- amlogic,ao-sysctrl: should point to the AOBUS sysctrl node
|
|
- amlogic,canvas: should point to a canvas provider node
|
|
- clocks: should contain the following clocks :
|
|
- dos_parser
|
|
- dos
|
|
- vdec_1
|
|
- vdec_hevc
|
|
- clock-names: should contain the names of the previous clocks
|
|
- resets: should contain the parser reset
|
|
- reset-names: should be "esparser"
|
|
|
|
Example:
|
|
|
|
vdec: video-codec@c8820000 {
|
|
compatible = "amlogic,gxbb-vdec", "amlogic,gx-vdec";
|
|
reg = <0x0 0xc8820000 0x0 0x10000>,
|
|
<0x0 0xc110a580 0x0 0xe4>;
|
|
reg-names = "dos", "esparser";
|
|
|
|
interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
|
|
<GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-names = "vdec", "esparser";
|
|
|
|
amlogic,ao-sysctrl = <&sysctrl_AO>;
|
|
amlogic,canvas = <&canvas>;
|
|
|
|
clocks = <&clkc CLKID_DOS_PARSER>,
|
|
<&clkc CLKID_DOS>,
|
|
<&clkc CLKID_VDEC_1>,
|
|
<&clkc CLKID_VDEC_HEVC>;
|
|
clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
|
|
|
|
resets = <&reset RESET_PARSER>;
|
|
reset-names = "esparser";
|
|
};
|