# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) # Copyright 2019 BayLibre, SAS %YAML 1.2 --- $id: "http://devicetree.org/schemas/media/amlogic,gx-vdec.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: Amlogic Video Decoder maintainers: - Neil Armstrong <narmstrong@baylibre.com> - Maxime Jourdan <mjourdan@baylibre.com> description: | 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. properties: compatible: oneOf: - items: - enum: - amlogic,gxbb-vdec # GXBB (S905) - amlogic,gxl-vdec # GXL (S905X, S905D) - amlogic,gxm-vdec # GXM (S912) - const: amlogic,gx-vdec - enum: - amlogic,g12a-vdec # G12A (S905X2, S905D2) - amlogic,sm1-vdec # SM1 (S905X3, S905D3) interrupts: minItems: 2 interrupt-names: items: - const: vdec - const: esparser reg: minItems: 2 reg-names: items: - const: dos - const: esparser resets: maxItems: 1 reset-names: items: - const: esparser clocks: minItems: 4 maxItems: 5 clock-names: minItems: 4 items: - const: dos_parser - const: dos - const: vdec_1 - const: vdec_hevc - const: vdec_hevcf amlogic,ao-sysctrl: description: should point to the AOBUS sysctrl node $ref: /schemas/types.yaml#/definitions/phandle amlogic,canvas: description: should point to a canvas provider node $ref: /schemas/types.yaml#/definitions/phandle allOf: - if: properties: compatible: contains: enum: - amlogic,gx-vdec then: properties: clock-names: maxItems: 4 - if: properties: compatible: contains: enum: - amlogic,g12a-vdec - amlogic,sm1-vdec then: properties: clock-names: minItems: 5 required: - compatible - reg - reg-names - interrupts - interrupt-names - clocks - clock-names - resets - reset-names - amlogic,ao-sysctrl - amlogic,canvas additionalProperties: false examples: - | vdec: video-decoder@c8820000 { compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec"; reg = <0xc8820000 0x10000>, <0xc110a580 0xe4>; reg-names = "dos", "esparser"; interrupts = <44>, <32>; interrupt-names = "vdec", "esparser"; clocks = <&clk_dos_parser> ,<&clk_dos>, <&clk_vdec_1>, <&clk_vdec_hevc>; clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc"; resets = <&reset_parser>; reset-names = "esparser"; amlogic,ao-sysctrl = <&sysctrl_AO>; amlogic,canvas = <&canvas>; };