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