1 /* SPDX-License-Identifier: GPL-2.0 */
3 * RP1 Camera Front End formats definition
5 * Copyright (C) 2021-2024 - Raspberry Pi Ltd.
11 #include <media/mipi-csi2.h>
13 static const struct cfe_fmt formats[] = {
16 .fourcc = V4L2_PIX_FMT_YUYV,
17 .code = MEDIA_BUS_FMT_YUYV8_1X16,
19 .csi_dt = MIPI_CSI2_DT_YUV422_8B,
22 .fourcc = V4L2_PIX_FMT_UYVY,
23 .code = MEDIA_BUS_FMT_UYVY8_1X16,
25 .csi_dt = MIPI_CSI2_DT_YUV422_8B,
28 .fourcc = V4L2_PIX_FMT_YVYU,
29 .code = MEDIA_BUS_FMT_YVYU8_1X16,
31 .csi_dt = MIPI_CSI2_DT_YUV422_8B,
34 .fourcc = V4L2_PIX_FMT_VYUY,
35 .code = MEDIA_BUS_FMT_VYUY8_1X16,
37 .csi_dt = MIPI_CSI2_DT_YUV422_8B,
41 .fourcc = V4L2_PIX_FMT_RGB565, /* gggbbbbb rrrrrggg */
42 .code = MEDIA_BUS_FMT_RGB565_2X8_LE,
44 .csi_dt = MIPI_CSI2_DT_RGB565,
46 { .fourcc = V4L2_PIX_FMT_RGB565X, /* rrrrrggg gggbbbbb */
47 .code = MEDIA_BUS_FMT_RGB565_2X8_BE,
49 .csi_dt = MIPI_CSI2_DT_RGB565,
52 .fourcc = V4L2_PIX_FMT_RGB555, /* gggbbbbb arrrrrgg */
53 .code = MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE,
55 .csi_dt = MIPI_CSI2_DT_RGB555,
58 .fourcc = V4L2_PIX_FMT_RGB555X, /* arrrrrgg gggbbbbb */
59 .code = MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE,
61 .csi_dt = MIPI_CSI2_DT_RGB555,
64 .fourcc = V4L2_PIX_FMT_RGB24, /* rgb */
65 .code = MEDIA_BUS_FMT_RGB888_1X24,
67 .csi_dt = MIPI_CSI2_DT_RGB888,
70 .fourcc = V4L2_PIX_FMT_BGR24, /* bgr */
71 .code = MEDIA_BUS_FMT_BGR888_1X24,
73 .csi_dt = MIPI_CSI2_DT_RGB888,
76 .fourcc = V4L2_PIX_FMT_RGB32, /* argb */
77 .code = MEDIA_BUS_FMT_ARGB8888_1X32,
84 .fourcc = V4L2_PIX_FMT_SBGGR8,
85 .code = MEDIA_BUS_FMT_SBGGR8_1X8,
87 .csi_dt = MIPI_CSI2_DT_RAW8,
88 .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR },
91 .fourcc = V4L2_PIX_FMT_SGBRG8,
92 .code = MEDIA_BUS_FMT_SGBRG8_1X8,
94 .csi_dt = MIPI_CSI2_DT_RAW8,
95 .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG },
98 .fourcc = V4L2_PIX_FMT_SGRBG8,
99 .code = MEDIA_BUS_FMT_SGRBG8_1X8,
101 .csi_dt = MIPI_CSI2_DT_RAW8,
102 .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG },
105 .fourcc = V4L2_PIX_FMT_SRGGB8,
106 .code = MEDIA_BUS_FMT_SRGGB8_1X8,
108 .csi_dt = MIPI_CSI2_DT_RAW8,
109 .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB },
112 .fourcc = V4L2_PIX_FMT_SBGGR10P,
113 .code = MEDIA_BUS_FMT_SBGGR10_1X10,
115 .csi_dt = MIPI_CSI2_DT_RAW10,
116 .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR },
119 .fourcc = V4L2_PIX_FMT_SGBRG10P,
120 .code = MEDIA_BUS_FMT_SGBRG10_1X10,
122 .csi_dt = MIPI_CSI2_DT_RAW10,
123 .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG },
126 .fourcc = V4L2_PIX_FMT_SGRBG10P,
127 .code = MEDIA_BUS_FMT_SGRBG10_1X10,
129 .csi_dt = MIPI_CSI2_DT_RAW10,
130 .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG },
133 .fourcc = V4L2_PIX_FMT_SRGGB10P,
134 .code = MEDIA_BUS_FMT_SRGGB10_1X10,
136 .csi_dt = MIPI_CSI2_DT_RAW10,
137 .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB },
140 .fourcc = V4L2_PIX_FMT_SBGGR12P,
141 .code = MEDIA_BUS_FMT_SBGGR12_1X12,
143 .csi_dt = MIPI_CSI2_DT_RAW12,
144 .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR },
147 .fourcc = V4L2_PIX_FMT_SGBRG12P,
148 .code = MEDIA_BUS_FMT_SGBRG12_1X12,
150 .csi_dt = MIPI_CSI2_DT_RAW12,
151 .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG },
154 .fourcc = V4L2_PIX_FMT_SGRBG12P,
155 .code = MEDIA_BUS_FMT_SGRBG12_1X12,
157 .csi_dt = MIPI_CSI2_DT_RAW12,
158 .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG },
161 .fourcc = V4L2_PIX_FMT_SRGGB12P,
162 .code = MEDIA_BUS_FMT_SRGGB12_1X12,
164 .csi_dt = MIPI_CSI2_DT_RAW12,
165 .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB },
168 .fourcc = V4L2_PIX_FMT_SBGGR14P,
169 .code = MEDIA_BUS_FMT_SBGGR14_1X14,
171 .csi_dt = MIPI_CSI2_DT_RAW14,
172 .remap = { V4L2_PIX_FMT_SBGGR16, V4L2_PIX_FMT_PISP_COMP1_BGGR },
175 .fourcc = V4L2_PIX_FMT_SGBRG14P,
176 .code = MEDIA_BUS_FMT_SGBRG14_1X14,
178 .csi_dt = MIPI_CSI2_DT_RAW14,
179 .remap = { V4L2_PIX_FMT_SGBRG16, V4L2_PIX_FMT_PISP_COMP1_GBRG },
182 .fourcc = V4L2_PIX_FMT_SGRBG14P,
183 .code = MEDIA_BUS_FMT_SGRBG14_1X14,
185 .csi_dt = MIPI_CSI2_DT_RAW14,
186 .remap = { V4L2_PIX_FMT_SGRBG16, V4L2_PIX_FMT_PISP_COMP1_GRBG },
189 .fourcc = V4L2_PIX_FMT_SRGGB14P,
190 .code = MEDIA_BUS_FMT_SRGGB14_1X14,
192 .csi_dt = MIPI_CSI2_DT_RAW14,
193 .remap = { V4L2_PIX_FMT_SRGGB16, V4L2_PIX_FMT_PISP_COMP1_RGGB },
196 .fourcc = V4L2_PIX_FMT_SBGGR16,
197 .code = MEDIA_BUS_FMT_SBGGR16_1X16,
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 },
204 .fourcc = V4L2_PIX_FMT_SGBRG16,
205 .code = MEDIA_BUS_FMT_SGBRG16_1X16,
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 },
212 .fourcc = V4L2_PIX_FMT_SGRBG16,
213 .code = MEDIA_BUS_FMT_SGRBG16_1X16,
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 },
220 .fourcc = V4L2_PIX_FMT_SRGGB16,
221 .code = MEDIA_BUS_FMT_SRGGB16_1X16,
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 },
227 /* PiSP Compressed Mode 1 */
229 .fourcc = V4L2_PIX_FMT_PISP_COMP1_RGGB,
230 .code = MEDIA_BUS_FMT_SRGGB16_1X16,
232 .flags = CFE_FORMAT_FLAG_FE_OUT,
235 .fourcc = V4L2_PIX_FMT_PISP_COMP1_BGGR,
236 .code = MEDIA_BUS_FMT_SBGGR16_1X16,
238 .flags = CFE_FORMAT_FLAG_FE_OUT,
241 .fourcc = V4L2_PIX_FMT_PISP_COMP1_GBRG,
242 .code = MEDIA_BUS_FMT_SGBRG16_1X16,
244 .flags = CFE_FORMAT_FLAG_FE_OUT,
247 .fourcc = V4L2_PIX_FMT_PISP_COMP1_GRBG,
248 .code = MEDIA_BUS_FMT_SGRBG16_1X16,
250 .flags = CFE_FORMAT_FLAG_FE_OUT,
252 /* Greyscale format */
254 .fourcc = V4L2_PIX_FMT_GREY,
255 .code = MEDIA_BUS_FMT_Y8_1X8,
257 .csi_dt = MIPI_CSI2_DT_RAW8,
258 .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO },
261 .fourcc = V4L2_PIX_FMT_Y10P,
262 .code = MEDIA_BUS_FMT_Y10_1X10,
264 .csi_dt = MIPI_CSI2_DT_RAW10,
265 .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO },
268 .fourcc = V4L2_PIX_FMT_Y12P,
269 .code = MEDIA_BUS_FMT_Y12_1X12,
271 .csi_dt = MIPI_CSI2_DT_RAW12,
272 .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO },
275 .fourcc = V4L2_PIX_FMT_Y14P,
276 .code = MEDIA_BUS_FMT_Y14_1X14,
278 .csi_dt = MIPI_CSI2_DT_RAW14,
279 .remap = { V4L2_PIX_FMT_Y16, V4L2_PIX_FMT_PISP_COMP1_MONO },
282 .fourcc = V4L2_PIX_FMT_Y16,
283 .code = MEDIA_BUS_FMT_Y16_1X16,
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 },
290 .fourcc = V4L2_PIX_FMT_PISP_COMP1_MONO,
291 .code = MEDIA_BUS_FMT_Y16_1X16,
293 .flags = CFE_FORMAT_FLAG_FE_OUT,
296 /* Embedded data formats */
298 .fourcc = V4L2_META_FMT_GENERIC_8,
299 .code = MEDIA_BUS_FMT_META_8,
301 .csi_dt = MIPI_CSI2_DT_EMBEDDED_8B,
302 .flags = CFE_FORMAT_FLAG_META_CAP,
305 .fourcc = V4L2_META_FMT_GENERIC_CSI2_10,
306 .code = MEDIA_BUS_FMT_META_10,
308 .csi_dt = MIPI_CSI2_DT_EMBEDDED_8B,
309 .flags = CFE_FORMAT_FLAG_META_CAP,
312 .fourcc = V4L2_META_FMT_GENERIC_CSI2_12,
313 .code = MEDIA_BUS_FMT_META_12,
315 .csi_dt = MIPI_CSI2_DT_EMBEDDED_8B,
316 .flags = CFE_FORMAT_FLAG_META_CAP,
319 /* Frontend formats */
321 .fourcc = V4L2_META_FMT_RPI_FE_CFG,
322 .code = MEDIA_BUS_FMT_FIXED,
323 .flags = CFE_FORMAT_FLAG_META_OUT,
326 .fourcc = V4L2_META_FMT_RPI_FE_STATS,
327 .code = MEDIA_BUS_FMT_FIXED,
328 .flags = CFE_FORMAT_FLAG_META_CAP,
332 #endif /* _CFE_FMTS_H_ */