[410c] can I connect camera on CSI port?


#1

Hi.

Is it possible to connect an in-house camera (with MIPI CSI-2 compatible output) to the 60-pin hi-speed CSI port connector available on 410c board? CSI port will be used for high-bandwidth streaming and I2C access to access registers.

  1. How to connect to this 60-pin hi-speed connector? Any specific cable to be used?

  2. How “accessible” are MIPI CSI ports from Android / ARMLinux kernels? Are there any APIs available in the kernel for accessing MIPI CSI transfers?

  3. How many CSI-2 compatible devices can be connected? e.g. is it possible to connect more than one camera on this connector (within total bandwidth limitations)?

Thanks in advance.

Best wishes,
pompoen


#2

Hi Pompoen,

I am not sure if you went through the documentation available so decided
to highlight them here. I don’t think they will answer all your questions
but you may find them useful.


DragonBoard 410c Hardware Manual
Snapdragon 410 Device Specification
DSI Display Porting Guide

Hopefully, more useful responses will follow.


#3

Thanks for your post.

Indeed, I had gone through the hardware manual you mentioned, but it had not clearly answered the questions I asked.

From the manual, I see that two CSI slots are available on the hi-speed connector. But I wanted to confirm that in terms of bandwidth limitations e.g. it mentions that on the connector one CSI interface will have 4 lanes and other 2 lanes, so in theory it will be possible to have 4+2 Gbps. I just wanted to confirm that.

How to access/configure/control these MIPI transfers from kernel is also not clear to me. Many a times such MIPI integration involves protected IPs and hence is not openly accessible. Hence I wanted to cross-check if we can easily connect a MIPI CSI module on the board.

Best wishes,
Pompoen


#4

The interfaces are accessible, the question is mainly whether the cameras you have in mind are documented and/or have open source drivers available. I suggest looking at cameras targeting raspberry pi devices, but do keep in mind that they operate at different voltages.

As far as I can tell, there are no breakout cables available for the HS connector. If you want to break the CSI out of the HS connector to ribbon cables, you will have to get a board printed for it.

The part you will be looking for is TE 5179030-2, which is a surface mount board to board connector that mates to the HS connector.


#5

Thanks a lot for your reply.

Indeed, we can possibly get the driver sources for camera we have in mind to connect. Can you possibly point me how to hook it in the kernel? Is there any standard API exposed by the kernel to do I2C and MIPI transfers?

Where should I start looking?

Best wishes,
Pompoen


#6

Dear Pompoen, dear Linaro team,

is there any update regarding this toppic? I am working on getting up CSI as well and any pointers would be great!

Best regards,
Dieter


#7

Dear Dieter,

I have not yet started working on this, so no update from my side. Our work on CSI use on 410c board is side-tracked for the moment due to another urgent work, but we are planning to come back to it soon.

Meanwhile, if you find something interesting, please do share it on this forum.

Best wishes,
Pompoen


#8

Hi Brothers
I am struggling to interface camera with the DRAGON 410C ,I have ov5647 raspberry pi (B) rev2.0 cam,
Anybody interface any kind of camera with DRAGON 410C

Thanks in advance
Best Wishes
Terzon


#10

Hi,

Can anyone please update the camera bringup issues? even I’m struggling to interface camera ov13850 with SnapDragon board 410c. can you please update the issue if any one have resolved it?

thanks in advance


#11

Hi Chaithra,

            You can take a look at one of the mezzanine board from AISTARVISION,here is their github repo:https://github.com/Kevin-WSCU/Dragonboard410C-Camera

,we are able to capture raw images based on their adapter board.

Regards,
Xiang


#12

Hi Xiang,

Thanks for your reply, we are using Snap dragon board 410c from Arrow, and we are using codeaurora for our SDK tree.
We have build our own adapter for CSI. we are not able to port changes to kernel level, so could you please hep us on this?

regards,
chaithra


#13

Hi Chaithra,

             From kernel perspective,it mainly involves device tree and camera driver change,also kconfig/makefile,this is basically what i've done for porting a new driver on debian(I don't have much experience for codeaurora).

Regards,
Xiang


#14

Hi Xiang,

I tried adding camera driver files in devie tree as follows:

  1. added ov13850.c file in derivers/media/i2c/ov13850.c
  2. added " config VIDEO_OV13850
    tristate "OmniVision OV13850 sensor support"
    depends on I2C && VIDEO_V4L2
    depends on MEDIA_CAMERA_SUPPORT"
    in drivers/media/i2c/kconfig file
  3. added obj-$(CONFIG_VIDEO_OV13850) += ov13850.o in drivers/media/i2c/makefile

is this changes enough for kernel build for qualcomm (qcom) for APQ8016 processor?
waiting for your reply.

Thanks in advance,
Chaithra


#15

That’s pretty everything .Are you trying to build the driver on debian?

Regards,
Xiang


#16

Hi Xiang,

