diff mbox series

[v2,3/3] media: imx.rst: Provide instructions for the i.MX6DL sabreauto

Message ID 20191014135424.7000-3-festevam@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2,1/3] media: imx.rst: Specify the sabreauto variant | expand

Commit Message

Fabio Estevam Oct. 14, 2019, 1:54 p.m. UTC
The i.MX6DL sabreauto has different numbering on the I2C bus and
I2C muxes compared to the i.MX6Q as shown in the kernel log below:

[    5.159423] imx-media: ipu1_csi0_mux:5 -> ipu1_csi0:0
[    5.164618] imx-media: ipu1_csi1_mux:5 -> ipu1_csi1:0
[    5.169953] imx-media: adv7180 4-0021:0 -> ipu1_csi0_mux:4

To avoid confusion, add an entry that shows how to setup the links and
configure the pads that are specific to the i.MX6DL sabreauto.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
Changes since v1:
- Add a new entry for the mx6dl sabreauto

 Documentation/media/v4l-drivers/imx.rst | 57 +++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

Comments

Steve Longerbeam Oct. 14, 2019, 5:20 p.m. UTC | #1
Hi Fabio,

On 10/14/19 6:54 AM, Fabio Estevam wrote:
> The i.MX6DL sabreauto has different numbering on the I2C bus and
> I2C muxes compared to the i.MX6Q as shown in the kernel log below:
>
> [    5.159423] imx-media: ipu1_csi0_mux:5 -> ipu1_csi0:0
> [    5.164618] imx-media: ipu1_csi1_mux:5 -> ipu1_csi1:0
> [    5.169953] imx-media: adv7180 4-0021:0 -> ipu1_csi0_mux:4
>
> To avoid confusion, add an entry that shows how to setup the links and
> configure the pads that are specific to the i.MX6DL sabreauto.
>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
> Changes since v1:
> - Add a new entry for the mx6dl sabreauto
>
>   Documentation/media/v4l-drivers/imx.rst | 57 +++++++++++++++++++++++++
>   1 file changed, 57 insertions(+)
>
> diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
> index 36e8d1226ac6..6a9dad8b050b 100644
> --- a/Documentation/media/v4l-drivers/imx.rst
> +++ b/Documentation/media/v4l-drivers/imx.rst
> @@ -572,6 +572,63 @@ supported YUV or RGB pixelformat on the capture device node.
>   This platform accepts Composite Video analog inputs to the ADV7180 on
>   Ain1 (connector J42).
>   
> +i.MX6DL SabreAuto with ADV7180 decoder
> +--------------------------------------
> +
> +On the i.MX6DL SabreAuto, an on-board ADV7180 SD decoder is connected to the
> +parallel bus input on the internal video mux to IPU1 CSI0.
> +
> +The following example configures a pipeline to capture from the ADV7180
> +video decoder, assuming NTSC 720x480 input signals, using simple
> +interweave (unconverted and without motion compensation). The adv7180
> +must output sequential or alternating fields (field type 'seq-bt' for
> +NTSC, or 'alternate'):
> +
> +.. code-block:: none
> +
> +   # Setup links
> +   media-ctl -l "'adv7180 4-0021':0 -> 'ipu1_csi0_mux':4[1]"
> +   media-ctl -l "'ipu1_csi0_mux':5 -> 'ipu1_csi0':0[1]"
> +   media-ctl -l "'ipu1_csi0':2 -> 'ipu1_csi0 capture':0[1]"
> +   # Configure pads
> +   media-ctl -V "'adv7180 4-0021':0 [fmt:UYVY2X8/720x480 field:seq-bt]"
> +   media-ctl -V "'ipu1_csi0_mux':5 [fmt:UYVY2X8/720x480]"
> +   media-ctl -V "'ipu1_csi0':2 [fmt:AYUV32/720x480]"
> +   # Configure "ipu1_csi0 capture" interface (assumed at /dev/video4)
> +   v4l2-ctl -d4 --set-fmt-video=field=interlaced_bt
> +
> +Streaming can then begin on /dev/video4. The v4l2-ctl tool can also be
> +used to select any supported YUV pixelformat on /dev/video4.
> +
> +This example configures a pipeline to capture from the ADV7180
> +video decoder, assuming PAL 720x576 input signals, with Motion
> +Compensated de-interlacing. The adv7180 must output sequential or
> +alternating fields (field type 'seq-tb' for PAL, or 'alternate').
> +
> +.. code-block:: none
> +
> +   # Setup links
> +   media-ctl -l "'adv7180 4-0021':0 -> 'ipu1_csi0_mux':4[1]"
> +   media-ctl -l "'ipu1_csi0_mux':5 -> 'ipu1_csi0':0[1]"
> +   media-ctl -l "'ipu1_csi0':1 -> 'ipu1_vdic':0[1]"
> +   media-ctl -l "'ipu1_vdic':2 -> 'ipu1_ic_prp':0[1]"
> +   media-ctl -l "'ipu1_ic_prp':2 -> 'ipu1_ic_prpvf':0[1]"
> +   media-ctl -l "'ipu1_ic_prpvf':1 -> 'ipu1_ic_prpvf capture':0[1]"
> +   # Configure pads
> +   media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x576 field:seq-tb]"

