Back to home page

OSCL-LXR

 
 

    


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     };