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: 30+ 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
2013-01-03 17:09 ` [PATCH RFC v3 " 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox