AnsweredAssumed Answered

imx6: fingerprint as a Camera and ov5640 at the same board.

Question asked by Fernando Mercado on Jan 7, 2019
Latest reply on Jan 8, 2019 by Fernando Mercado

Hi,

I´m using an imx6q with android Oreo 8.0 and I want to get a sensor fingerprint works as a Camera and the camera ov5640 without problems.

I mean:

## On Linux I have v4l2_cap_0 mapping the fingerprint to video0 and i2c-2, for the v4l2_cap_1 is mapping ov564x_mipi to video1 and i2c-0:

 

v4l2_cap_0 -----> video0 fingerprint ---------> i2c-2 (video0)

         |
imx6q-v4l2-capture


v4l2_cap_1 -----> video1 ov564x_mipi -------> i2c-0 (video1)
         |
imx6q-v4l2-capture

 

## In the device tree I have this:

 

i2c3 ------> fingerprint (csi_id = 0)
i2c1 ------> ov564x_mipi (csi_id = 1)

 

fingerprint -----> v4l2_cap_0 ------> csi_id = 0
ov5640 -----> v4l2_cap_1 ------> csi_id = 1

 

But I can´t get it works.

This is my output through ADB shell:

 

check:/ # dmesg | grep -i fingerprint
[ 1.852344] 0x000000000000-0x000000800000 : "fingerprint"
[ 2.568910] fingerprint : fingerprint _data.csi = [0]
[ 2.571703] Configuring fingerprint for 8-bit greyscale mode.
[ 2.660522] fingerprint : fingerprint _power: set power=1, current state=0
[ 2.665231] fingerprint : fingerprint  power On
[ 2.667596] fingerprint : fingerprint  reset
[ 2.751245] fingerprint : fingerprint _power: set power=0, current state=1
[ 2.755953] fingerprint : fingerprint  power Off
[ 2.780539] fingerprint : fingerprint _data.i2c_client->irq = [0]
[ 2.784465] fingerprint : fingerprint _data.i2c_client->name = [fingerprint]
[ 2.788997] camera fingerprint found
[ 11.950298] fingerprint : fingerprint _power: set power=1, current state=0
[ 11.955102] fingerprint : fingerprint  power On
[ 11.957469] fingerprint : fingerprint  reset
[ 12.040675] fingerprint : fingerprint _power: set power=0, current state=1
[ 12.045393] fingerprint : fingerprint  power Off

 

check:/ # dmesg | grep -i ov56
[ 2.791213] ov5640: ov5640_data.csi = [1]
[ 3.150545] ov5640: ov5640_data.i2c_client->irq = [0]
[ 3.154300] ov5640: ov5640_data.i2c_client->name = [ov564x_mipi]
[ 3.159006] camera ov5640_mipi is found

 

check:/ # dmesg | grep -i ipu
[ 0.499675] imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[ 0.529667] imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[ 0.531016] IPU: gmipi_csi2->ipu_id = [0]
[ 0.531025] IPU: gmipi_csi2->csi_id = [1]

 

check:/ # dmesg | grep -i v4l2
[ 2.556801] mxc_v4l2_output v4l2_out: V4L2 device registered as video16
[ 2.562332] mxc_v4l2_output v4l2_out: V4L2 device registered as video17

 

check:/ # ls -lrat /dev/video*

crw-rw---- 1 system camera 81, 1 2019-01-07 17:03 /dev/video17
crw-rw---- 1 system graphics 81, 0 2019-01-07 17:03 /dev/video16
crw-rw-rw- 1 system camera 81, 3 2019-01-07 17:03 /dev/video1
crw-rw-rw- 1 system camera 81, 2 2019-01-07 17:03 /dev/video0

 

check:/ # ls -lrat /dev/i2c-*

crw-rw-rw- 1 system root 89, 2 2019-01-07 17:03 /dev/i2c-2
crw------- 1 root root 89, 1 2019-01-07 17:03 /dev/i2c-1
crw-rw-rw- 1 system root 89, 0 2019-01-07 17:03 /dev/i2c-0

 

We can see above, the two cameras are found, but when I start the default app for the camera I get; "Can´t connect to the camera". But the app for the fingerprint it works without problem.

 

Perhaps, with some "sepolicy" it could be resolve, however I'm not sure.

Can someone help me, or give some advice please?.

Regards,

Thanks.

Outcomes