1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * RP1 Camera Front End formats definition |
4 | * |
5 | * Copyright (C) 2021-2024 - Raspberry Pi Ltd. |
6 | */ |
7 | #ifndef _CFE_FMTS_H_ |
8 | #define _CFE_FMTS_H_ |
9 | |
10 | #include "cfe.h" |
11 | #include <media/mipi-csi2.h> |
12 | |
13 | static const struct cfe_fmt formats[] = { |
14 | /* YUV Formats */ |
15 | { |
16 | .fourcc = V4L2_PIX_FMT_YUYV, |
17 | .code = MEDIA_BUS_FMT_YUYV8_1X16, |
18 | .depth = 16, |
19 | .csi_dt = MIPI_CSI2_DT_YUV422_8B, |
20 | }, |
21 | { |
22 | .fourcc = V4L2_PIX_FMT_UYVY, |
23 | .code = MEDIA_BUS_FMT_UYVY8_1X16, |
24 | .depth = 16, |
25 | .csi_dt = MIPI_CSI2_DT_YUV422_8B, |
26 | }, |
27 | { |
28 | .fourcc = V4L2_PIX_FMT_YVYU, |
29 | .code = MEDIA_BUS_FMT_YVYU8_1X16, |
30 | .depth = 16, |
31 | .csi_dt = MIPI_CSI2_DT_YUV422_8B, |
32 | }, |
33 | { |
34 | .fourcc = V4L2_PIX_FMT_VYUY, |
35 | .code = MEDIA_BUS_FMT_VYUY8_1X16, |
36 | .depth = 16, |
37 | .csi_dt = MIPI_CSI2_DT_YUV422_8B, |
38 | }, |
39 | { |
40 | /* RGB Formats */ |
41 | .fourcc = V4L2_PIX_FMT_RGB565, /* gggbbbbb rrrrrggg */ |
42 | .code = MEDIA_BUS_FMT_RGB565_2X8_LE, |
43 | .depth = 16, |
44 | .csi_dt = MIPI_CSI2_DT_RGB565, |
45 | }, |
46 | { .fourcc = V4L2_PIX_FMT_RGB565X, /* rrrrrggg gggbbbbb */ |
47 | .code = MEDIA_BUS_FMT_RGB565_2X8_BE, |
48 | .depth = 16, |
49 | .csi_dt = MIPI_CSI2_DT_RGB565, |
50 | }, |
51 | { |
52 | .fourcc = V4L2_PIX_FMT_RGB555, /* gggbbbbb arrrrrgg */ |
53 | .code = MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE, |
54 | .depth = 16, |
55 | .csi_dt = MIPI_CSI2_DT_RGB555, |
56 | }, |
57 | { |
58 | .fourcc = V4L2_PIX_FMT_RGB555X, /* arrrrrgg gggbbbbb */ |
59 | .code = MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE, |
60 | .depth = 16, |
61 | .csi_dt = MIPI_CSI2_DT_RGB555, |
62 | }, |
63 | { |
64 | .fourcc = V4L2_PIX_FMT_RGB24, /* rgb */ |
65 | .code = MEDIA_BUS_FMT_RGB888_1X24, |
66 | .depth = 24, |
67 | .csi_dt = MIPI_CSI2_DT_RGB888, |
68 | }, |
69 | { |
70 | .fourcc = V4L2_PIX_FMT_BGR24, /* bgr */ |
71 | .code = MEDIA_BUS_FMT_BGR888_1X24, |
72 | .depth = 24, |
73 | .csi_dt = MIPI_CSI2_DT_RGB888, |
74 | }, |
75 | { |
76 | .fourcc = V4L2_PIX_FMT_RGB32, /* argb */ |
77 | .code = MEDIA_BUS_FMT_ARGB8888_1X32, |
78 | .depth = 32, |
79 | .csi_dt = 0x0, |
80 | }, |
81 | |
82 | /* Bayer Formats */ |
83 | { |
84 | .fourcc = V4L2_PIX_FMT_SBGGR8, |
85 | .code = MEDIA_BUS_FMT_SBGGR8_1X8, |
86 | .depth = 8, |
87 | .csi_dt = MIPI_CSI2_DT_RAW8, |
88 | .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR }, |
89 | }, |
90 | { |
91 | .fourcc = V4L2_PIX_FMT_SGBRG8, |
92 | .code = MEDIA_BUS_FMT_SGBRG8_1X8, |
93 | .depth = 8, |
94 | .csi_dt = MIPI_CSI2_DT_RAW8, |
95 | .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG }, |
96 | }, |
97 | { |
98 | .fourcc = V4L2_PIX_FMT_SGRBG8, |
99 | .code = MEDIA_BUS_FMT_SGRBG8_1X8, |
100 | .depth = 8, |
101 | .csi_dt = MIPI_CSI2_DT_RAW8, |
102 | .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG }, |
103 | }, |
104 | { |
105 | .fourcc = V4L2_PIX_FMT_SRGGB8, |
106 | .code = MEDIA_BUS_FMT_SRGGB8_1X8, |
107 | .depth = 8, |
108 | .csi_dt = MIPI_CSI2_DT_RAW8, |
109 | .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB }, |
110 | }, |
111 | { |
112 | .fourcc = V4L2_PIX_FMT_SBGGR10P, |
113 | .code = MEDIA_BUS_FMT_SBGGR10_1X10, |
114 | .depth = 10, |
115 | .csi_dt = MIPI_CSI2_DT_RAW10, |
116 | .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR }, |
117 | }, |
118 | { |
119 | .fourcc = V4L2_PIX_FMT_SGBRG10P, |
120 | .code = MEDIA_BUS_FMT_SGBRG10_1X10, |
121 | .depth = 10, |
122 | .csi_dt = MIPI_CSI2_DT_RAW10, |
123 | .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG }, |
124 | }, |
125 | { |
126 | .fourcc = V4L2_PIX_FMT_SGRBG10P, |
127 | .code = MEDIA_BUS_FMT_SGRBG10_1X10, |
128 | .depth = 10, |
129 | .csi_dt = MIPI_CSI2_DT_RAW10, |
130 | .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG }, |
131 | }, |
132 | { |
133 | .fourcc = V4L2_PIX_FMT_SRGGB10P, |
134 | .code = MEDIA_BUS_FMT_SRGGB10_1X10, |
135 | .depth = 10, |
136 | .csi_dt = MIPI_CSI2_DT_RAW10, |
137 | .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB }, |
138 | }, |
139 | { |
140 | .fourcc = V4L2_PIX_FMT_SBGGR12P, |
141 | .code = MEDIA_BUS_FMT_SBGGR12_1X12, |
142 | .depth = 12, |
143 | .csi_dt = MIPI_CSI2_DT_RAW12, |
144 | .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR }, |
145 | }, |
146 | { |
147 | .fourcc = V4L2_PIX_FMT_SGBRG12P, |
148 | .code = MEDIA_BUS_FMT_SGBRG12_1X12, |
149 | .depth = 12, |
150 | .csi_dt = MIPI_CSI2_DT_RAW12, |
151 | .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG }, |
152 | }, |
153 | { |
154 | .fourcc = V4L2_PIX_FMT_SGRBG12P, |
155 | .code = MEDIA_BUS_FMT_SGRBG12_1X12, |
156 | .depth = 12, |
157 | .csi_dt = MIPI_CSI2_DT_RAW12, |
158 | .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG }, |
159 | }, |
160 | { |
161 | .fourcc = V4L2_PIX_FMT_SRGGB12P, |
162 | .code = MEDIA_BUS_FMT_SRGGB12_1X12, |
163 | .depth = 12, |
164 | .csi_dt = MIPI_CSI2_DT_RAW12, |
165 | .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB }, |
166 | }, |
167 | { |
168 | .fourcc = V4L2_PIX_FMT_SBGGR14P, |
169 | .code = MEDIA_BUS_FMT_SBGGR14_1X14, |
170 | .depth = 14, |
171 | .csi_dt = MIPI_CSI2_DT_RAW14, |
172 | .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR }, |
173 | }, |
174 | { |
175 | .fourcc = V4L2_PIX_FMT_SGBRG14P, |
176 | .code = MEDIA_BUS_FMT_SGBRG14_1X14, |
177 | .depth = 14, |
178 | .csi_dt = MIPI_CSI2_DT_RAW14, |
179 | .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG }, |
180 | }, |
181 | { |
182 | .fourcc = V4L2_PIX_FMT_SGRBG14P, |
183 | .code = MEDIA_BUS_FMT_SGRBG14_1X14, |
184 | .depth = 14, |
185 | .csi_dt = MIPI_CSI2_DT_RAW14, |
186 | .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG }, |
187 | }, |
188 | { |
189 | .fourcc = V4L2_PIX_FMT_SRGGB14P, |
190 | .code = MEDIA_BUS_FMT_SRGGB14_1X14, |
191 | .depth = 14, |
192 | .csi_dt = MIPI_CSI2_DT_RAW14, |
193 | .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB }, |
194 | }, |
195 | { |
196 | .fourcc = V4L2_PIX_FMT_SBGGR16, |
197 | .code = MEDIA_BUS_FMT_SBGGR16_1X16, |
198 | .depth = 16, |
199 | .csi_dt = MIPI_CSI2_DT_RAW16, |
200 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
201 | .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR }, |
202 | }, |
203 | { |
204 | .fourcc = V4L2_PIX_FMT_SGBRG16, |
205 | .code = MEDIA_BUS_FMT_SGBRG16_1X16, |
206 | .depth = 16, |
207 | .csi_dt = MIPI_CSI2_DT_RAW16, |
208 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
209 | .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG }, |
210 | }, |
211 | { |
212 | .fourcc = V4L2_PIX_FMT_SGRBG16, |
213 | .code = MEDIA_BUS_FMT_SGRBG16_1X16, |
214 | .depth = 16, |
215 | .csi_dt = MIPI_CSI2_DT_RAW16, |
216 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
217 | .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG }, |
218 | }, |
219 | { |
220 | .fourcc = V4L2_PIX_FMT_SRGGB16, |
221 | .code = MEDIA_BUS_FMT_SRGGB16_1X16, |
222 | .depth = 16, |
223 | .csi_dt = MIPI_CSI2_DT_RAW16, |
224 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
225 | .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB }, |
226 | }, |
227 | /* PiSP Compressed Mode 1 */ |
228 | { |
229 | .fourcc = V4L2_PIX_FMT_PISP_COMP1_RGGB, |
230 | .code = MEDIA_BUS_FMT_SRGGB16_1X16, |
231 | .depth = 8, |
232 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
233 | }, |
234 | { |
235 | .fourcc = V4L2_PIX_FMT_PISP_COMP1_BGGR, |
236 | .code = MEDIA_BUS_FMT_SBGGR16_1X16, |
237 | .depth = 8, |
238 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
239 | }, |
240 | { |
241 | .fourcc = V4L2_PIX_FMT_PISP_COMP1_GBRG, |
242 | .code = MEDIA_BUS_FMT_SGBRG16_1X16, |
243 | .depth = 8, |
244 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
245 | }, |
246 | { |
247 | .fourcc = V4L2_PIX_FMT_PISP_COMP1_GRBG, |
248 | .code = MEDIA_BUS_FMT_SGRBG16_1X16, |
249 | .depth = 8, |
250 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
251 | }, |
252 | /* Greyscale format */ |
253 | { |
254 | .fourcc = V4L2_PIX_FMT_GREY, |
255 | .code = MEDIA_BUS_FMT_Y8_1X8, |
256 | .depth = 8, |
257 | .csi_dt = MIPI_CSI2_DT_RAW8, |
258 | .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO }, |
259 | }, |
260 | { |
261 | .fourcc = V4L2_PIX_FMT_Y10P, |
262 | .code = MEDIA_BUS_FMT_Y10_1X10, |
263 | .depth = 10, |
264 | .csi_dt = MIPI_CSI2_DT_RAW10, |
265 | .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO }, |
266 | }, |
267 | { |
268 | .fourcc = V4L2_PIX_FMT_Y12P, |
269 | .code = MEDIA_BUS_FMT_Y12_1X12, |
270 | .depth = 12, |
271 | .csi_dt = MIPI_CSI2_DT_RAW12, |
272 | .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO }, |
273 | }, |
274 | { |
275 | .fourcc = V4L2_PIX_FMT_Y14P, |
276 | .code = MEDIA_BUS_FMT_Y14_1X14, |
277 | .depth = 14, |
278 | .csi_dt = MIPI_CSI2_DT_RAW14, |
279 | .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO }, |
280 | }, |
281 | { |
282 | .fourcc = V4L2_PIX_FMT_Y16, |
283 | .code = MEDIA_BUS_FMT_Y16_1X16, |
284 | .depth = 16, |
285 | .csi_dt = MIPI_CSI2_DT_RAW16, |
286 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
287 | .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO }, |
288 | }, |
289 | { |
290 | .fourcc = V4L2_PIX_FMT_PISP_COMP1_MONO, |
291 | .code = MEDIA_BUS_FMT_Y16_1X16, |
292 | .depth = 8, |
293 | .flags = CFE_FORMAT_FLAG_FE_OUT, |
294 | }, |
295 | |
296 | /* Embedded data formats */ |
297 | { |
298 | .fourcc = V4L2_META_FMT_GENERIC_8, |
299 | .code = MEDIA_BUS_FMT_META_8, |
300 | .depth = 8, |
301 | .csi_dt = MIPI_CSI2_DT_EMBEDDED_8B, |
302 | .flags = CFE_FORMAT_FLAG_META_CAP, |
303 | }, |
304 | { |
305 | .fourcc = V4L2_META_FMT_GENERIC_CSI2_10, |
306 | .code = MEDIA_BUS_FMT_META_10, |
307 | .depth = 10, |
308 | .csi_dt = MIPI_CSI2_DT_EMBEDDED_8B, |
309 | .flags = CFE_FORMAT_FLAG_META_CAP, |
310 | }, |
311 | { |
312 | .fourcc = V4L2_META_FMT_GENERIC_CSI2_12, |
313 | .code = MEDIA_BUS_FMT_META_12, |
314 | .depth = 12, |
315 | .csi_dt = MIPI_CSI2_DT_EMBEDDED_8B, |
316 | .flags = CFE_FORMAT_FLAG_META_CAP, |
317 | }, |
318 | |
319 | /* Frontend formats */ |
320 | { |
321 | .fourcc = V4L2_META_FMT_RPI_FE_CFG, |
322 | .code = MEDIA_BUS_FMT_FIXED, |
323 | .flags = CFE_FORMAT_FLAG_META_OUT, |
324 | }, |
325 | { |
326 | .fourcc = V4L2_META_FMT_RPI_FE_STATS, |
327 | .code = MEDIA_BUS_FMT_FIXED, |
328 | .flags = CFE_FORMAT_FLAG_META_CAP, |
329 | }, |
330 | }; |
331 | |
332 | #endif /* _CFE_FMTS_H_ */ |
333 | |