1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
# 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:
maxItems: 1
description:
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>;
};
...
|