[RFC/PATCH 04/13] devicetree: Add common video devices bindings documentation
Sylwester Nawrocki
sylvester.nawrocki at gmail.com
Thu Jul 19 02:58:53 EST 2012
Hi Guennadi,
On 07/16/2012 11:09 AM, Guennadi Liakhovetski wrote:
> On Fri, 25 May 2012, Sylwester Nawrocki wrote:
>
>> Signed-off-by: Sylwester Nawrocki<s.nawrocki at samsung.com>
>> Signed-off-by: Kyungmin Park<kyungmin.park at samsung.com>
>> ---
>> Documentation/devicetree/bindings/video/video.txt | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/video/video.txt
>>
>> diff --git a/Documentation/devicetree/bindings/video/video.txt b/Documentation/devicetree/bindings/video/video.txt
>> new file mode 100644
>> index 0000000..9f6a637
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/video/video.txt
>> @@ -0,0 +1,10 @@
>> +Common properties of video data source devices (image sensor, video encoders, etc.)
>> +
>> +Video bus types
>> +---------------
>> +
>> +- video-bus-type : must be one of:
>> +
>> + - itu-601 : parallel bus with HSYNC and VSYNC - ITU-R BT.601;
>> + - itu-656 : parallel bus with embedded synchronization - ITU-R BT.656;
>
> wikipedia tells me, that bt.601 is mostly a data encoding standard, it
> also defines bus-types, but recent versions also include serial busses.
Hmm, indeed, I got slightly misled by the Samsung SoCs' User Manuals
that used bt.601/bt.656 to distinguish between bus with sync signals
and with embedded sync.
>> + - mipi-csi2 : MIPI-CSI2 serial bus;
>
> In general: are these at all needed? Wouldn't it be better to specify pads
> on sensors and interfaces to differentiate between serial and parallel
> connections. As for whether HSYNC and VSYNC are used - I see 3
We have video buses and data receivers and transmitters attached to them.
The pads concept doesn't quite fit here for me. Specifying possible links
with character string tags might be a way to go, but I'd like to hear
others' opinion on that. Do we have any bindings already that do something
similar ?
> possibilities there:
>
> 1. real sync signals are used - the default.
>
> 2. embedded syncs shall be used, because sync signals are missing. This
> should (arguably) be derived from pinctrl - see this discussion:
>
> http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/index.html#03893
Hmm, I'm not terribly familiar with pinctrl API, but wouldn't it be
required to have two pin group names: (data + clock + sync) signals and
(data + clock) (for embedded video synchronization) ? We would have to name
these two configurations somehow anyway, wouldn't we ?
Also, as Stephen pointed out, the control flow is supposed to be from
drivers to pin controller, not the other way around.
> 3. sync signals are present, but cannot be used, because one of the
> partners doesn't support them - .g_mbus_config() can be used to retrieve
> this information.
OK.
> 4. sync signals are available and supported by both peers, but for some
> reason the user prefers to use embedded sync data - is such a case
> feasible? Even if so, this should be run-time configurable then?
I've never seen such a situation. I would expect that if sync signal wires
are routed, they shall be used. Otherwise only embedded synchronization
would be used, to save PCB area.
> So, maybe we don't need these at all.
We need something that would let drivers distinguish which (serial/
parallel) bus is supported on a board. And what type of synchronization
is used. I'm fine as long as this can be specified reliably in DT and
drivers of the transmitters/receivers can configure their output/input
interfaces. I'm not against dynamic configuration but static one also
need to be supported.
--
Regards,
Sylwester
More information about the devicetree-discuss
mailing list