.width = 820 ,
.height = 616 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 1640 ,
.height = 956 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 1640 ,
.height = 1232 ,
.fps = 15 ,
+ .low_fps = 3 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x0C1C, /* consistent with regs arrays */
.width = 3280 ,
.height = 1848 ,
.fps = 15 ,
+ .low_fps = 3 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1258, /* consistent with regs arrays */
.lines_per_frame = 0x0AA4, /* consistent with regs arrays */
.width = 3280 ,
.height = 2464 ,
.fps = 15 ,
+ .low_fps = 3 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1258, /* consistent with regs arrays */
.lines_per_frame = 0x0AA4, /* consistent with regs arrays */
.width = 216 ,
.height = 176 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 408 ,
.height = 308 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 820 ,
.height = 616 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 1640 ,
.height = 1024 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 1568 ,
.height = 880 ,
.fps = 30 ,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0 ,
.pixels_per_line = 0x1020, /* consistent with regs arrays */
.lines_per_frame = 0x060E, /* consistent with regs arrays */
.width = 2336,
.height = 1308,
.fps = 30,
+ .low_fps = 15 , /* fps when pixel clock is 96MHZ */
.used = 0,
.pixels_per_line = 0x113A, /* consistent with regs arrays */
.lines_per_frame = 0x05AB, /* consistent with regs arrays */
static int mt9e013_enum_frameintervals(struct v4l2_subdev *sd,
struct v4l2_frmivalenum *fival)
{
+ struct mt9e013_device *dev = to_mt9e013_sensor(sd);
unsigned int index = fival->index;
if (index >= N_RES)
/* fival->width = mt9e013_res[index].width;
fival->height = mt9e013_res[index].height; */
fival->discrete.numerator = 1;
- fival->discrete.denominator = mt9e013_res[index].fps;
+ if (dev->platform_data->pixel_rate &&
+ dev->platform_data->pixel_rate() <= 96)
+ fival->discrete.denominator = mt9e013_res[index].low_fps;
+ else
+ fival->discrete.denominator = mt9e013_res[index].fps;
return 0;
}