Skip to content

Commit 22e06e4

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 <dave.stevenson@raspberrypi.com>
1 parent 8aa48bd commit 22e06e4

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
@@ -634,6 +634,70 @@ static const struct imx477_reg mode_4056x3040_regs[] = {
634634
{0x3f57, 0xae},
635635
};
636636

637+
/* 12 mpix cropped to 16:9 10fps */
638+
static const struct imx477_reg mode_4056x2160_regs[] = {
639+
{0x0344, 0x00},
640+
{0x0345, 0x00},
641+
{0x0346, 0x01},
642+
{0x0347, 0xb8},
643+
{0x0348, 0x0f},
644+
{0x0349, 0xd7},
645+
{0x034a, 0x0a},
646+
{0x034b, 0x27},
647+
{0x00e3, 0x00},
648+
{0x00e4, 0x00},
649+
{0x00fc, 0x0a},
650+
{0x00fd, 0x0a},
651+
{0x00fe, 0x0a},
652+
{0x00ff, 0x0a},
653+
{0x0900, 0x00},
654+
{0x0901, 0x11},
655+
{0x3c01, 0x03},
656+
{0x3c02, 0xa2},
657+
{0x3f0d, 0x01},
658+
{0x5748, 0x07},
659+
{0x5749, 0xff},
660+
{0x574a, 0x00},
661+
{0x574b, 0x00},
662+
{0x7b75, 0x0a},
663+
{0x7b76, 0x0c},
664+
{0x7b77, 0x07},
665+
{0x7b78, 0x06},
666+
{0x7b79, 0x3c},
667+
{0x7b53, 0x01},
668+
{0x9369, 0x5a},
669+
{0x936b, 0x55},
670+
{0x936d, 0x28},
671+
{0x9304, 0x00},
672+
{0x9305, 0x00},
673+
{0xa2a9, 0x60},
674+
{0xa2b7, 0x00},
675+
{0x0401, 0x00},
676+
{0x0404, 0x00},
677+
{0x0405, 0x10},
678+
{0x0408, 0x00},
679+
{0x0409, 0x00},
680+
{0x040a, 0x00},
681+
{0x040b, 0x00},
682+
{0x040c, 0x0f},
683+
{0x040d, 0xd8},
684+
{0x040e, 0x08},
685+
{0x040f, 0x70},
686+
{0x034c, 0x0f},
687+
{0x034d, 0xd8},
688+
{0x034e, 0x08},
689+
{0x034f, 0x70},
690+
{0x0305, 0x04},
691+
{0x0306, 0x01},
692+
{0x0307, 0x5e},
693+
{0xe04c, 0x00},
694+
{0xe04d, 0x7f},
695+
{0xe04e, 0x00},
696+
{0xe04f, 0x1f},
697+
{0x3f56, 0x02},
698+
{0x3f57, 0xae},
699+
};
700+
637701
/* 2x2 binned. 40fps */
638702
static const struct imx477_reg mode_2028x1520_regs[] = {
639703
{0x0112, 0x0c},
@@ -845,6 +909,23 @@ static const struct imx477_mode supported_modes_12bit[] = {
845909
.regs = mode_4056x3040_regs,
846910
},
847911
},
912+
{
913+
/* 12MPix cropped 16:9 mode */
914+
.width = 4056,
915+
.height = 2160,
916+
.line_length_pix = { 24000, 20000 },
917+
.crop = {
918+
.left = IMX477_PIXEL_ARRAY_LEFT,
919+
.top = IMX477_PIXEL_ARRAY_TOP + 440,
920+
.width = 4056,
921+
.height = 3040,
922+
},
923+
.framerate_default = 10,
924+
.reg_list = {
925+
.num_of_regs = ARRAY_SIZE(mode_4056x2160_regs),
926+
.regs = mode_4056x2160_regs,
927+
},
928+
},
848929
{
849930
/* 2x2 binned 40fps mode */
850931
.width = 2028,

0 commit comments

Comments
 (0)