Files
linux/Documentation/devicetree/bindings/media/rockchip,vdec.yaml
Cristian Ciocaltea 35c8178ed2 media: dt-bindings: rockchip,vdec: Add alternative reg-names order for RK35{76,88}
With the introduction of the RK3588 SoC, and RK3576 afterwards, three
register blocks have been provided for the video decoder unit instead of
just one, which are further referenced in vendor's datasheet by 'link
table', 'function' and 'cache'.  The former is present at the top of the
listing, starting at video decoder unit base address.

However, while documenting RK3588, the binding broke the convention
expecting the unit address to indicate the start of the primary register
range, i.e. the 'function' block got listed before the 'link' one.

Since the binding changes have been already released and a fix would
bring up an ABI break, mark the current 'reg-names' ordering as
deprecated and introduce an alternative 'link,function,cache' listing
which follows the address-based ordering according to the TRM.

Additionally, drop the 'reg' description items as the order is not fixed
anymore, while the information they offer is not very relevant anyway.

It's worth noting there are currently no (known) users impacted by these
binding changes, since the video decoder support for the aforementioned
SoCs in mainline driver and devicetrees hasn't been released yet - it
landed in v7.0-rc1 while all DTS updates resulting from this will be
handled before v7.0 is out.

Fixes: c6ffb7e1fb ("media: dt-bindings: rockchip: Document RK3588 Video Decoder bindings")
Fixes: a5c4a65264 ("media: dt-bindings: rockchip: Add RK3576 Video Decoder bindings")
Cc: stable@vger.kernel.org
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-03-23 11:18:34 +01:00

165 lines
3.7 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,rk3288-vdec
- 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
maxItems: 3
reg-names:
oneOf:
- items:
- const: link
- const: function
- const: cache
- items:
- const: function
- const: link
- const: cache
deprecated: true
description: Use link,function,cache block order instead.
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
required:
- reg-names
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>;
};
...