I tired integrating the OV13850 camera driver in ubuntu and i flashed into SnapDragon board 410c and the changes are done for msm8916 processor, i’m able to generate ov13850.o file and its been linked to camera/build.o but when i open camera app it is closing abruptly.
how to test that driver as been integrated successfully into APQ8016 board ?


#17

Hi xiang,

I’m getting error like:
i2c /dev entries driver
[ 12.222469] platform 1d00000.qcom,vidc: Driver msm_vidc_v4l2 requests probe deferral
[ 12.235254] adp1660 i2c_add_driver success
[ 12.238439] msm_flash_init_module:1043 Enter
[ 12.242916] msm_flash_lm3642_init entry
[ 12.332414] cam_src_clk get failed
[ 12.334772] msm_camera_power_up: clk enable failed
[ 12.339546] msm_camera_power_up:1350 failed
[ 12.428591] failed rc -517
[ 12.430280] platform 20.qcom,eeprom: Driver qcom,eeprom requests probe deferral
[ 12.439264] g_sctrl[0] ffffffc030df3000
[ 12.442351] g_sctrl[1] ffffffc030df4000[ 12.445722] mt9m114_init_module:1155
[ 12.449682] mt9m114_init_module:1160 rc -19
[ 12.453503] ov5645_init_module:557
[ 12.501048] msm_cci_init: Failed in getting TOP gdscr regulator handle
[ 12.506705] msm_cci_init:763: hw_version = 0x10000008
[ 12.512110] msm_cci_irq:930 MASTER_0 error 0x10000000
[ 12.516717] msm_cci_i2c_read:428 read_words = 0, exp words = 1
[ 12.522541] msm_cci_i2c_read_bytes:506 failed rc -22
[ 12.527450] msm_camera_cci_i2c_read: line 48 rc = -22
[ 12.532612] msm_sensor_match_id: ov5645: read id failed
[ 12.537693] msm_sensor_check_id:1336 match id failed rc -22
[ 12.655319] msm_cci_init: Failed in getting TOP gdscr regulator handle
[ 12.660926] msm_cci_init:763: hw_version = 0x10000008
[ 12.666394] msm_cci_irq:930 MASTER_0 error 0x10000000
[ 12.670984] msm_cci_i2c_read:428 read_words = 0, exp words = 1
[ 12.676807] msm_cci_i2c_read_bytes:506 failed rc -22
[ 12.681719] msm_camera_cci_i2c_read: line 48 rc = -22
[ 12.686803] msm_sensor_match_id: ov5645: read id failed
[ 12.691962] msm_sensor_check_id:1336 match id failed rc -22
[ 12.805262] msm_cci_init: Failed in getting TOP gdscr regulator handle
[ 12.810866] msm_cci_init:763: hw_version = 0x10000008
[ 12.816337] msm_cci_irq:930 MASTER_0 error 0x10000000
[ 12.820928] msm_cci_i2c_read:428 read_words = 0, exp words = 1
[ 12.826752] msm_cci_i2c_read_bytes:506 failed rc -22
[ 12.831663] msm_camera_cci_i2c_read: line 48 rc = -22
[ 12.836734] msm_sensor_match_id: ov5645: read id failed
[ 12.841905] msm_sensor_check_id:1336 match id failed rc -22
[ 12.912337] msm_sensor_platform_probe ov5645 power up failed
[ 12.916971] ovti,ov5645: probe of 78.qcom,camera failed with error -22
[ 12.923523] ov7695_init_module:315
[ 12.927324] ov13850_init_module:253
[ 12.930747] ov13850_init_module:260 rc -19

Can you please help me how we can debug?
are we missing any integration in HAL or from driver?

Waiting for your reply.
Thanks in advance,
Chaithra A


#18

hi Xiang,
now im trying in debian image.
i flashed debian image 17 via SD card into snap dragon board 410c and i have my own interfacing board in which i have ov14850 camera connected. how to run the camera in vedio mode ( any command i need to run on terminal), Please help us on the issue atleast we need to try camera module up in snap dragon board 410c

waiting for your reply.
thanks in advance,
Chaithra


#19

Hello Chaithra,

             I saw another thread you asked for help with ov13850 ,it looks like there is some i2c failure there...I am not sure raw sensor can be handled by ISP or not right now,without official support of ISP(AE&AWB),it would be hard to use raw sensor,unless you just want to capture some raw images,like machine vision... Even though we have ov7251 working here(raw10),but we are still trying to reaching someone who can help with mipi to raw16 pixel transformation 

Regards,
Xiang


#20

Hello Xiang,

yes, I created new thread for help, hoping someone can help us since we are stuck in our project.
camera module contains its ISP and contains 4 lane MIPI signal interface.
so just have to integrate into dragon board 410c for android image. could you please help us on this.

when i cross checked for msm8916 it has been integrated but couldnt find any debug prints while booting, can u please tell me how can i enable i2c for camera module for msm8916.

thanks in advance.
regards,
Chaithra


#21

Hi Chaithra,

        We are building ov13850 drivers on android too,i can share it with you in about two weeks.Hope that helps

Regards,
Xiang