[PATCH v5 3/4] media: nxp: imx8-isi: Add 16-bit raw Bayer format support

Loic Poulain loic.poulain at oss.qualcomm.com
Tue Jul 28 07:11:01 PDT 2026


On Tue, Jul 28, 2026 at 8:55 AM <guoniu.zhou at oss.nxp.com> wrote:
>
> From: Laurentiu Palcu <laurentiu.palcu at oss.nxp.com>
>
> Add support for 16-bit raw Bayer formats (SBGGR16, SGBRG16, SGRBG16,
> SRGGB16) to both the pipeline subdev and video capture interface.
>
> These formats are used by image sensors that output 16-bit raw data,
> enabling the ISI to capture full dynamic range from such sensors.
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu at oss.nxp.com>
> Reviewed-by: Frank Li <Frank.Li at nxp.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Signed-off-by: Guoniu Zhou <guoniu.zhou at oss.nxp.com>

Reviewed-by: Loic Poulain <loic.poulain at oss.qualcomm.com>

> ---
> Changes in v3:
> - Remove "high-end" from description as RAW16 is common now (Laurent)
> - Add Y16 (16-bit monochrome) format support (Laurent)
> - Add Reviewed-by tag from Laurent
>
> Changes in v2:
> - Add Reviewed-by tag from Frank Li
> ---
>  .../media/platform/nxp/imx8-isi/imx8-isi-pipe.c    | 30 +++++++++++++++
>  .../media/platform/nxp/imx8-isi/imx8-isi-video.c   | 45 ++++++++++++++++++++++
>  2 files changed, 75 insertions(+)
>
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c
> index c0ec59856374..934f7b356258 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c
> @@ -83,6 +83,12 @@ static const struct mxc_isi_bus_format_info mxc_isi_bus_formats[] = {
>                 .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
>                                 | BIT(MXC_ISI_PIPE_PAD_SOURCE),
>                 .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_Y16_1X16,
> +               .output         = MEDIA_BUS_FMT_Y16_1X16,
> +               .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
> +                               | BIT(MXC_ISI_PIPE_PAD_SOURCE),
> +               .encoding       = MXC_ISI_ENC_RAW,
>         }, {
>                 .mbus_code      = MEDIA_BUS_FMT_SBGGR8_1X8,
>                 .output         = MEDIA_BUS_FMT_SBGGR8_1X8,
> @@ -179,6 +185,30 @@ static const struct mxc_isi_bus_format_info mxc_isi_bus_formats[] = {
>                 .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
>                                 | BIT(MXC_ISI_PIPE_PAD_SOURCE),
>                 .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SBGGR16_1X16,
> +               .output         = MEDIA_BUS_FMT_SBGGR16_1X16,
> +               .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
> +                               | BIT(MXC_ISI_PIPE_PAD_SOURCE),
> +               .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SGBRG16_1X16,
> +               .output         = MEDIA_BUS_FMT_SGBRG16_1X16,
> +               .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
> +                               | BIT(MXC_ISI_PIPE_PAD_SOURCE),
> +               .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SGRBG16_1X16,
> +               .output         = MEDIA_BUS_FMT_SGRBG16_1X16,
> +               .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
> +                               | BIT(MXC_ISI_PIPE_PAD_SOURCE),
> +               .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SRGGB16_1X16,
> +               .output         = MEDIA_BUS_FMT_SRGGB16_1X16,
> +               .pads           = BIT(MXC_ISI_PIPE_PAD_SINK)
> +                               | BIT(MXC_ISI_PIPE_PAD_SOURCE),
> +               .encoding       = MXC_ISI_ENC_RAW,
>         },
>         /* JPEG */
>         {
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> index 056603055c81..a6e044056762 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> @@ -212,6 +212,15 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
>                 .color_planes   = 1,
>                 .depth          = { 16 },
>                 .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_Y16_1X16,
> +               .fourcc         = V4L2_PIX_FMT_Y16,
> +               .type           = MXC_ISI_VIDEO_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 16 },
> +               .encoding       = MXC_ISI_ENC_RAW,
>         }, {
>                 .mbus_code      = MEDIA_BUS_FMT_SBGGR8_1X8,
>                 .fourcc         = V4L2_PIX_FMT_SBGGR8,
> @@ -356,6 +365,42 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
>                 .color_planes   = 1,
>                 .depth          = { 16 },
>                 .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SBGGR16_1X16,
> +               .fourcc         = V4L2_PIX_FMT_SBGGR16,
> +               .type           = MXC_ISI_VIDEO_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 16 },
> +               .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SGBRG16_1X16,
> +               .fourcc         = V4L2_PIX_FMT_SGBRG16,
> +               .type           = MXC_ISI_VIDEO_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 16 },
> +               .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SGRBG16_1X16,
> +               .fourcc         = V4L2_PIX_FMT_SGRBG16,
> +               .type           = MXC_ISI_VIDEO_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 16 },
> +               .encoding       = MXC_ISI_ENC_RAW,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_SRGGB16_1X16,
> +               .fourcc         = V4L2_PIX_FMT_SRGGB16,
> +               .type           = MXC_ISI_VIDEO_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 16 },
> +               .encoding       = MXC_ISI_ENC_RAW,
>         },
>         /* JPEG */
>         {
>
> --
> 2.34.1
>



More information about the linux-arm-kernel mailing list