should be "'adv7180 4-0021:0".

> +   media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x576]"

should be "'ipu1_csi0_mux':5".

> +   media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x576]"
> +   media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x576 field:none]"
> +   media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x576 field:none]"
> +   media-ctl -V "'ipu1_ic_prpvf':1 [fmt:AYUV32/720x576 field:none]"

Please add (after above line):

# Configure "ipu1_ic_prpvf capture" interface (assumed at /dev/video1)
    v4l2-ctl -d1 --set-fmt-video=field=none

> +
> +Streaming can then begin on the capture device node at
> +"ipu1_ic_prpvf capture". The v4l2-ctl tool can be used to select any
> +supported YUV or RGB pixelformat on the capture device node.
> +

Please replace above paragraph with:

Streaming can then begin on /dev/video1. The v4l2-ctl tool can also be
used to select any supported YUV pixelformat on /dev/video1.

If you don't mind while you are on this, can you please add this 
v4l2-ctl step to the i.MX6Q PAL example, it is missing there as well.

Steve


> +This platform accepts Composite Video analog inputs to the ADV7180 on
> +Ain1 (connector J42).
> +
>   SabreSD with MIPI CSI-2 OV5640
>   ------------------------------
>
Fabio Estevam Oct. 15, 2019, 2:27 p.m. UTC | #2
Hi Steve,

On Mon, Oct 14, 2019 at 2:20 PM Steve Longerbeam <slongerbeam@gmail.com> wrote:

> should be "'adv7180 4-0021:0".

Will fix it.

> should be "'ipu1_csi0_mux':5".

Will fix it.

> > +   media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x576]"
> > +   media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x576 field:none]"
> > +   media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x576 field:none]"
> > +   media-ctl -V "'ipu1_ic_prpvf':1 [fmt:AYUV32/720x576 field:none]"
>
> Please add (after above line):
>
> # Configure "ipu1_ic_prpvf capture" interface (assumed at /dev/video1)
>     v4l2-ctl -d1 --set-fmt-video=field=none

Will add it and will change it to /dev/video2, which is the correct
interface on imx6dl-sabreuto.

> If you don't mind while you are on this, can you please add this
> v4l2-ctl step to the i.MX6Q PAL example, it is missing there as well.

Yes, I can add it.

What is the video device node for "ipu1_ic_prpvf capture" on the imx6q
sabreauto?

Thanks
Fabio Estevam Oct. 15, 2019, 3:41 p.m. UTC | #3
On Tue, Oct 15, 2019 at 11:27 AM Fabio Estevam <festevam@gmail.com> wrote:

> Yes, I can add it.
>
> What is the video device node for "ipu1_ic_prpvf capture" on the imx6q
> sabreauto?

I managed to get access to a imx6q-sabreauto and it's /dev/video2.

Will send a new patch series soon.

Thanks
diff mbox series

Patch

diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
index 36e8d1226ac6..6a9dad8b050b 100644
--- a/Documentation/media/v4l-drivers/imx.rst
+++ b/Documentation/media/v4l-drivers/imx.rst
@@ -572,6 +572,63 @@  supported YUV or RGB pixelformat on the capture device node.
 This platform accepts Composite Video analog inputs to the ADV7180 on
 Ain1 (connector J42).
 
+i.MX6DL SabreAuto with ADV7180 decoder
+--------------------------------------
+
+On the i.MX6DL SabreAuto, an on-board ADV7180 SD decoder is connected to the
+parallel bus input on the internal video mux to IPU1 CSI0.
+
+The following example configures a pipeline to capture from the ADV7180
+video decoder, assuming NTSC 720x480 input signals, using simple
+interweave (unconverted and without motion compensation). The adv7180
+must output sequential or alternating fields (field type 'seq-bt' for
+NTSC, or 'alternate'):
+
+.. code-block:: none
+
+   # Setup links
+   media-ctl -l "'adv7180 4-0021':0 -> 'ipu1_csi0_mux':4[1]"
+   media-ctl -l "'ipu1_csi0_mux':5 -> 'ipu1_csi0':0[1]"
+   media-ctl -l "'ipu1_csi0':2 -> 'ipu1_csi0 capture':0[1]"
+   # Configure pads
+   media-ctl -V "'adv7180 4-0021':0 [fmt:UYVY2X8/720x480 field:seq-bt]"
+   media-ctl -V "'ipu1_csi0_mux':5 [fmt:UYVY2X8/720x480]"
+   media-ctl -V "'ipu1_csi0':2 [fmt:AYUV32/720x480]"
+   # Configure "ipu1_csi0 capture" interface (assumed at /dev/video4)
+   v4l2-ctl -d4 --set-fmt-video=field=interlaced_bt
+
+Streaming can then begin on /dev/video4. The v4l2-ctl tool can also be
+used to select any supported YUV pixelformat on /dev/video4.
+
+This example configures a pipeline to capture from the ADV7180
+video decoder, assuming PAL 720x576 input signals, with Motion
+Compensated de-interlacing. The adv7180 must output sequential or
+alternating fields (field type 'seq-tb' for PAL, or 'alternate').
+
+.. code-block:: none
+
+   # Setup links
+   media-ctl -l "'adv7180 4-0021':0 -> 'ipu1_csi0_mux':4[1]"
+   media-ctl -l "'ipu1_csi0_mux':5 -> 'ipu1_csi0':0[1]"
+   media-ctl -l "'ipu1_csi0':1 -> 'ipu1_vdic':0[1]"
+   media-ctl -l "'ipu1_vdic':2 -> 'ipu1_ic_prp':0[1]"
+   media-ctl -l "'ipu1_ic_prp':2 -> 'ipu1_ic_prpvf':0[1]"
+   media-ctl -l "'ipu1_ic_prpvf':1 -> 'ipu1_ic_prpvf capture':0[1]"
+   # Configure pads
+   media-ctl -V "'adv7180 3-0021':0 [fmt:UYVY2X8/720x576 field:seq-tb]"
+   media-ctl -V "'ipu1_csi0_mux':2 [fmt:UYVY2X8/720x576]"
+   media-ctl -V "'ipu1_csi0':1 [fmt:AYUV32/720x576]"
+   media-ctl -V "'ipu1_vdic':2 [fmt:AYUV32/720x576 field:none]"
+   media-ctl -V "'ipu1_ic_prp':2 [fmt:AYUV32/720x576 field:none]"
+   media-ctl -V "'ipu1_ic_prpvf':1 [fmt:AYUV32/720x576 field:none]"
+
+Streaming can then begin on the capture device node at
+"ipu1_ic_prpvf capture". The v4l2-ctl tool can be used to select any
+supported YUV or RGB pixelformat on the capture device node.
+
+This platform accepts Composite Video analog inputs to the ADV7180 on
+Ain1 (connector J42).
+
 SabreSD with MIPI CSI-2 OV5640
 ------------------------------