mirror of https://gitee.com/openkylin/linux.git
media: imx.rst: Add example media graphs
Add the media graph topologies for the i.MX6Q SabreSD and SabreAuto. This makes it easier to understand the topology and follow the entity descriptions in the following sections. Also clarify that the SabreSD and SabreLite media pipeline config examples are for the i.MX6Q boards. Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
7ca02435ff
commit
cdb82f826e
|
@ -102,6 +102,35 @@ Some of the features of this driver include:
|
|||
problems with the ADV718x video decoders.
|
||||
|
||||
|
||||
Topology
|
||||
--------
|
||||
|
||||
The following shows the media topologies for the i.MX6Q SabreSD and
|
||||
i.MX6Q SabreAuto. Refer to these diagrams in the entity descriptions
|
||||
in the next section.
|
||||
|
||||
The i.MX5/6 topologies can differ upstream from the IPUv3 CSI video
|
||||
multiplexers, but the internal IPUv3 topology downstream from there
|
||||
is common to all i.MX5/6 platforms. For example, the SabreSD, with the
|
||||
MIPI CSI-2 OV5640 sensor, requires the i.MX6 MIPI CSI-2 receiver. But
|
||||
the SabreAuto has only the ADV7180 decoder on a parallel bt.656 bus, and
|
||||
therefore does not require the MIPI CSI-2 receiver, so it is missing in
|
||||
its graph.
|
||||
|
||||
.. _imx6q_topology_graph:
|
||||
|
||||
.. kernel-figure:: imx6q-sabresd.dot
|
||||
:alt: Diagram of the i.MX6Q SabreSD media pipeline topology
|
||||
:align: center
|
||||
|
||||
Media pipeline graph on i.MX6Q SabreSD
|
||||
|
||||
.. kernel-figure:: imx6q-sabreauto.dot
|
||||
:alt: Diagram of the i.MX6Q SabreAuto media pipeline topology
|
||||
:align: center
|
||||
|
||||
Media pipeline graph on i.MX6Q SabreAuto
|
||||
|
||||
Entities
|
||||
--------
|
||||
|
||||
|
@ -377,8 +406,8 @@ The following are specific usage notes for the Sabre* reference
|
|||
boards:
|
||||
|
||||
|
||||
SabreLite with OV5642 and OV5640
|
||||
--------------------------------
|
||||
i.MX6Q SabreLite with OV5642 and OV5640
|
||||
---------------------------------------
|
||||
|
||||
This platform requires the OmniVision OV5642 module with a parallel
|
||||
camera interface, and the OV5640 module with a MIPI CSI-2
|
||||
|
@ -547,12 +576,12 @@ used to select any supported YUV pixelformat on /dev/video2.
|
|||
This platform accepts Composite Video analog inputs to the ADV7180 on
|
||||
Ain1 (connector J42).
|
||||
|
||||
SabreSD with MIPI CSI-2 OV5640
|
||||
------------------------------
|
||||
i.MX6Q SabreSD with MIPI CSI-2 OV5640
|
||||
-------------------------------------
|
||||
|
||||
Similarly to SabreLite, the SabreSD supports a parallel interface
|
||||
OV5642 module on IPU1 CSI0, and a MIPI CSI-2 OV5640 module. The OV5642
|
||||
connects to i2c bus 1 and the OV5640 to i2c bus 2.
|
||||
Similarly to i.MX6Q SabreLite, the i.MX6Q SabreSD supports a parallel
|
||||
interface OV5642 module on IPU1 CSI0, and a MIPI CSI-2 OV5640
|
||||
module. The OV5642 connects to i2c bus 1 and the OV5640 to i2c bus 2.
|
||||
|
||||
The device tree for SabreSD includes OF graphs for both the parallel
|
||||
OV5642 and the MIPI CSI-2 OV5640, but as of this writing only the MIPI
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
digraph board {
|
||||
rankdir=TB
|
||||
n00000001 [label="{{<port0> 0} | ipu1_csi0\n/dev/v4l-subdev0 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000001:port2 -> n00000005 [style=dashed]
|
||||
n00000001:port1 -> n0000000f:port0 [style=dashed]
|
||||
n00000001:port1 -> n0000000b:port0 [style=dashed]
|
||||
n00000005 [label="ipu1_csi0 capture\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000000b [label="{{<port0> 0 | <port1> 1} | ipu1_vdic\n/dev/v4l-subdev1 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000000b:port2 -> n0000000f:port0 [style=dashed]
|
||||
n0000000f [label="{{<port0> 0} | ipu1_ic_prp\n/dev/v4l-subdev2 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000000f:port1 -> n00000013:port0 [style=dashed]
|
||||
n0000000f:port2 -> n0000001c:port0 [style=dashed]
|
||||
n00000013 [label="{{<port0> 0} | ipu1_ic_prpenc\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000013:port1 -> n00000016 [style=dashed]
|
||||
n00000016 [label="ipu1_ic_prpenc capture\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000001c [label="{{<port0> 0} | ipu1_ic_prpvf\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000001c:port1 -> n0000001f [style=dashed]
|
||||
n0000001f [label="ipu1_ic_prpvf capture\n/dev/video2", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000002f [label="{{<port0> 0} | ipu1_csi1\n/dev/v4l-subdev5 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000002f:port2 -> n00000033 [style=dashed]
|
||||
n0000002f:port1 -> n0000000f:port0 [style=dashed]
|
||||
n0000002f:port1 -> n0000000b:port0 [style=dashed]
|
||||
n00000033 [label="ipu1_csi1 capture\n/dev/video3", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000003d [label="{{<port0> 0} | ipu2_csi0\n/dev/v4l-subdev6 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000003d:port2 -> n00000041 [style=dashed]
|
||||
n0000003d:port1 -> n0000004b:port0 [style=dashed]
|
||||
n0000003d:port1 -> n00000047:port0 [style=dashed]
|
||||
n00000041 [label="ipu2_csi0 capture\n/dev/video4", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000047 [label="{{<port0> 0 | <port1> 1} | ipu2_vdic\n/dev/v4l-subdev7 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000047:port2 -> n0000004b:port0 [style=dashed]
|
||||
n0000004b [label="{{<port0> 0} | ipu2_ic_prp\n/dev/v4l-subdev8 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000004b:port1 -> n0000004f:port0 [style=dashed]
|
||||
n0000004b:port2 -> n00000058:port0 [style=dashed]
|
||||
n0000004f [label="{{<port0> 0} | ipu2_ic_prpenc\n/dev/v4l-subdev9 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000004f:port1 -> n00000052 [style=dashed]
|
||||
n00000052 [label="ipu2_ic_prpenc capture\n/dev/video5", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000058 [label="{{<port0> 0} | ipu2_ic_prpvf\n/dev/v4l-subdev10 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000058:port1 -> n0000005b [style=dashed]
|
||||
n0000005b [label="ipu2_ic_prpvf capture\n/dev/video6", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000006b [label="{{<port0> 0} | ipu2_csi1\n/dev/v4l-subdev11 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000006b:port2 -> n0000006f [style=dashed]
|
||||
n0000006b:port1 -> n0000004b:port0 [style=dashed]
|
||||
n0000006b:port1 -> n00000047:port0 [style=dashed]
|
||||
n0000006f [label="ipu2_csi1 capture\n/dev/video7", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000079 [label="{{<port0> 0 | <port1> 1} | ipu1_csi0_mux\n/dev/v4l-subdev12 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000079:port2 -> n00000001:port0 [style=dashed]
|
||||
n0000007d [label="{{<port0> 0 | <port1> 1} | ipu2_csi1_mux\n/dev/v4l-subdev13 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000007d:port2 -> n0000006b:port0 [style=dashed]
|
||||
n00000081 [label="{{} | adv7180 3-0021\n/dev/v4l-subdev14 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000081:port0 -> n00000079:port1 [style=dashed]
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
digraph board {
|
||||
rankdir=TB
|
||||
n00000001 [label="{{<port0> 0} | ipu1_csi0\n/dev/v4l-subdev0 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000001:port2 -> n00000005 [style=dashed]
|
||||
n00000001:port1 -> n0000000f:port0 [style=dashed]
|
||||
n00000001:port1 -> n0000000b:port0 [style=dashed]
|
||||
n00000005 [label="ipu1_csi0 capture\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000000b [label="{{<port0> 0 | <port1> 1} | ipu1_vdic\n/dev/v4l-subdev1 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000000b:port2 -> n0000000f:port0 [style=dashed]
|
||||
n0000000f [label="{{<port0> 0} | ipu1_ic_prp\n/dev/v4l-subdev2 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000000f:port1 -> n00000013:port0 [style=dashed]
|
||||
n0000000f:port2 -> n0000001c:port0 [style=dashed]
|
||||
n00000013 [label="{{<port0> 0} | ipu1_ic_prpenc\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000013:port1 -> n00000016 [style=dashed]
|
||||
n00000016 [label="ipu1_ic_prpenc capture\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000001c [label="{{<port0> 0} | ipu1_ic_prpvf\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000001c:port1 -> n0000001f [style=dashed]
|
||||
n0000001f [label="ipu1_ic_prpvf capture\n/dev/video2", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000002f [label="{{<port0> 0} | ipu1_csi1\n/dev/v4l-subdev5 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000002f:port2 -> n00000033 [style=dashed]
|
||||
n0000002f:port1 -> n0000000f:port0 [style=dashed]
|
||||
n0000002f:port1 -> n0000000b:port0 [style=dashed]
|
||||
n00000033 [label="ipu1_csi1 capture\n/dev/video3", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000003d [label="{{<port0> 0} | ipu2_csi0\n/dev/v4l-subdev6 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000003d:port2 -> n00000041 [style=dashed]
|
||||
n0000003d:port1 -> n0000004b:port0 [style=dashed]
|
||||
n0000003d:port1 -> n00000047:port0 [style=dashed]
|
||||
n00000041 [label="ipu2_csi0 capture\n/dev/video4", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000047 [label="{{<port0> 0 | <port1> 1} | ipu2_vdic\n/dev/v4l-subdev7 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000047:port2 -> n0000004b:port0 [style=dashed]
|
||||
n0000004b [label="{{<port0> 0} | ipu2_ic_prp\n/dev/v4l-subdev8 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000004b:port1 -> n0000004f:port0 [style=dashed]
|
||||
n0000004b:port2 -> n00000058:port0 [style=dashed]
|
||||
n0000004f [label="{{<port0> 0} | ipu2_ic_prpenc\n/dev/v4l-subdev9 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000004f:port1 -> n00000052 [style=dashed]
|
||||
n00000052 [label="ipu2_ic_prpenc capture\n/dev/video5", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000058 [label="{{<port0> 0} | ipu2_ic_prpvf\n/dev/v4l-subdev10 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000058:port1 -> n0000005b [style=dashed]
|
||||
n0000005b [label="ipu2_ic_prpvf capture\n/dev/video6", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000006b [label="{{<port0> 0} | ipu2_csi1\n/dev/v4l-subdev11 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000006b:port2 -> n0000006f [style=dashed]
|
||||
n0000006b:port1 -> n0000004b:port0 [style=dashed]
|
||||
n0000006b:port1 -> n00000047:port0 [style=dashed]
|
||||
n0000006f [label="ipu2_csi1 capture\n/dev/video7", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000079 [label="{{<port0> 0} | imx6-mipi-csi2\n/dev/v4l-subdev12 | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000079:port2 -> n0000002f:port0 [style=dashed]
|
||||
n00000079:port3 -> n0000003d:port0 [style=dashed]
|
||||
n00000079:port1 -> n0000007f:port0 [style=dashed]
|
||||
n00000079:port4 -> n00000083:port0 [style=dashed]
|
||||
n0000007f [label="{{<port0> 0 | <port1> 1} | ipu1_csi0_mux\n/dev/v4l-subdev13 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000007f:port2 -> n00000001:port0 [style=dashed]
|
||||
n00000083 [label="{{<port0> 0 | <port1> 1} | ipu2_csi1_mux\n/dev/v4l-subdev14 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000083:port2 -> n0000006b:port0 [style=dashed]
|
||||
n00000087 [label="{{} | ov5640 1-003c\n/dev/v4l-subdev15 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000087:port0 -> n00000079:port0 [style=dashed]
|
||||
}
|
Loading…
Reference in New Issue