Add support for BGR888 image format.
No existing media bus codes describe exactly the way data is transferred
on the CSI-2 bus. This is not a new issue, the CSI-2 YUV422 8-bit format
is described by MEDIA_BUS_FMT_UYVY8_1X16 which is an arbitrary
convention and not an exact match. Use the MEDIA_BUS_FMT_BGR888_1X24 to
follow the same convention, based on the order in which bits are
transmitted over the CSI-2 bus when producing images in RGB24 format.
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
drivers/media/i2c/ov5640.c | 9 +++++++++
1 file changed, 9 insertions(+)
@@ -225,6 +225,10 @@ static const struct ov5640_pixfmt {
.code = MEDIA_BUS_FMT_RGB565_1X16,
.colorspace = V4L2_COLORSPACE_SRGB,
.bpp = 16,
+ }, {
+ .code = MEDIA_BUS_FMT_BGR888_1X24,
+ .colorspace = V4L2_COLORSPACE_SRGB,
+ .bpp = 24,
}, {
.code = MEDIA_BUS_FMT_SBGGR8_1X8,
.colorspace = V4L2_COLORSPACE_SRGB,
@@ -2914,6 +2918,11 @@ static int ov5640_set_framefmt(struct ov5640_dev *sensor,
fmt = 0x61;
mux = OV5640_FMT_MUX_RGB;
break;
+ case MEDIA_BUS_FMT_BGR888_1X24:
+ /* BGR888: RGB */
+ fmt = 0x23;
+ mux = OV5640_FMT_MUX_RGB;
+ break;
case MEDIA_BUS_FMT_JPEG_1X8:
/* YUV422, YUYV */
fmt = 0x30;