]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/media/amlogic,gx-vdec.yaml
Import DTS from Linux 5.8
[FreeBSD/FreeBSD.git] / Bindings / media / amlogic,gx-vdec.yaml
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 <narmstrong@baylibre.com>
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     maxItems: 5
71     items:
72       - const: dos_parser
73       - const: dos
74       - const: vdec_1
75       - const: vdec_hevc
76       - const: vdec_hevcf
77
78   amlogic,ao-sysctrl:
79     description: should point to the AOBUS sysctrl node
80     $ref: /schemas/types.yaml#/definitions/phandle
81
82   amlogic,canvas:
83     description: should point to a canvas provider node
84     $ref: /schemas/types.yaml#/definitions/phandle
85
86 allOf:
87   - if:
88       properties:
89         compatible:
90           contains:
91             enum:
92               - amlogic,gx-vdec
93
94     then:
95       properties:
96         clock-names:
97           maxItems: 4
98
99   - if:
100       properties:
101         compatible:
102           contains:
103             enum:
104               - amlogic,g12a-vdec
105               - amlogic,sm1-vdec
106
107     then:
108       properties:
109         clock-names:
110           minItems: 5
111
112 required:
113   - compatible
114   - reg
115   - reg-names
116   - interrupts
117   - interrupt-names
118   - clocks
119   - clock-names
120   - resets
121   - reset-names
122   - amlogic,ao-sysctrl
123   - amlogic,canvas
124
125 additionalProperties: false
126
127 examples:
128   - |
129     vdec: video-decoder@c8820000 {
130           compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
131           reg = <0xc8820000 0x10000>, <0xc110a580 0xe4>;
132           reg-names = "dos", "esparser";
133           interrupts = <44>, <32>;
134           interrupt-names = "vdec", "esparser";
135           clocks = <&clk_dos_parser> ,<&clk_dos>, <&clk_vdec_1>, <&clk_vdec_hevc>;
136           clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
137           resets = <&reset_parser>;
138           reset-names = "esparser";
139           amlogic,ao-sysctrl = <&sysctrl_AO>;
140           amlogic,canvas = <&canvas>;
141     };