linux-loongson/Documentation/devicetree/bindings/media/rockchip,vdec.yaml
Detlev Casanova a5c4a65264 media: dt-bindings: rockchip: Add RK3576 Video Decoder bindings
The video decoder in RK3576 (vdpu383) is described the same way as the
one in RK3588 (vdpu381). A new compatible is added as the driver
implementation will be different.

Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2025-07-12 08:34:48 +02:00

158 lines
3.6 KiB
YAML

# 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 <heiko@sntech.de>
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 <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/rk3399-cru.h>
#include <dt-bindings/power/rk3399-power.h>
vdec: video-codec@ff660000 {
compatible = "rockchip,rk3399-vdec";
reg = <0xff660000 0x400>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
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>;
};
...