Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Steve Longerbeam and committed by
Mauro Carvalho Chehab
cdb82f82 7ca02435

+143 -7
+36 -7
Documentation/admin-guide/media/imx.rst
··· 102 102 problems with the ADV718x video decoders. 103 103 104 104 105 + Topology 106 + -------- 107 + 108 + The following shows the media topologies for the i.MX6Q SabreSD and 109 + i.MX6Q SabreAuto. Refer to these diagrams in the entity descriptions 110 + in the next section. 111 + 112 + The i.MX5/6 topologies can differ upstream from the IPUv3 CSI video 113 + multiplexers, but the internal IPUv3 topology downstream from there 114 + is common to all i.MX5/6 platforms. For example, the SabreSD, with the 115 + MIPI CSI-2 OV5640 sensor, requires the i.MX6 MIPI CSI-2 receiver. But 116 + the SabreAuto has only the ADV7180 decoder on a parallel bt.656 bus, and 117 + therefore does not require the MIPI CSI-2 receiver, so it is missing in 118 + its graph. 119 + 120 + .. _imx6q_topology_graph: 121 + 122 + .. kernel-figure:: imx6q-sabresd.dot 123 + :alt: Diagram of the i.MX6Q SabreSD media pipeline topology 124 + :align: center 125 + 126 + Media pipeline graph on i.MX6Q SabreSD 127 + 128 + .. kernel-figure:: imx6q-sabreauto.dot 129 + :alt: Diagram of the i.MX6Q SabreAuto media pipeline topology 130 + :align: center 131 + 132 + Media pipeline graph on i.MX6Q SabreAuto 133 + 105 134 Entities 106 135 -------- 107 136 ··· 406 377 boards: 407 378 408 379 409 - SabreLite with OV5642 and OV5640 410 - -------------------------------- 380 + i.MX6Q SabreLite with OV5642 and OV5640 381 + --------------------------------------- 411 382 412 383 This platform requires the OmniVision OV5642 module with a parallel 413 384 camera interface, and the OV5640 module with a MIPI CSI-2 ··· 576 547 This platform accepts Composite Video analog inputs to the ADV7180 on 577 548 Ain1 (connector J42). 578 549 579 - SabreSD with MIPI CSI-2 OV5640 580 - ------------------------------ 550 + i.MX6Q SabreSD with MIPI CSI-2 OV5640 551 + ------------------------------------- 581 552 582 - Similarly to SabreLite, the SabreSD supports a parallel interface 583 - OV5642 module on IPU1 CSI0, and a MIPI CSI-2 OV5640 module. The OV5642 584 - connects to i2c bus 1 and the OV5640 to i2c bus 2. 553 + Similarly to i.MX6Q SabreLite, the i.MX6Q SabreSD supports a parallel 554 + interface OV5642 module on IPU1 CSI0, and a MIPI CSI-2 OV5640 555 + module. The OV5642 connects to i2c bus 1 and the OV5640 to i2c bus 2. 585 556 586 557 The device tree for SabreSD includes OF graphs for both the parallel 587 558 OV5642 and the MIPI CSI-2 OV5640, but as of this writing only the MIPI
+51
Documentation/admin-guide/media/imx6q-sabreauto.dot
··· 1 + digraph board { 2 + rankdir=TB 3 + n00000001 [label="{{<port0> 0} | ipu1_csi0\n/dev/v4l-subdev0 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 4 + n00000001:port2 -> n00000005 [style=dashed] 5 + n00000001:port1 -> n0000000f:port0 [style=dashed] 6 + n00000001:port1 -> n0000000b:port0 [style=dashed] 7 + n00000005 [label="ipu1_csi0 capture\n/dev/video0", shape=box, style=filled, fillcolor=yellow] 8 + n0000000b [label="{{<port0> 0 | <port1> 1} | ipu1_vdic\n/dev/v4l-subdev1 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 9 + n0000000b:port2 -> n0000000f:port0 [style=dashed] 10 + n0000000f [label="{{<port0> 0} | ipu1_ic_prp\n/dev/v4l-subdev2 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 11 + n0000000f:port1 -> n00000013:port0 [style=dashed] 12 + n0000000f:port2 -> n0000001c:port0 [style=dashed] 13 + n00000013 [label="{{<port0> 0} | ipu1_ic_prpenc\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 14 + n00000013:port1 -> n00000016 [style=dashed] 15 + n00000016 [label="ipu1_ic_prpenc capture\n/dev/video1", shape=box, style=filled, fillcolor=yellow] 16 + n0000001c [label="{{<port0> 0} | ipu1_ic_prpvf\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 17 + n0000001c:port1 -> n0000001f [style=dashed] 18 + n0000001f [label="ipu1_ic_prpvf capture\n/dev/video2", shape=box, style=filled, fillcolor=yellow] 19 + n0000002f [label="{{<port0> 0} | ipu1_csi1\n/dev/v4l-subdev5 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 20 + n0000002f:port2 -> n00000033 [style=dashed] 21 + n0000002f:port1 -> n0000000f:port0 [style=dashed] 22 + n0000002f:port1 -> n0000000b:port0 [style=dashed] 23 + n00000033 [label="ipu1_csi1 capture\n/dev/video3", shape=box, style=filled, fillcolor=yellow] 24 + n0000003d [label="{{<port0> 0} | ipu2_csi0\n/dev/v4l-subdev6 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 25 + n0000003d:port2 -> n00000041 [style=dashed] 26 + n0000003d:port1 -> n0000004b:port0 [style=dashed] 27 + n0000003d:port1 -> n00000047:port0 [style=dashed] 28 + n00000041 [label="ipu2_csi0 capture\n/dev/video4", shape=box, style=filled, fillcolor=yellow] 29 + n00000047 [label="{{<port0> 0 | <port1> 1} | ipu2_vdic\n/dev/v4l-subdev7 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 30 + n00000047:port2 -> n0000004b:port0 [style=dashed] 31 + n0000004b [label="{{<port0> 0} | ipu2_ic_prp\n/dev/v4l-subdev8 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 32 + n0000004b:port1 -> n0000004f:port0 [style=dashed] 33 + n0000004b:port2 -> n00000058:port0 [style=dashed] 34 + n0000004f [label="{{<port0> 0} | ipu2_ic_prpenc\n/dev/v4l-subdev9 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 35 + n0000004f:port1 -> n00000052 [style=dashed] 36 + n00000052 [label="ipu2_ic_prpenc capture\n/dev/video5", shape=box, style=filled, fillcolor=yellow] 37 + n00000058 [label="{{<port0> 0} | ipu2_ic_prpvf\n/dev/v4l-subdev10 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 38 + n00000058:port1 -> n0000005b [style=dashed] 39 + n0000005b [label="ipu2_ic_prpvf capture\n/dev/video6", shape=box, style=filled, fillcolor=yellow] 40 + n0000006b [label="{{<port0> 0} | ipu2_csi1\n/dev/v4l-subdev11 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 41 + n0000006b:port2 -> n0000006f [style=dashed] 42 + n0000006b:port1 -> n0000004b:port0 [style=dashed] 43 + n0000006b:port1 -> n00000047:port0 [style=dashed] 44 + n0000006f [label="ipu2_csi1 capture\n/dev/video7", shape=box, style=filled, fillcolor=yellow] 45 + n00000079 [label="{{<port0> 0 | <port1> 1} | ipu1_csi0_mux\n/dev/v4l-subdev12 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 46 + n00000079:port2 -> n00000001:port0 [style=dashed] 47 + n0000007d [label="{{<port0> 0 | <port1> 1} | ipu2_csi1_mux\n/dev/v4l-subdev13 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 48 + n0000007d:port2 -> n0000006b:port0 [style=dashed] 49 + n00000081 [label="{{} | adv7180 3-0021\n/dev/v4l-subdev14 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] 50 + n00000081:port0 -> n00000079:port1 [style=dashed] 51 + }
+56
Documentation/admin-guide/media/imx6q-sabresd.dot
··· 1 + digraph board { 2 + rankdir=TB 3 + n00000001 [label="{{<port0> 0} | ipu1_csi0\n/dev/v4l-subdev0 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 4 + n00000001:port2 -> n00000005 [style=dashed] 5 + n00000001:port1 -> n0000000f:port0 [style=dashed] 6 + n00000001:port1 -> n0000000b:port0 [style=dashed] 7 + n00000005 [label="ipu1_csi0 capture\n/dev/video0", shape=box, style=filled, fillcolor=yellow] 8 + n0000000b [label="{{<port0> 0 | <port1> 1} | ipu1_vdic\n/dev/v4l-subdev1 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 9 + n0000000b:port2 -> n0000000f:port0 [style=dashed] 10 + n0000000f [label="{{<port0> 0} | ipu1_ic_prp\n/dev/v4l-subdev2 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 11 + n0000000f:port1 -> n00000013:port0 [style=dashed] 12 + n0000000f:port2 -> n0000001c:port0 [style=dashed] 13 + n00000013 [label="{{<port0> 0} | ipu1_ic_prpenc\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 14 + n00000013:port1 -> n00000016 [style=dashed] 15 + n00000016 [label="ipu1_ic_prpenc capture\n/dev/video1", shape=box, style=filled, fillcolor=yellow] 16 + n0000001c [label="{{<port0> 0} | ipu1_ic_prpvf\n/dev/v4l-subdev4 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 17 + n0000001c:port1 -> n0000001f [style=dashed] 18 + n0000001f [label="ipu1_ic_prpvf capture\n/dev/video2", shape=box, style=filled, fillcolor=yellow] 19 + n0000002f [label="{{<port0> 0} | ipu1_csi1\n/dev/v4l-subdev5 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 20 + n0000002f:port2 -> n00000033 [style=dashed] 21 + n0000002f:port1 -> n0000000f:port0 [style=dashed] 22 + n0000002f:port1 -> n0000000b:port0 [style=dashed] 23 + n00000033 [label="ipu1_csi1 capture\n/dev/video3", shape=box, style=filled, fillcolor=yellow] 24 + n0000003d [label="{{<port0> 0} | ipu2_csi0\n/dev/v4l-subdev6 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 25 + n0000003d:port2 -> n00000041 [style=dashed] 26 + n0000003d:port1 -> n0000004b:port0 [style=dashed] 27 + n0000003d:port1 -> n00000047:port0 [style=dashed] 28 + n00000041 [label="ipu2_csi0 capture\n/dev/video4", shape=box, style=filled, fillcolor=yellow] 29 + n00000047 [label="{{<port0> 0 | <port1> 1} | ipu2_vdic\n/dev/v4l-subdev7 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 30 + n00000047:port2 -> n0000004b:port0 [style=dashed] 31 + n0000004b [label="{{<port0> 0} | ipu2_ic_prp\n/dev/v4l-subdev8 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 32 + n0000004b:port1 -> n0000004f:port0 [style=dashed] 33 + n0000004b:port2 -> n00000058:port0 [style=dashed] 34 + n0000004f [label="{{<port0> 0} | ipu2_ic_prpenc\n/dev/v4l-subdev9 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 35 + n0000004f:port1 -> n00000052 [style=dashed] 36 + n00000052 [label="ipu2_ic_prpenc capture\n/dev/video5", shape=box, style=filled, fillcolor=yellow] 37 + n00000058 [label="{{<port0> 0} | ipu2_ic_prpvf\n/dev/v4l-subdev10 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green] 38 + n00000058:port1 -> n0000005b [style=dashed] 39 + n0000005b [label="ipu2_ic_prpvf capture\n/dev/video6", shape=box, style=filled, fillcolor=yellow] 40 + n0000006b [label="{{<port0> 0} | ipu2_csi1\n/dev/v4l-subdev11 | {<port1> 1 | <port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 41 + n0000006b:port2 -> n0000006f [style=dashed] 42 + n0000006b:port1 -> n0000004b:port0 [style=dashed] 43 + n0000006b:port1 -> n00000047:port0 [style=dashed] 44 + n0000006f [label="ipu2_csi1 capture\n/dev/video7", shape=box, style=filled, fillcolor=yellow] 45 + 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] 46 + n00000079:port2 -> n0000002f:port0 [style=dashed] 47 + n00000079:port3 -> n0000003d:port0 [style=dashed] 48 + n00000079:port1 -> n0000007f:port0 [style=dashed] 49 + n00000079:port4 -> n00000083:port0 [style=dashed] 50 + n0000007f [label="{{<port0> 0 | <port1> 1} | ipu1_csi0_mux\n/dev/v4l-subdev13 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 51 + n0000007f:port2 -> n00000001:port0 [style=dashed] 52 + n00000083 [label="{{<port0> 0 | <port1> 1} | ipu2_csi1_mux\n/dev/v4l-subdev14 | {<port2> 2}}", shape=Mrecord, style=filled, fillcolor=green] 53 + n00000083:port2 -> n0000006b:port0 [style=dashed] 54 + n00000087 [label="{{} | ov5640 1-003c\n/dev/v4l-subdev15 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green] 55 + n00000087:port0 -> n00000079:port0 [style=dashed] 56 + }