Using Analogue Camera Module ver. 2.0A with apalis IMX6 problem

Hello, haw i can use Analogue Camera Module ver.2.0A with my Apalis IMX6 Evaluation Board rev 1.1?
maybe i can download additional driver or patch for supporting this function in kernel. I use toradex BSP 2.5 beta 3 (latest on website):
root@apalis-imx6:~# cat /proc/version
Linux version 3.14.28-V2.5b3+g0632def (homer@ubuntu) (gcc version 4.9.3 20150311 (prerelease) (Linaro GCC 4.9-2015.03) )

root@apalis-imx6:~# dmesg | grep adv
[ 8.662801] adv7180 3-0021: no sensor pwdn pin available

the error is:

root@apalis-imx6:~# gst-launch tvsrc ! imxv4l2sink
MFW_GST_tvsrc_PLUGIN 4.0.3 build on Feb 10 2016 18:37:30.
[ 94.719686] ERROR: v4l2 capture: slave not found! V4L2_CID_HUE
[ 94.725627] ERROR: v4l2 capture: slave not found! V4L2_CID_HUE
[ 94.731493] ERROR: v4l2 capture: slave not found! V4L2_CID_HUE
[ 94.741426] ERROR: v4l2 capture: slave not found! V4L2_CID_HUE
Setting pipeline to PAUSED …
ERROR: Pipeline doesn’t want to pause.
Setting pipeline to NULL …
Total rendered:0
Freeing pipeline …

Thank you for support.

There is currently no driver available for Linux on an i.MX 6 based module.

For the Tegra based modules a driver is integrated into the latest BSP.

Can i use driver source code from Tegra based modules BSP for imx6 module purpose? If yes? please tell me how to do that.
thank you for support.

Is there any timeframe for adding Linux support for the Analogue Camera Module ver. 2.0A on Apalis IMX6 Evaluation Board rev 1.1?

We have bought the ACM 2.0A and Evaluation Board 1.1 hardware and are unable to get the demo working.

Thank you.

I have managed to get this working now.

I modified the driver to add support:

diff --git a/drivers/media/platform/mxc/capture/adv7180.c b/drivers/media/platform/mxc/capture/adv7180.c
index a41aedf..e801e5f6 100644
--- a/drivers/media/platform/mxc/capture/adv7180.c
+++ b/drivers/media/platform/mxc/capture/adv7180.c
@@ -19,6 +19,8 @@
  * @ingroup Camera
  */
 
+#define DEBUG
+
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/device.h>
@@ -1146,6 +1148,7 @@ static int adv7180_probe(struct i2c_client *client,
                break;
        case 0x40:
        case 0x41:
+       case 0x42:
                dev_dbg(dev,
                        "%s:Analog Device adv7182 ident %2X detected!\n", __func__,
                        adv7180_data.rev_id);
@@ -1153,6 +1156,8 @@ static int adv7180_probe(struct i2c_client *client,
        default:
                dev_dbg(dev,
                        "%s:Analog Device adv7180 not detected!\n", __func__);
+               dev_dbg(dev,
+                       "%s:Analog Device adv7180 rev_id: %2X\n", __func__, adv7180_data.rev_id);
                return -ENODEV;
        }

NOTE: The jumper configuration (x56, x58) documented in the “analogue_camera_module_datasheet.pdf” are no longer needed and leave all the jumpers for x57 in place.

Hi,
Thank you very much for your solution.
Applying this lead me a good step towards a functioning ADV7280 driver.
The only problem that still remains in my case is that gstreamer still says it cannot pause the pipeline and quits.

root@apalis-imx6:~# gst-launch-1.0 imxv4l2src ! imxv4l2sink
====== IMXV4L2SRC: 4.0.8 build on Apr 28 2016 12:15:26. ======
====== IMXV4L2SINK: 4.0.8 build on Apr 28 2016 12:15:26. ======
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...

The ADV seems to work correct, as i get the “not synced” status when no camera is there and the “synced” status when it is connected. Can you maybe give me a hint why gstreamer thinks that its stream wasn’t paused? Or where i could have a look at to fix this issue?

ADV driver output generated by the gstreamer call (camera attached and synced because status is 0x4F):

[  783.535370] adv7180 3-0021: adv7180:ioctl_g_ifparm
[  783.535403] adv7180 3-0021: adv7180:ioctl_g_fmt_cap
[  783.535469] adv7180 3-0021: adv7180:ioctl_s_power
[  783.535493] adv7180 3-0021: adv7180_write_reg:write reg 0x f, val: 0x 4
[  783.943332] adv7180 3-0021: In adv7180:ioctl_init
[  783.943360] adv7180 3-0021: adv7180:ioctl_dev_init
[  783.943490] adv7180 3-0021: adv7180:ioctl_g_fmt_cap
[  783.943515] adv7180 3-0021: In adv7180_get_std
[  783.944220] adv7180 3-0021: adv7180_read:read reg 0x10, val: 0x4f
[  785.943325] adv7180 3-0021: adv7180:ioctl_s_power
[  785.943360] adv7180 3-0021: adv7180_write_reg:write reg 0x f, val: 0x24

The 2.6 Beta 2 release has support for ADV7280 turned on by default and was added with the following patch.