From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-media@vger.kernel.org, g.liakhovetski@gmx.de,
laurent.pinchart@ideasonboard.com, grant.likely@secretlab.ca,
rob.herring@calxeda.com, thomas.abraham@linaro.org,
t.figa@samsung.com, sw0312.kim@samsung.com,
kyungmin.park@samsung.com, devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH RFC v3 02/15] [media] Add a V4L2 OF parser
Date: Wed, 23 Jan 2013 11:44:50 +0100 [thread overview]
Message-ID: <50FFBF22.7030506@samsung.com> (raw)
In-Reply-To: <201301211235.14450.hverkuil@xs4all.nl>
On 01/21/2013 12:35 PM, Hans Verkuil wrote:
[...]
>> +/**
>> + * v4l2_of_parse_mipi_csi2() - parse MIPI CSI-2 bus properties
>> + * @node: pointer to endpoint device_node
>> + * @endpoint: pointer to v4l2_of_endpoint data structure
>> + *
>> + * Return: 0 on success or negative error value otherwise.
>> + */
>> +int v4l2_of_parse_mipi_csi2(const struct device_node *node,
>> + struct v4l2_of_endpoint *endpoint)
>> +{
>> + struct v4l2_of_mipi_csi2 *mipi_csi2 = &endpoint->mipi_csi_2;
>> + u32 data_lanes[ARRAY_SIZE(mipi_csi2->data_lanes)];
>> + struct property *prop;
>> + const __be32 *lane = NULL;
>> + u32 v;
>> + int i = 0;
>> +
>> + prop = of_find_property(node, "data-lanes", NULL);
>> + if (!prop)
>> + return -EINVAL;
>> + do {
>> + lane = of_prop_next_u32(prop, lane, &data_lanes[i]);
>> + } while (lane && i++ < ARRAY_SIZE(data_lanes));
>> +
>> + mipi_csi2->num_data_lanes = i;
>> + while (i--)
>> + mipi_csi2->data_lanes[i] = data_lanes[i];
>> +
>> + if (!of_property_read_u32(node, "clock-lanes", &v))
>> + mipi_csi2->clock_lane = v;
>
> Hmm, the property name is 'clock-lanes', but only one lane is obtained here.
>
> Why is the property name plural in that case?
This is how we agreed it with Guennadi, the argumentation was that it is
more consistent with 'data-lanes'. Also I think it is better to use plural
form right from the beginning, rather than introducing another 'clock-lanes'
property along 'clock-lane' when there would be a need to handle busses
with more than one clock lane in the future.
[...]
>> +/**
>> + * v4l2_of_parse_endpoint() - parse all endpoint node properties
>> + * @node: pointer to endpoint device_node
>> + * @endpoint: pointer to v4l2_of_endpoint data structure
>> + *
>> + * All properties are optional. If none are found, we don't set any flags.
>> + * This means the port has a static configuration and no properties have
>> + * to be specified explicitly.
>> + * If any properties that identify the bus as parallel are found and
>> + * slave-mode isn't set, we set V4L2_MBUS_MASTER. Similarly, if we recognise
>> + * the bus as serial CSI-2 and clock-noncontinuous isn't set, we set the
>> + * V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag.
>> + * The caller should hold a reference to @node.
>> + */
>> +void v4l2_of_parse_endpoint(const struct device_node *node,
>> + struct v4l2_of_endpoint *endpoint)
>> +{
>> + const struct device_node *port_node = of_get_parent(node);
>> + bool data_lanes_present = false;
>> +
>> + memset(endpoint, 0, sizeof(*endpoint));
>> +
>> + endpoint->local_node = node;
>> +
>> + /* Doesn't matter, whether the below two calls succeed */
>
> 'It doesn't matter whether the two calls below succeed. If they don't
> then the default value 0 is used.'
>
> At least, that's how I understand the code.
Yeah, it's more precise this way. I'll amend it, thanks!
>> + of_property_read_u32(port_node, "reg", &endpoint->port);
>> + of_property_read_u32(node, "reg", &endpoint->addr);
--
Regards,
Sylwester
next prev parent reply other threads:[~2013-01-23 10:44 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-31 16:02 [PATCH RFC v2 00/15] V4L2 device tree bindings and OF helpers Sylwester Nawrocki
2012-12-31 16:02 ` [PATCH RFC v2 01/15] [media] Add common video interfaces OF bindings documentation Sylwester Nawrocki
2013-01-02 11:31 ` Guennadi Liakhovetski
2013-01-02 21:51 ` Sylwester Nawrocki
2013-01-02 22:01 ` Guennadi Liakhovetski
2013-01-03 17:03 ` [PATCH RFC v3 " Sylwester Nawrocki
2013-01-21 10:31 ` Hans Verkuil
2013-01-23 10:21 ` Sylwester Nawrocki
2013-01-23 12:59 ` Hans Verkuil
2012-12-31 16:03 ` [PATCH RFC v2 02/15] [media] Add a V4L2 OF parser Sylwester Nawrocki
2013-01-02 11:58 ` Guennadi Liakhovetski
2013-01-02 22:11 ` Sylwester Nawrocki
[not found] ` <1356969793-27268-3-git-send-email-s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-01-03 17:09 ` [PATCH RFC v3 " Sylwester Nawrocki
2013-01-03 17:09 ` Sylwester Nawrocki
2013-01-18 15:48 ` Sylwester Nawrocki
2013-01-18 19:02 ` Hans Verkuil
2013-01-21 11:35 ` Hans Verkuil
2013-01-23 10:44 ` Sylwester Nawrocki [this message]
2012-12-31 16:03 ` [PATCH RFC v2 03/15] s5p-csis: Add device tree support Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 04/15] s5p-fimc: Support for FIMC devices instantiated from the device tree Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 05/15] s5p-fimc: Support for FIMC-LITE " Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 06/15] s5p-fimc: Change platform subdevs registration method Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 07/15] s5p-fimc: Support camera media device initialization on DT systems Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 08/15] s5p-fimc: Add device tree based sensors registration Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 09/15] s5p-fimc: Use pinctrl API for camera ports configuration Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 10/15] ARM: EXYNOS4: Add OF_DEV_AUXDATA for FIMC, FIMC-LITE and CSIS Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 11/15] ARM: dts: Add camera node exynos4.dtsi Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 12/15] ARM: dts: Add ISP power domain node for Exynos4x12 Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 13/15] ARM: dts: Add FIMC and MIPI CSIS device nodes " Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 14/15] ARM: dts: Add camera pinctrl nodes for Exynos4x12 SoCs Sylwester Nawrocki
2012-12-31 16:03 ` [PATCH RFC v2 15/15] ARM: dts: Add camera device nodes nodes for PQ board Sylwester Nawrocki
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=50FFBF22.7030506@samsung.com \
--to=s.nawrocki@samsung.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=g.liakhovetski@gmx.de \
--cc=grant.likely@secretlab.ca \
--cc=hverkuil@xs4all.nl \
--cc=kyungmin.park@samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=rob.herring@calxeda.com \
--cc=sw0312.kim@samsung.com \
--cc=t.figa@samsung.com \
--cc=thomas.abraham@linaro.org \
/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.