mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
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>
165 lines
3.7 KiB
YAML
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>;
|
|
};
|
|
|
|
...
|