Re: [Query] OV5640 DVP and BT656 modes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Prabhakar,

On Tue, Jul 28, 2020 at 06:50:21PM +0100, Lad, Prabhakar wrote:
> Hi,
> 
> I am currently investigating adding support for the BT656 format which
> is currently missing in the driver.
> 
> The platform which I am currently testing can support both 8-bit DVP
> and BT656 modes.
> * Testing DVP mode capturing 320x240, 640x480 worked  OK with random
> green lines in-between
> 
> Following is the chunk of code which enables BT656 support,  (for
> BT656 mode ov5640_set_dvp_pclk() is used), with the below changes I
> can get 640x480 working
> 
> #define OV5640_REG_CCIR656_CTRL00    0x4730
> 
> static int ov5640_set_stream_bt656(struct ov5640_dev *sensor, bool on)
> {
>     int ret;
> 
>     ret = ov5640_write_reg(sensor,
>                    OV5640_REG_IO_MIPI_CTRL00, on ? 0x18: 0);
>     if (ret)
>         return ret;
> 
>     ret = ov5640_write_reg(sensor,
>                    OV5640_REG_PAD_OUTPUT_ENABLE01, 0x7f);
>     if (ret)
>         return ret;
> 
>     ret = ov5640_write_reg(sensor,
>                    OV5640_REG_PAD_OUTPUT_ENABLE02, 0xfc);
>     if (ret)
>         return ret;
> 
>     return ov5640_write_reg(sensor,
>                 OV5640_REG_CCIR656_CTRL00, on ? 0x1: 0x0);
> }
> 
> As soon as I change the code to below to disable the data pads on
> stream OFF as below it stops working!
> 
> static int ov5640_set_stream_bt656(struct ov5640_dev *sensor, bool on)
> {
>     int ret;
> 
>     ret = ov5640_write_reg(sensor,
>                    OV5640_REG_IO_MIPI_CTRL00, on ? 0x18: 0);
>     if (ret)
>         return ret;
> 
>     ret = ov5640_write_reg(sensor,
>                    OV5640_REG_PAD_OUTPUT_ENABLE01, on ? 0x7f, 0);

s/,/:/ ? Is that a typo in your e-mail, or also in the code you've
tested ? I assume the former as the latter shouldn't compile.

>     if (ret)
>         return ret;
> 
>     ret = ov5640_write_reg(sensor,
>                    OV5640_REG_PAD_OUTPUT_ENABLE02, on ? 0xfc, 0);
>     if (ret)
>         return ret;
> 
>     return ov5640_write_reg(sensor,
>                 OV5640_REG_CCIR656_CTRL00, on ? 0x1: 0x0);
> }
> 
> Looking at the datasheet [1] I don't find it wrong or is there any
> information missing in this freely available datasheet.
> 
> Ideally BT656 mode should just work in DVP mode by setting 0x1 in
> 0x4730, but doesn work.
> 
> Is there anything  I'm missing here, any thoughts ?
> 
> [1] https://cdn.sparkfun.com/datasheets/Sensors/LightImaging/OV5640_datasheet.pdf

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux