Hi all,
I am integrating a new sensor (RAW10) with OMAP4460.
I have used V4L2 based driver to do so, I can see expected clock and data signals after configuring sensor.
However, I don't get ISS interrupts for line start/frame start, so application hangs in dequeue() call forever.
I have following doubts for inability to capture data.
1) ov5640_s_fmt() has following line: ov5640->pixel_rate->cur.val64 = ov5640_get_pclk(sd) / 16;
static unsigned long ov5640_get_pclk(struct v4l2_subdev *sd)
{
struct ov5640 *ov5640 = to_ov5640(sd);
unsigned long xvclk, vco, mipi_pclk;
xvclk = clk_get_rate(ov5640->xvclk); // ov5640->xvclk is 19.2 MHz for my case
vco = (xvclk / ov5640->clk_cfg.sc_pll_prediv) *
ov5640->clk_cfg.sc_pll_mult;
mipi_pclk = vco /
ov5640->clk_cfg.sysclk_div /
ov5640->clk_cfg.mipi_div;
printk("######## ov5640_get_pclk: xvclk: %d vco: %d mipi_pclk: %d\n", xvclk, vco, mipi_pclk);
return mipi_pclk;
}
What is significance of ov5640->pixel_rate->cur.val64 ? What should be the value for VGA, 24 fps, RGB10 with 1 data lane? How it is calculated?
What should be sysclk_div, mipi_div, sc_pll_prediv and sc_pll_mult for a specific resolution ?
Regards,
Sweta