# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/media/rockchip,vdec.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Rockchip Video Decoder (VDec) maintainers: - Heiko Stuebner description: |- Rockchip SoCs have variants of the same stateless Video Decoder that can decodes H.264, HEVC, VP9 and AV1 streams, depending on the variant. properties: compatible: oneOf: - const: rockchip,rk3399-vdec - const: rockchip,rk3576-vdec - const: rockchip,rk3588-vdec - items: - enum: - rockchip,rk3228-vdec - rockchip,rk3328-vdec - const: rockchip,rk3399-vdec reg: minItems: 1 items: - description: The function configuration registers base - description: The link table configuration registers base - description: The cache configuration registers base reg-names: items: - const: function - const: link - const: cache interrupts: maxItems: 1 clocks: minItems: 4 items: - description: The Video Decoder AXI interface clock - description: The Video Decoder AHB interface clock - description: The Video Decoded CABAC clock - description: The Video Decoder core clock - description: The Video decoder HEVC CABAC clock clock-names: minItems: 4 items: - const: axi - const: ahb - const: cabac - const: core - const: hevc_cabac assigned-clocks: true assigned-clock-rates: true resets: items: - description: The Video Decoder AXI interface reset - description: The Video Decoder AHB interface reset - description: The Video Decoded CABAC reset - description: The Video Decoder core reset - description: The Video decoder HEVC CABAC reset reset-names: items: - const: axi - const: ahb - const: cabac - const: core - const: hevc_cabac power-domains: maxItems: 1 iommus: maxItems: 1 sram: $ref: /schemas/types.yaml#/definitions/phandle description: | phandle to a reserved on-chip SRAM regions. Some SoCs, like rk3588 provide on-chip SRAM to store temporary buffers during decoding. required: - compatible - reg - interrupts - clocks - clock-names - power-domains allOf: - if: properties: compatible: contains: enum: - rockchip,rk3576-vdec - rockchip,rk3588-vdec then: properties: reg: minItems: 3 reg-names: minItems: 3 clocks: minItems: 5 clock-names: minItems: 5 resets: minItems: 5 reset-names: minItems: 5 else: properties: reg: maxItems: 1 reg-names: false clocks: maxItems: 4 clock-names: maxItems: 4 resets: false reset-names: false sram: false additionalProperties: false examples: - | #include #include #include vdec: video-codec@ff660000 { compatible = "rockchip,rk3399-vdec"; reg = <0xff660000 0x400>; interrupts = ; clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>, <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>; clock-names = "axi", "ahb", "cabac", "core"; power-domains = <&power RK3399_PD_VDU>; iommus = <&vdec_mmu>; }; ...