media: imx283: Add 3/3 binning mode

Message ID 20240813-imx335-binned-mode-v1-1-edbb3718ab0f@ideasonboard.com (mailing list archive)
State Accepted
Delegated to: Sakari Ailus
Headers
Series media: imx283: Add 3/3 binning mode |

Commit Message

Umang Jain Aug. 13, 2024, 5:52 a.m. UTC
  IMX283 supports 12-bit 3/3 binning mode with 1824x1216 resolution.
Introduce the mode config for the same.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
---
Patch to introduce 3/3 binning mode - 1824x1216 12-bit output.
---
 drivers/media/i2c/imx283.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)


---
base-commit: 68a72104cbcf38ad16500216e213fa4eb21c4be2
change-id: 20240813-imx335-binned-mode-98b2b7ee5ba0

Best regards,
  

Comments

Kieran Bingham Aug. 15, 2024, 10:50 a.m. UTC | #1
Quoting Umang Jain (2024-08-13 06:52:00)
> IMX283 supports 12-bit 3/3 binning mode with 1824x1216 resolution.
> Introduce the mode config for the same.
> 
> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> ---
> Patch to introduce 3/3 binning mode - 1824x1216 12-bit output.
> ---
>  drivers/media/i2c/imx283.c | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
> index 8490618c5071..94276f4f2d83 100644
> --- a/drivers/media/i2c/imx283.c
> +++ b/drivers/media/i2c/imx283.c
> @@ -465,6 +465,39 @@ static const struct imx283_mode supported_modes_12bit[] = {
>                 .horizontal_ob = 48,
>                 .vertical_ob = 4,
>  
> +               .crop = {

I still wonder if these crops for full resolution mode can be set as:

 	.crop = imx283_active_area,

But that's a separate patch/discussion.


> +                       .top = 40,
> +                       .left = 108,
> +                       .width = 5472,
> +                       .height = 3648,
> +               },
> +       },
> +       {
> +               /*
> +                * Readout mode 3 : 3/3 binned mode (1824x1216)
> +                */
> +               .mode = IMX283_MODE_3,
> +               .bpp = 12,
> +               .width = 1824,
> +               .height = 1216,
> +               .min_hmax = 1894, /* Pixels (284 * 480MHz/72MHz + padding) */
> +               .min_vmax = 4200, /* Lines */
> +
> +               /* 60.00 fps */
> +               .default_hmax = 1900, /* 285 @ 480MHz/72Mhz */
> +               .default_vmax = 4200,
> +
> +               .veff = 1234,
> +               .vst = 0,
> +               .vct = 0,
> +
> +               .hbin_ratio = 3,
> +               .vbin_ratio = 3,
> +
> +               .min_shr = 16,
> +               .horizontal_ob = 32,
> +               .vertical_ob = 4,
> +

Everything there matches my expectations and the datasheet:


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

>                 .crop = {
>                         .top = 40,
>                         .left = 108,
> 
> ---
> base-commit: 68a72104cbcf38ad16500216e213fa4eb21c4be2
> change-id: 20240813-imx335-binned-mode-98b2b7ee5ba0
> 
> Best regards,
> -- 
> Umang Jain <umang.jain@ideasonboard.com>
>
  

Patch

diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
index 8490618c5071..94276f4f2d83 100644
--- a/drivers/media/i2c/imx283.c
+++ b/drivers/media/i2c/imx283.c
@@ -465,6 +465,39 @@  static const struct imx283_mode supported_modes_12bit[] = {
 		.horizontal_ob = 48,
 		.vertical_ob = 4,
 
+		.crop = {
+			.top = 40,
+			.left = 108,
+			.width = 5472,
+			.height = 3648,
+		},
+	},
+	{
+		/*
+		 * Readout mode 3 : 3/3 binned mode (1824x1216)
+		 */
+		.mode = IMX283_MODE_3,
+		.bpp = 12,
+		.width = 1824,
+		.height = 1216,
+		.min_hmax = 1894, /* Pixels (284 * 480MHz/72MHz + padding) */
+		.min_vmax = 4200, /* Lines */
+
+		/* 60.00 fps */
+		.default_hmax = 1900, /* 285 @ 480MHz/72Mhz */
+		.default_vmax = 4200,
+
+		.veff = 1234,
+		.vst = 0,
+		.vct = 0,
+
+		.hbin_ratio = 3,
+		.vbin_ratio = 3,
+
+		.min_shr = 16,
+		.horizontal_ob = 32,
+		.vertical_ob = 4,
+
 		.crop = {
 			.top = 40,
 			.left = 108,