]>
Commit | Line | Data |
---|---|---|
53633a89 TR |
1 | # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
2 | # Copyright 2019 BayLibre, SAS | |
3 | %YAML 1.2 | |
4 | --- | |
5 | $id: http://devicetree.org/schemas/media/amlogic,gx-vdec.yaml# | |
6 | $schema: http://devicetree.org/meta-schemas/core.yaml# | |
7 | ||
8 | title: Amlogic Video Decoder | |
9 | ||
10 | maintainers: | |
11 | - Neil Armstrong <neil.armstrong@linaro.org> | |
12 | - Maxime Jourdan <mjourdan@baylibre.com> | |
13 | ||
14 | description: | | |
15 | The video decoding IP lies within the DOS memory region, | |
16 | except for the hardware bitstream parser that makes use of an undocumented | |
17 | region. | |
18 | ||
19 | It makes use of the following blocks: | |
20 | - ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks | |
21 | then feed from this VIFIFO. | |
22 | - VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1. | |
23 | - VDEC_HEVC can decode HEVC and VP9. | |
24 | ||
25 | Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run | |
26 | concurrently. | |
27 | ||
28 | properties: | |
29 | compatible: | |
30 | oneOf: | |
31 | - items: | |
32 | - enum: | |
33 | - amlogic,gxbb-vdec # GXBB (S905) | |
34 | - amlogic,gxl-vdec # GXL (S905X, S905D) | |
35 | - amlogic,gxm-vdec # GXM (S912) | |
36 | - const: amlogic,gx-vdec | |
37 | - enum: | |
38 | - amlogic,g12a-vdec # G12A (S905X2, S905D2) | |
39 | - amlogic,sm1-vdec # SM1 (S905X3, S905D3) | |
40 | ||
41 | interrupts: | |
42 | minItems: 2 | |
43 | ||
44 | interrupt-names: | |
45 | items: | |
46 | - const: vdec | |
47 | - const: esparser | |
48 | ||
49 | reg: | |
50 | minItems: 2 | |
51 | ||
52 | reg-names: | |
53 | items: | |
54 | - const: dos | |
55 | - const: esparser | |
56 | ||
57 | resets: | |
58 | maxItems: 1 | |
59 | ||
60 | reset-names: | |
61 | items: | |
62 | - const: esparser | |
63 | ||
64 | clocks: | |
65 | minItems: 4 | |
66 | maxItems: 5 | |
67 | ||
68 | clock-names: | |
69 | minItems: 4 | |
70 | items: | |
71 | - const: dos_parser | |
72 | - const: dos | |
73 | - const: vdec_1 | |
74 | - const: vdec_hevc | |
75 | - const: vdec_hevcf | |
76 | ||
77 | amlogic,ao-sysctrl: | |
78 | description: should point to the AOBUS sysctrl node | |
79 | $ref: /schemas/types.yaml#/definitions/phandle | |
80 | ||
81 | amlogic,canvas: | |
82 | description: should point to a canvas provider node | |
83 | $ref: /schemas/types.yaml#/definitions/phandle | |
84 | ||
85 | allOf: | |
86 | - if: | |
87 | properties: | |
88 | compatible: | |
89 | contains: | |
90 | enum: | |
91 | - amlogic,gx-vdec | |
92 | ||
93 | then: | |
94 | properties: | |
95 | clock-names: | |
96 | maxItems: 4 | |
97 | ||
98 | - if: | |
99 | properties: | |
100 | compatible: | |
101 | contains: | |
102 | enum: | |
103 | - amlogic,g12a-vdec | |
104 | - amlogic,sm1-vdec | |
105 | ||
106 | then: | |
107 | properties: | |
108 | clock-names: | |
109 | minItems: 5 | |
110 | ||
111 | required: | |
112 | - compatible | |
113 | - reg | |
114 | - reg-names | |
115 | - interrupts | |
116 | - interrupt-names | |
117 | - clocks | |
118 | - clock-names | |
119 | - resets | |
120 | - reset-names | |
121 | - amlogic,ao-sysctrl | |
122 | - amlogic,canvas | |
123 | ||
124 | additionalProperties: false | |
125 | ||
126 | examples: | |
127 | - | | |
128 | vdec: video-decoder@c8820000 { | |
129 | compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec"; | |
130 | reg = <0xc8820000 0x10000>, <0xc110a580 0xe4>; | |
131 | reg-names = "dos", "esparser"; | |
132 | interrupts = <44>, <32>; | |
133 | interrupt-names = "vdec", "esparser"; | |
134 | clocks = <&clk_dos_parser> ,<&clk_dos>, <&clk_vdec_1>, <&clk_vdec_hevc>; | |
135 | clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc"; | |
136 | resets = <&reset_parser>; | |
137 | reset-names = "esparser"; | |
138 | amlogic,ao-sysctrl = <&sysctrl_AO>; | |
139 | amlogic,canvas = <&canvas>; | |
140 | }; |