]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: platform: rzg2l-cru: Add support for RAW10/12/14 data
authorDaniel Scally <dan.scally+renesas@ideasonboard.com>
Wed, 25 Jun 2025 09:20:32 +0000 (10:20 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Thu, 3 Jul 2025 07:04:14 +0000 (09:04 +0200)
Add support to the rzg2l-cru driver to capture 10/12/14 bit bayer
data and output it into the CRU's 64-bit packed pixel format.

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: Daniel Scally <dan.scally+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20250625-rzg2l-cru-v6-6-a9099ed26c14@ideasonboard.com
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c
drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c

index cec165551183afb71ae019b277c46a17a0f8096d..1520211e74185fea3bca85f36239254f6b4651db 100644 (file)
@@ -232,6 +232,18 @@ static const struct rzg2l_csi2_format rzg2l_csi2_formats[] = {
        { .code = MEDIA_BUS_FMT_SGBRG8_1X8, .bpp = 8, },
        { .code = MEDIA_BUS_FMT_SGRBG8_1X8, .bpp = 8, },
        { .code = MEDIA_BUS_FMT_SRGGB8_1X8, .bpp = 8, },
+       { .code = MEDIA_BUS_FMT_SBGGR10_1X10, .bpp = 10, },
+       { .code = MEDIA_BUS_FMT_SGBRG10_1X10, .bpp = 10, },
+       { .code = MEDIA_BUS_FMT_SGRBG10_1X10, .bpp = 10, },
+       { .code = MEDIA_BUS_FMT_SRGGB10_1X10, .bpp = 10, },
+       { .code = MEDIA_BUS_FMT_SBGGR12_1X12, .bpp = 12, },
+       { .code = MEDIA_BUS_FMT_SGBRG12_1X12, .bpp = 12, },
+       { .code = MEDIA_BUS_FMT_SGRBG12_1X12, .bpp = 12, },
+       { .code = MEDIA_BUS_FMT_SRGGB12_1X12, .bpp = 12, },
+       { .code = MEDIA_BUS_FMT_SBGGR14_1X14, .bpp = 14, },
+       { .code = MEDIA_BUS_FMT_SGBRG14_1X14, .bpp = 14, },
+       { .code = MEDIA_BUS_FMT_SGRBG14_1X14, .bpp = 14, },
+       { .code = MEDIA_BUS_FMT_SRGGB14_1X14, .bpp = 14, },
 };
 
 static inline struct rzg2l_csi2 *sd_to_csi2(struct v4l2_subdev *sd)
index fbbcdb96c4570baf07cc9685c2fc847fb489df89..5f2c87858bfe6d00d6668e911991afa4820392a8 100644 (file)
@@ -57,6 +57,42 @@ static const struct rzg2l_cru_ip_format rzg2l_cru_ip_formats[] = {
                .icndmr = 0,
                .yuv = false,
        },
+       {
+               .codes = {
+                       MEDIA_BUS_FMT_SBGGR10_1X10,
+                       MEDIA_BUS_FMT_SGBRG10_1X10,
+                       MEDIA_BUS_FMT_SGRBG10_1X10,
+                       MEDIA_BUS_FMT_SRGGB10_1X10
+               },
+               .format = V4L2_PIX_FMT_RAW_CRU10,
+               .datatype = MIPI_CSI2_DT_RAW10,
+               .icndmr = 0,
+               .yuv = false,
+       },
+       {
+               .codes = {
+                       MEDIA_BUS_FMT_SBGGR12_1X12,
+                       MEDIA_BUS_FMT_SGBRG12_1X12,
+                       MEDIA_BUS_FMT_SGRBG12_1X12,
+                       MEDIA_BUS_FMT_SRGGB12_1X12
+               },
+               .format = V4L2_PIX_FMT_RAW_CRU12,
+               .datatype = MIPI_CSI2_DT_RAW12,
+               .icndmr = 0,
+               .yuv = false,
+       },
+       {
+               .codes = {
+                       MEDIA_BUS_FMT_SBGGR14_1X14,
+                       MEDIA_BUS_FMT_SGBRG14_1X14,
+                       MEDIA_BUS_FMT_SGRBG14_1X14,
+                       MEDIA_BUS_FMT_SRGGB14_1X14
+               },
+               .format = V4L2_PIX_FMT_RAW_CRU14,
+               .datatype = MIPI_CSI2_DT_RAW14,
+               .icndmr = 0,
+               .yuv = false,
+       },
 };
 
 const struct rzg2l_cru_ip_format *rzg2l_cru_ip_code_to_fmt(unsigned int code)