From: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org, dacohen@gmail.com, snjw23@gmail.com
Subject: Re: [RFC 13/17] omap3isp: Configure CSI-2 phy based on platform data
Date: Sun, 08 Jan 2012 12:26:02 +0200 [thread overview]
Message-ID: <4F096F3A.7020902@maxwell.research.nokia.com> (raw)
In-Reply-To: <201201080202.11719.laurent.pinchart@ideasonboard.com>
Hi Laurent,
Laurent Pinchart wrote:
> Hi Sakari,
>
> On Saturday 07 January 2012 23:51:24 Sakari Ailus wrote:
>> Laurent Pinchart wrote:
>>> On Tuesday 20 December 2011 21:28:05 Sakari Ailus wrote:
>>>> From: Sakari Ailus <sakari.ailus@iki.fi>
>>>>
>>>> Configure CSI-2 phy based on platform data in the ISP driver rather than
>>>> in platform code.
>>>>
>>>> Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
>
> [snip]
>
>>>> diff --git a/drivers/media/video/omap3isp/ispcsiphy.c
>>>> b/drivers/media/video/omap3isp/ispcsiphy.c index 5be37ce..f027ece 100644
>>>> --- a/drivers/media/video/omap3isp/ispcsiphy.c
>>>> +++ b/drivers/media/video/omap3isp/ispcsiphy.c
>>>> @@ -28,6 +28,8 @@
>>>>
>>>> #include <linux/device.h>
>>>> #include <linux/regulator/consumer.h>
>>>>
>>>> +#include "../../../../arch/arm/mach-omap2/control.h"
>>>> +
>>>
>>> #include <mach/control.h>
>>>
>>> (untested) ?
>>
>> I'm afraid it won't work. The above directory isn't in any include path
>> and likely shouldn't be. That file is included locally elsewhere, I
>> believe.
>
> You're right, I spoke too fast.
>
>> I wonder what would be the right way to access that register definition
>> I need from the file:
>>
>> OMAP343X_CTRL_BASE
>> OMAP3630_CONTROL_CAMERA_PHY_CTRL
>
> Maybe the file (or part of it) should be moved to an include directory ?
Yes, but which one?
>>>> #include "isp.h"
>>>> #include "ispreg.h"
>>>> #include "ispcsiphy.h"
>>>>
>>>> @@ -138,15 +140,78 @@ static void csiphy_dphy_config(struct isp_csiphy
>>>> *phy) isp_reg_writel(phy->isp, reg, phy->phy_regs, ISPCSIPHY_REG1);
>>>>
>>>> }
>>>>
>>>> -static int csiphy_config(struct isp_csiphy *phy,
>>>> - struct isp_csiphy_dphy_cfg *dphy,
>>>> - struct isp_csiphy_lanes_cfg *lanes)
>>>> +/*
>>>> + * TCLK values are OK at their reset values
>>>> + */
>>>> +#define TCLK_TERM 0
>>>> +#define TCLK_MISS 1
>>>> +#define TCLK_SETTLE 14
>>>> +
>>>> +int omap3isp_csiphy_config(struct isp_device *isp,
>>>> + struct v4l2_subdev *csi2_subdev,
>>>> + struct v4l2_subdev *sensor,
>>>> + struct v4l2_mbus_framefmt *sensor_fmt)
>>>>
>>>> {
>>>>
>>>> + struct isp_v4l2_subdevs_group *subdevs = sensor->host_priv;
>>>> + struct isp_csi2_device *csi2 = v4l2_get_subdevdata(csi2_subdev);
>>>> + struct isp_csiphy_dphy_cfg csi2phy;
>>>> + int csi2_ddrclk_khz;
>>>> + struct isp_csiphy_lanes_cfg *lanes;
>>>>
>>>> unsigned int used_lanes = 0;
>>>> unsigned int i;
>>>>
>>>> + u32 cam_phy_ctrl;
>>>> +
>>>> + if (subdevs->interface == ISP_INTERFACE_CCP2B_PHY1
>>>> + || subdevs->interface == ISP_INTERFACE_CCP2B_PHY2)
>>>> + lanes = subdevs->bus.ccp2.lanecfg;
>>>> + else
>>>> + lanes = subdevs->bus.csi2.lanecfg;
>>>
>>> Shouldn't lane configuration be retrieved from the sensor instead ?
>>> Sensors could use different lane configuration depending on the mode.
>>> This could also be implemented later when needed, but I don't think it
>>> would be too difficult to get it right now.
>>
>> I think we'd first need to standardise the CSI-2 bus configuration. I
>> don't see a practical need to make the lane configuration dynamic. You
>> could just use a lower frequency to achieve the same if you really need to.
>>
>> Ideally it might be nice to do but there's really nothing I know that
>> required or even benefited from it --- at least for now.
>
> Does this mean that lane configuration needs to be duplicated in board code,
> on for the SMIA++ platform data and one of the OMAP3 ISP platform data ?
It's mostly the number of lanes, and the polarity --- in theory it is
possible to invert the signals on the bus, albeit I'm not sure if anyone
does that; I can't see a reason for that, but hey, I don't know why it's
possible to specify polarity either. :-)
If both sides support mapping of the lanes, a mapping that matches on
both sides has to be provided.
I agree we should standardise the configuration of CSI-2 as well as the
configuration of other busses. However, I would prefer to do that later
on since I'm already depending on a number of other patches on the
SMIA++ driver.
--
Sakari Ailus
sakari.ailus@maxwell.research.nokia.com
next prev parent reply other threads:[~2012-01-08 10:26 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-20 20:27 [RFC 0/17] V4L2 subdev and sensor control changes, SMIA++ driver and N9 camera board code Sakari Ailus
2011-12-20 20:27 ` [RFC 01/17] v4l: Introduce integer menu controls Sakari Ailus
2012-01-05 15:53 ` Laurent Pinchart
2012-01-06 9:50 ` Sakari Ailus
2011-12-20 20:27 ` [RFC 02/17] v4l: Document " Sakari Ailus
2012-01-05 15:55 ` Laurent Pinchart
2012-01-06 10:07 ` Sakari Ailus
2011-12-20 20:27 ` [RFC 03/17] vivi: Add an integer menu test control Sakari Ailus
2012-01-05 15:59 ` Laurent Pinchart
2012-01-06 10:19 ` Sakari Ailus
2012-01-06 10:22 ` Sakari Ailus
2012-01-06 10:28 ` Laurent Pinchart
2011-12-20 20:27 ` [RFC 04/17] v4l: VIDIOC_SUBDEV_S_SELECTION and VIDIOC_SUBDEV_G_SELECTION IOCTLs Sakari Ailus
2012-01-05 16:12 ` Laurent Pinchart
2012-01-06 11:27 ` Sakari Ailus
2012-01-06 12:00 ` Laurent Pinchart
2012-01-07 9:09 ` Sakari Ailus
2012-01-07 11:09 ` Sakari Ailus
2012-01-07 15:54 ` Laurent Pinchart
2012-01-07 16:53 ` Sakari Ailus
2011-12-20 20:27 ` [RFC 05/17] v4l: Support s_crop and g_crop through s/g_selection Sakari Ailus
2012-01-05 16:13 ` Laurent Pinchart
2012-01-08 20:54 ` Sakari Ailus
2011-12-20 20:27 ` [RFC 06/17] v4l: Add selections documentation Sakari Ailus
2012-01-06 11:43 ` Laurent Pinchart
2012-01-09 18:16 ` Sakari Ailus
2012-01-10 11:20 ` Tomasz Stanislawski
2012-01-14 19:04 ` Sakari Ailus
2012-01-15 22:53 ` Laurent Pinchart
2011-12-20 20:27 ` [RFC 07/17] v4l: Add pixelrate to struct v4l2_mbus_framefmt Sakari Ailus
2012-01-06 10:26 ` Laurent Pinchart
2012-01-08 21:16 ` Sakari Ailus
2011-12-20 20:28 ` [RFC 08/17] v4l: Image source control class Sakari Ailus
2012-01-05 16:23 ` Laurent Pinchart
2012-01-14 20:51 ` Sakari Ailus
2012-01-15 1:43 ` Laurent Pinchart
2012-01-15 19:44 ` Sakari Ailus
2012-01-15 20:00 ` Laurent Pinchart
2012-01-15 21:27 ` Sakari Ailus
2012-01-15 16:16 ` Sylwester Nawrocki
2012-01-15 19:30 ` Sakari Ailus
2012-01-15 20:08 ` Sylwester Nawrocki
2011-12-20 20:28 ` [RFC 09/17] v4l: Add pad op for pipeline validation Sakari Ailus
2012-01-06 9:42 ` Laurent Pinchart
2012-01-07 23:28 ` Sakari Ailus
2012-01-08 18:20 ` Laurent Pinchart
2011-12-20 20:28 ` [RFC 10/17] omap3: add definition for CONTROL_CAMERA_PHY_CTRL Sakari Ailus
2011-12-20 20:28 ` [RFC 11/17] omap3isp: Implement validate_pipeline Sakari Ailus
2011-12-20 20:28 ` [RFC 12/17] omap3isp: Add lane configuration to platform data Sakari Ailus
2012-01-06 10:06 ` Laurent Pinchart
2012-01-07 23:39 ` Sakari Ailus
2011-12-20 20:28 ` [RFC 13/17] omap3isp: Configure CSI-2 phy based on " Sakari Ailus
2012-01-06 10:01 ` Laurent Pinchart
2012-01-07 22:51 ` Sakari Ailus
2012-01-08 1:02 ` Laurent Pinchart
2012-01-08 10:26 ` Sakari Ailus [this message]
2012-01-08 11:07 ` Sylwester Nawrocki
2012-01-08 11:16 ` Sakari Ailus
2012-01-08 13:09 ` Sylwester Nawrocki
2012-01-11 8:08 ` Sakari Ailus
2012-01-08 11:15 ` Laurent Pinchart
2011-12-20 20:28 ` [RFC 14/17] omap3isp: Use pixelrate from sensor media bus frameformat Sakari Ailus
2012-01-06 10:14 ` Laurent Pinchart
2012-01-07 23:05 ` Sakari Ailus
2011-12-20 20:28 ` [RFC 15/17] omap3isp: Move definitions required by board code under include/media Sakari Ailus
2011-12-20 20:28 ` [RFC 16/17] smiapp: Add driver Sakari Ailus
2012-01-06 17:12 ` Sylwester Nawrocki
2012-01-07 23:01 ` Sakari Ailus
2012-01-16 21:57 ` Sylwester Nawrocki
2011-12-20 20:28 ` [RFC 17/17] rm680: Add camera init Sakari Ailus
2012-01-06 10:21 ` Laurent Pinchart
2012-01-07 21:30 ` Sakari Ailus
2012-01-06 14:58 ` Sylwester Nawrocki
2012-01-07 22:59 ` Sakari Ailus
2011-12-28 9:47 ` [yavta PATCH 1/1] Support integer menus Sakari Ailus
2012-01-05 16:03 ` Laurent Pinchart
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=4F096F3A.7020902@maxwell.research.nokia.com \
--to=sakari.ailus@maxwell.research.nokia.com \
--cc=dacohen@gmail.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=snjw23@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.