On 01/31/2013 07:41 PM, Sylwester Nawrocki wrote:
From: Guennadi Liakhovetski g.liakhovet...@gmx.de
This patch adds a document describing common OF bindings for video
capture, output and video processing devices. It is curently mainly
focused on video capture devices, with data busses defined by
standards like ITU-R BT.656 or MIPI-CSI2.
It also documents a method of describing data links between devices.
Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
Signed-off-by: Sylwester Nawrocki s.nawro...@samsung.com
---
Changes since v5:
- added 'ports' node documentation
Hi Rob, Grant,
there was no more comments on this patch for a relatively long time
now. Would you apply it to your tree or could I send it for inclusion
in the media tree with your Ack ?
This version is different from the previous one that had your Ack
only in that there is now an optional 'ports' node aggregating all
'port' nodes of a device.
Thanks,
Sylwester
---
.../devicetree/bindings/media/video-interfaces.txt | 227
1 file changed, 227 insertions(+)
create mode 100644
Documentation/devicetree/bindings/media/video-interfaces.txt
diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt
b/Documentation/devicetree/bindings/media/video-interfaces.txt
new file mode 100644
index 000..278b17a
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/video-interfaces.txt
@@ -0,1 +1,227 @@
+Common bindings for video data receiver and transmitter interfaces
+
+General concept
+---
+
+Video data pipelines usually consist of external devices, e.g. camera
sensors,
+controlled over an I2C, SPI or UART bus, and SoC internal IP blocks,
including
+video DMA engines and video data processors.
+
+SoC internal blocks are described by DT nodes, placed similarly to other SoC
+blocks. External devices are represented as child nodes of their respective
+bus controller nodes, e.g. I2C.
+
+Data interfaces on all video devices are described by their child 'port'
nodes.
+Configuration of a port depends on other devices participating in the data
+transfer and is described by 'endpoint' subnodes.
+
+device {
+ ...
+ ports {
+ #address-cells = 1;
+ #size-cells = 0;
+
+ port@0 {
+ endpoint@0 { ... };
+ endpoint@1 { ... };
+ };
+ port@1 { ... };
+ };
+};
+
+If a port can be configured to work with more than one remote device on the
same
+bus, an 'endpoint' child node must be provided for each of them. If more
than
+one port is present in a device node or there is more than one endpoint at a
+port, or port node needs to be associated with a specific hardware interface,
+a common scheme using '#address-cells', '#size-cells' and 'reg' properties is
+used.
+
+All 'port' nodes can be grouped under optional 'ports' node, which allows to
+specify #address-cells, #size-cells properties independently for the 'port'
+and 'endpoint' nodes and any children device nodes the device might have.
+
+Two 'endpoint' nodes are linked with each other through their
'remote-endpoint'
+phandles. An endpoint subnode of a device contains all properties needed for
+configuration of this device for data exchange with the other device. In
most
+cases properties at the peer 'endpoint' nodes will be identical, however
+they might need to be different when there is any signal modifications on the
+bus between two devices, e.g. there are logic signal inverters on the lines.
+
+It is allowed for multiple endpoints at a port to be active simultaneously,
+where supported by a device. For example, in case where a data interface of
+a device is partitioned into multiple data busses, e.g. 16-bit input port
+divided into two separate ITU-R BT.656 8-bit busses. In such case bus-width
+and data-shift properties can be used to assign physical data lines to each
+endpoint node (logical bus).
+
+
+Required properties
+---
+
+If there is more than one 'port' or more than one 'endpoint' node or 'reg'
+property is present in port and/or endpoint nodes the following properties
+are required in relevant parent node:
+
+ - #address-cells : number of cells required to define port/endpoint
+ identifier, should be 1.
+ - #size-cells: should be zero.
+
+Optional endpoint properties
+
+
+- remote-endpoint: phandle to an 'endpoint' subnode of the other device node.
+- slave-mode: a boolean property indicating that the link is run in slave
mode.
+ The default when this property is not specified is master mode. In the
slave
+ mode horizontal and vertical synchronization signals are provided to the
+ slave device (data source) by the master device (data sink). In the master
+ mode the data source device is also the source of the synchronization