Skip to content

Commit 8c89da3

Browse files
committed
media: i2c: imx477: Add full res but cropped 16:9 mode
For 4k30 recording we want 16:9 output, so add a cropped mode to achieve this. Signed-off-by: Dave Stevenson <[email protected]>
1 parent 3f04aed commit 8c89da3

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

drivers/media/i2c/imx477.c

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,70 @@ static const struct imx477_reg mode_4056x3040_regs[] = {
667667
{0x3f57, 0xae},
668668
};
669669

670+
/* 12 mpix cropped to 16:9 10fps */
671+
static const struct imx477_reg mode_4056x2160_regs[] = {
672+
{0x0344, 0x00},
673+
{0x0345, 0x00},
674+
{0x0346, 0x01},
675+
{0x0347, 0xb8},
676+
{0x0348, 0x0f},
677+
{0x0349, 0xd7},
678+
{0x034a, 0x0a},
679+
{0x034b, 0x27},
680+
{0x00e3, 0x00},
681+
{0x00e4, 0x00},
682+
{0x00fc, 0x0a},
683+
{0x00fd, 0x0a},
684+
{0x00fe, 0x0a},
685+
{0x00ff, 0x0a},
686+
{0x0900, 0x00},
687+
{0x0901, 0x11},
688+
{0x3c01, 0x03},
689+
{0x3c02, 0xa2},
690+
{0x3f0d, 0x01},
691+
{0x5748, 0x07},
692+
{0x5749, 0xff},
693+
{0x574a, 0x00},
694+
{0x574b, 0x00},
695+
{0x7b75, 0x0a},
696+
{0x7b76, 0x0c},
697+
{0x7b77, 0x07},
698+
{0x7b78, 0x06},
699+
{0x7b79, 0x3c},
700+
{0x7b53, 0x01},
701+
{0x9369, 0x5a},
702+
{0x936b, 0x55},
703+
{0x936d, 0x28},
704+
{0x9304, 0x00},
705+
{0x9305, 0x00},
706+
{0xa2a9, 0x60},
707+
{0xa2b7, 0x00},
708+
{0x0401, 0x00},
709+
{0x0404, 0x00},
710+
{0x0405, 0x10},
711+
{0x0408, 0x00},
712+
{0x0409, 0x00},
713+
{0x040a, 0x00},
714+
{0x040b, 0x00},
715+
{0x040c, 0x0f},
716+
{0x040d, 0xd8},
717+
{0x040e, 0x08},
718+
{0x040f, 0x70},
719+
{0x034c, 0x0f},
720+
{0x034d, 0xd8},
721+
{0x034e, 0x08},
722+
{0x034f, 0x70},
723+
{0x0305, 0x04},
724+
{0x0306, 0x01},
725+
{0x0307, 0x5e},
726+
{0xe04c, 0x00},
727+
{0xe04d, 0x7f},
728+
{0xe04e, 0x00},
729+
{0xe04f, 0x1f},
730+
{0x3f56, 0x02},
731+
{0x3f57, 0xae},
732+
};
733+
670734
/* 2x2 binned. 40fps */
671735
static const struct imx477_reg mode_2028x1520_regs[] = {
672736
{0x0112, 0x0c},
@@ -878,6 +942,23 @@ static const struct imx477_mode supported_modes_12bit[] = {
878942
.regs = mode_4056x3040_regs,
879943
},
880944
},
945+
{
946+
/* 12MPix cropped 16:9 mode */
947+
.width = 4056,
948+
.height = 2160,
949+
.line_length_pix = { 24000, 20000 },
950+
.crop = {
951+
.left = IMX477_PIXEL_ARRAY_LEFT,
952+
.top = IMX477_PIXEL_ARRAY_TOP + 440,
953+
.width = 4056,
954+
.height = 3040,
955+
},
956+
.framerate_default = 10,
957+
.reg_list = {
958+
.num_of_regs = ARRAY_SIZE(mode_4056x2160_regs),
959+
.regs = mode_4056x2160_regs,
960+
},
961+
},
881962
{
882963
/* 2x2 binned 40fps mode */
883964
.width = 2028,

0 commit comments

Comments
 (0)