]> git.ipfire.org Git - thirdparty/u-boot.git/blob - Bindings/media/amphion,vpu.yaml
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / Bindings / media / amphion,vpu.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/media/amphion,vpu.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Amphion VPU codec IP
9
10 maintainers:
11 - Ming Qian <ming.qian@nxp.com>
12 - Shijie Qin <shijie.qin@nxp.com>
13
14 description: |-
15 The Amphion MXC video encoder(Windsor) and decoder(Malone) accelerators present
16 on NXP i.MX8Q SoCs.
17
18 properties:
19 $nodename:
20 pattern: "^vpu@[0-9a-f]+$"
21
22 compatible:
23 items:
24 - enum:
25 - nxp,imx8qm-vpu
26 - nxp,imx8qxp-vpu
27
28 reg:
29 maxItems: 1
30
31 power-domains:
32 maxItems: 1
33
34 "#address-cells":
35 const: 1
36
37 "#size-cells":
38 const: 1
39
40 ranges: true
41
42 patternProperties:
43 "^mailbox@[0-9a-f]+$":
44 description:
45 Each vpu encoder or decoder correspond a MU, which used for communication
46 between driver and firmware. Implement via mailbox on driver.
47 $ref: ../mailbox/fsl,mu.yaml#
48
49
50 "^vpu-core@[0-9a-f]+$":
51 description:
52 Each core correspond a decoder or encoder, need to configure them
53 separately. NXP i.MX8QM SoC has one decoder and two encoder, i.MX8QXP SoC
54 has one decoder and one encoder.
55 type: object
56
57 properties:
58 compatible:
59 items:
60 - enum:
61 - nxp,imx8q-vpu-decoder
62 - nxp,imx8q-vpu-encoder
63
64 reg:
65 maxItems: 1
66
67 power-domains:
68 maxItems: 1
69
70 mbox-names:
71 items:
72 - const: tx0
73 - const: tx1
74 - const: rx
75
76 mboxes:
77 description:
78 List of phandle of 2 MU channels for tx, 1 MU channel for rx.
79 maxItems: 3
80
81 memory-region:
82 description:
83 Phandle to the reserved memory nodes to be associated with the
84 remoteproc device. The reserved memory nodes should be carveout nodes,
85 and should be defined as per the bindings in
86 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
87 items:
88 - description: region reserved for firmware image sections.
89 - description: region used for RPC shared memory between firmware and
90 driver.
91
92 required:
93 - compatible
94 - reg
95 - power-domains
96 - mbox-names
97 - mboxes
98 - memory-region
99
100 additionalProperties: false
101
102 required:
103 - compatible
104 - reg
105 - power-domains
106
107 additionalProperties: false
108
109 examples:
110 # Device node example for i.MX8QM platform:
111 - |
112 #include <dt-bindings/firmware/imx/rsrc.h>
113
114 vpu: vpu@2c000000 {
115 compatible = "nxp,imx8qm-vpu";
116 ranges = <0x2c000000 0x2c000000 0x2000000>;
117 reg = <0x2c000000 0x1000000>;
118 #address-cells = <1>;
119 #size-cells = <1>;
120 power-domains = <&pd IMX_SC_R_VPU>;
121
122 mu_m0: mailbox@2d000000 {
123 compatible = "fsl,imx6sx-mu";
124 reg = <0x2d000000 0x20000>;
125 interrupts = <0 472 4>;
126 #mbox-cells = <2>;
127 power-domains = <&pd IMX_SC_R_VPU_MU_0>;
128 };
129
130 mu1_m0: mailbox@2d020000 {
131 compatible = "fsl,imx6sx-mu";
132 reg = <0x2d020000 0x20000>;
133 interrupts = <0 473 4>;
134 #mbox-cells = <2>;
135 power-domains = <&pd IMX_SC_R_VPU_MU_1>;
136 };
137
138 mu2_m0: mailbox@2d040000 {
139 compatible = "fsl,imx6sx-mu";
140 reg = <0x2d040000 0x20000>;
141 interrupts = <0 474 4>;
142 #mbox-cells = <2>;
143 power-domains = <&pd IMX_SC_R_VPU_MU_2>;
144 };
145
146 vpu_core0: vpu-core@2d080000 {
147 compatible = "nxp,imx8q-vpu-decoder";
148 reg = <0x2d080000 0x10000>;
149 power-domains = <&pd IMX_SC_R_VPU_DEC_0>;
150 mbox-names = "tx0", "tx1", "rx";
151 mboxes = <&mu_m0 0 0>,
152 <&mu_m0 0 1>,
153 <&mu_m0 1 0>;
154 memory-region = <&decoder_boot>, <&decoder_rpc>;
155 };
156
157 vpu_core1: vpu-core@2d090000 {
158 compatible = "nxp,imx8q-vpu-encoder";
159 reg = <0x2d090000 0x10000>;
160 power-domains = <&pd IMX_SC_R_VPU_ENC_0>;
161 mbox-names = "tx0", "tx1", "rx";
162 mboxes = <&mu1_m0 0 0>,
163 <&mu1_m0 0 1>,
164 <&mu1_m0 1 0>;
165 memory-region = <&encoder1_boot>, <&encoder1_rpc>;
166 };
167
168 vpu_core2: vpu-core@2d0a0000 {
169 reg = <0x2d0a0000 0x10000>;
170 compatible = "nxp,imx8q-vpu-encoder";
171 power-domains = <&pd IMX_SC_R_VPU_ENC_1>;
172 mbox-names = "tx0", "tx1", "rx";
173 mboxes = <&mu2_m0 0 0>,
174 <&mu2_m0 0 1>,
175 <&mu2_m0 1 0>;
176 memory-region = <&encoder2_boot>, <&encoder2_rpc>;
177 };
178 };
179
180 ...