linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
To: Steve Longerbeam <slongerbeam@gmail.com>,
	Jacopo Mondi <jacopo+renesas@jmondi.org>,
	Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: linux-media <linux-media@vger.kernel.org>,
	Chris Paterson <Chris.Paterson2@renesas.com>
Subject: [Query] OV5640 DVP and BT656 modes
Date: Tue, 28 Jul 2020 18:50:21 +0100	[thread overview]
Message-ID: <CA+V-a8vt1HEhJzc4jN22=7PnVrkcKjzFx7Q9E1ZK-YAtc09q0w@mail.gmail.com> (raw)

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);
    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

Cheers,
--Prabhakar

             reply	other threads:[~2020-07-28 17:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-28 17:50 Lad, Prabhakar [this message]
2020-07-28 18:42 ` [Query] OV5640 DVP and BT656 modes Laurent Pinchart
2020-07-28 19:04   ` Lad, Prabhakar
2020-07-28 19:54     ` Laurent Pinchart
2020-07-28 20:30       ` Lad, Prabhakar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CA+V-a8vt1HEhJzc4jN22=7PnVrkcKjzFx7Q9E1ZK-YAtc09q0w@mail.gmail.com' \
    --to=prabhakar.csengg@gmail.com \
    --cc=Chris.Paterson2@renesas.com \
    --cc=jacopo+renesas@jmondi.org \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=slongerbeam@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).