How to use a CSI camera?

I have a ov5640 csi camera,I connect it to MIPI_CSI1 and I2c3.I’m using dragonboard 410c(linux)
To register the camera device,should I modify the DTS?and How?
Is there any simple code to do this? Or any document to getting start with csi camera.

Unfortunately there is no support for CSI/MIPI cameras on Linux/Debian (it might take some time to achieve this due to Qualcomm’s camera software architecture proprietary bits).

You can follow the upstream attempt that was made some years ago in this link:

Android however should have the support you need.

Thanks to reply,
Do we have a specific time to support CSI/MIPI cameras on linux?

Sorry there is not a plan or a schedule at the moment- it is my understanding there is a willingness to resolve this although this is not a job in progress yet.

Are any MIPI-CSI cameras supported at all on any OS on DragonBoard 410c?

At one time there was a camera board in development, but now there is no sign of it; what is the plan to connect two or one camera modules to 96-boards?


I am interfacing 0v5645 camera module in android platform, can you please tell me what should i need to change in dts file.

chethan kumar


Could you please provide info on how you are hooking this to the dragonboard 410,

  • expansion board and camera part you used?


Hi,where is the documentation of the camera which is mipi imterface.I can only find clock about camera in Hardware Register Description.I ready write a camera driver base on imx224,so I refer to ov5645 driver in kernel,but I can’t debug my driver.Most problem is I not have document of camera.About ov5645’s driver of kernel,do you sure it can run accurately.My sensor driver is ok,but it can’t enter this funcation :camss->notifier.bound = camss_subdev_notifier_bound;Could you give me some suggestion.
And my revamp of device tree about imx224 camera at msm8916.dtsi is :(ov5645’s control is cci,but it’s node infermation in blsp_i2c6: i2c@78ba000,why?)
camss@0 {

ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csiphy0_ep: endpoint {
clock-lanes = <1>;
data-lanes = <0 2 3 4>;
qcom,settle-cnt = <0xe>;
remote-endpoint = <&imx224_ep>;

blsp_i2c4: i2c@78b8000 {
camera@1a {
compatible = “sony,imx224”;
reg = <0x1a>;
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = “xclk”;

    vdddo-supply = &lt;&amp;camera_vdddo_1v8&gt;;
    vdda-supply = &lt;&amp;camera_vdda_3v3&gt;;
    vddd-supply = &lt;&amp;camera_vddd_1v2&gt;;
    port {
    imx224_ep: endpoint {
      clock-lanes = &lt;1&gt;;
      data-lanes = &lt;0 2 3 4&gt;;
      remote-endpoint = &lt;&amp;csiphy0_ep&gt;;

And my I2C port is successful.Other details in camss@0,I don’t konw how to revamp,because I don’t have dacument.Please help me,thank you!

Which camera module have you connected? Did you build your own adapter or did you get it from somewhere? I have a camera module which I want to connect, but I would first like to start with a module which is working for sure.

Hi Heinz,

we have build our own adapter for the OV13850 camera for SnapDragon board 410c from Arrow, and we used codeaurora to download the SDK tree, but we could to integrate the camera updates, can you please provide us details to integrate into the kernel driver.

thanks in advance.