xref: /linux/drivers/media/platform/raspberrypi/rp1-cfe/cfe.h (revision c771600c6af14749609b49565ffb4cac2959710d)
1*6edb685aSTomi Valkeinen /* SPDX-License-Identifier: GPL-2.0 */
2*6edb685aSTomi Valkeinen /*
3*6edb685aSTomi Valkeinen  * RP1 CFE Driver
4*6edb685aSTomi Valkeinen  *
5*6edb685aSTomi Valkeinen  * Copyright (c) 2021-2024 Raspberry Pi Ltd.
6*6edb685aSTomi Valkeinen  * Copyright (c) 2023-2024 Ideas on Board Oy
7*6edb685aSTomi Valkeinen  */
8*6edb685aSTomi Valkeinen #ifndef _RP1_CFE_
9*6edb685aSTomi Valkeinen #define _RP1_CFE_
10*6edb685aSTomi Valkeinen 
11*6edb685aSTomi Valkeinen #include <linux/media-bus-format.h>
12*6edb685aSTomi Valkeinen #include <linux/types.h>
13*6edb685aSTomi Valkeinen #include <linux/videodev2.h>
14*6edb685aSTomi Valkeinen 
15*6edb685aSTomi Valkeinen extern bool cfe_debug_verbose;
16*6edb685aSTomi Valkeinen 
17*6edb685aSTomi Valkeinen enum cfe_remap_types {
18*6edb685aSTomi Valkeinen 	CFE_REMAP_16BIT,
19*6edb685aSTomi Valkeinen 	CFE_REMAP_COMPRESSED,
20*6edb685aSTomi Valkeinen 	CFE_NUM_REMAP,
21*6edb685aSTomi Valkeinen };
22*6edb685aSTomi Valkeinen 
23*6edb685aSTomi Valkeinen #define CFE_FORMAT_FLAG_META_OUT	BIT(0)
24*6edb685aSTomi Valkeinen #define CFE_FORMAT_FLAG_META_CAP	BIT(1)
25*6edb685aSTomi Valkeinen #define CFE_FORMAT_FLAG_FE_OUT		BIT(2)
26*6edb685aSTomi Valkeinen 
27*6edb685aSTomi Valkeinen struct cfe_fmt {
28*6edb685aSTomi Valkeinen 	u32 fourcc;
29*6edb685aSTomi Valkeinen 	u32 code;
30*6edb685aSTomi Valkeinen 	u8 depth;
31*6edb685aSTomi Valkeinen 	u8 csi_dt;
32*6edb685aSTomi Valkeinen 	u32 remap[CFE_NUM_REMAP];
33*6edb685aSTomi Valkeinen 	u32 flags;
34*6edb685aSTomi Valkeinen };
35*6edb685aSTomi Valkeinen 
36*6edb685aSTomi Valkeinen extern const struct v4l2_mbus_framefmt cfe_default_format;
37*6edb685aSTomi Valkeinen 
38*6edb685aSTomi Valkeinen const struct cfe_fmt *find_format_by_code(u32 code);
39*6edb685aSTomi Valkeinen const struct cfe_fmt *find_format_by_pix(u32 pixelformat);
40*6edb685aSTomi Valkeinen u32 cfe_find_16bit_code(u32 code);
41*6edb685aSTomi Valkeinen u32 cfe_find_compressed_code(u32 code);
42*6edb685aSTomi Valkeinen 
43*6edb685aSTomi Valkeinen #endif
44