0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 # Copyright 2019 BayLibre, SAS
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/media/amlogic,gx-vdec.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007
0008 title: Amlogic Video Decoder
0009
0010 maintainers:
0011 - Neil Armstrong <neil.armstrong@linaro.org>
0012 - Maxime Jourdan <mjourdan@baylibre.com>
0013
0014 description: |
0015 The video decoding IP lies within the DOS memory region,
0016 except for the hardware bitstream parser that makes use of an undocumented
0017 region.
0018
0019 It makes use of the following blocks:
0020 - ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks
0021 then feed from this VIFIFO.
0022 - VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1.
0023 - VDEC_HEVC can decode HEVC and VP9.
0024
0025 Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run
0026 concurrently.
0027
0028 properties:
0029 compatible:
0030 oneOf:
0031 - items:
0032 - enum:
0033 - amlogic,gxbb-vdec # GXBB (S905)
0034 - amlogic,gxl-vdec # GXL (S905X, S905D)
0035 - amlogic,gxm-vdec # GXM (S912)
0036 - const: amlogic,gx-vdec
0037 - enum:
0038 - amlogic,g12a-vdec # G12A (S905X2, S905D2)
0039 - amlogic,sm1-vdec # SM1 (S905X3, S905D3)
0040
0041 interrupts:
0042 minItems: 2
0043
0044 interrupt-names:
0045 items:
0046 - const: vdec
0047 - const: esparser
0048
0049 reg:
0050 minItems: 2
0051
0052 reg-names:
0053 items:
0054 - const: dos
0055 - const: esparser
0056
0057 resets:
0058 maxItems: 1
0059
0060 reset-names:
0061 items:
0062 - const: esparser
0063
0064 clocks:
0065 minItems: 4
0066 maxItems: 5
0067
0068 clock-names:
0069 minItems: 4
0070 items:
0071 - const: dos_parser
0072 - const: dos
0073 - const: vdec_1
0074 - const: vdec_hevc
0075 - const: vdec_hevcf
0076
0077 amlogic,ao-sysctrl:
0078 description: should point to the AOBUS sysctrl node
0079 $ref: /schemas/types.yaml#/definitions/phandle
0080
0081 amlogic,canvas:
0082 description: should point to a canvas provider node
0083 $ref: /schemas/types.yaml#/definitions/phandle
0084
0085 allOf:
0086 - if:
0087 properties:
0088 compatible:
0089 contains:
0090 enum:
0091 - amlogic,gx-vdec
0092
0093 then:
0094 properties:
0095 clock-names:
0096 maxItems: 4
0097
0098 - if:
0099 properties:
0100 compatible:
0101 contains:
0102 enum:
0103 - amlogic,g12a-vdec
0104 - amlogic,sm1-vdec
0105
0106 then:
0107 properties:
0108 clock-names:
0109 minItems: 5
0110
0111 required:
0112 - compatible
0113 - reg
0114 - reg-names
0115 - interrupts
0116 - interrupt-names
0117 - clocks
0118 - clock-names
0119 - resets
0120 - reset-names
0121 - amlogic,ao-sysctrl
0122 - amlogic,canvas
0123
0124 additionalProperties: false
0125
0126 examples:
0127 - |
0128 vdec: video-decoder@c8820000 {
0129 compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
0130 reg = <0xc8820000 0x10000>, <0xc110a580 0xe4>;
0131 reg-names = "dos", "esparser";
0132 interrupts = <44>, <32>;
0133 interrupt-names = "vdec", "esparser";
0134 clocks = <&clk_dos_parser> ,<&clk_dos>, <&clk_vdec_1>, <&clk_vdec_hevc>;
0135 clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
0136 resets = <&reset_parser>;
0137 reset-names = "esparser";
0138 amlogic,ao-sysctrl = <&sysctrl_AO>;
0139 amlogic,canvas = <&canvas>;
0140 };