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 = , ; 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"; };