Skip to content

Commit 66fa175

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 39a6305 commit 66fa175

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
@@ -670,6 +670,70 @@ static const struct imx477_reg mode_4056x3040_regs[] = {
670670
{0x3f57, 0xae},
671671
};
672672

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

0 commit comments

Comments
 (0)