How to enable MIPI-CSI camera (e.g., OV5640) on Apalis iMX8QM with Ixora V1.3 via X28 connector?

I am using the Apalis iMX8QM SoM with the Ixora Carrier Board V1.3, and I’m planning to connect a **MIPI-CSI camera (e.g., OV5640) ** using the X28 camera connector on the Ixora board.

Here is what I’ve investigated so far:

  1. The following Device Tree files are relevant to my setup:
  • imx8qm-apalis-v1.1-ixora-v1.2.dts
  • imx8-apalis-ixora-v1.2.dtsi
  1. In these files, I confirmed that I2C3 is configured correctly, and according to the Ixora datasheet, **I2C3 is routed to the MIPI-CSI camera connector (X28) **.
  2. However, I don’t see any mipi_csi or mipi_csi_x nodes in the above DTS/DTSI files.
  3. Deeper in the DTS include hierarchy, inside:
  • imx8-ss-img.dtsi
    I found declarations for:
    mipi_csi_0: mipi_csi@58227000
    mipi_csi_1: mipi_csi@58228000

My questions are:

  • Since the Ixora board has only one MIPI-CSI connector (X28), which mipi_csi_x instance (mipi_csi_0 or mipi_csi_1) corresponds to the X28 connector?
  • Is it correct to extend the DTS by referencing the appropriate mipi_csi_x node from imx8-ss-img.dtsi and link it to the camera sensor node (e.g., OV5640)?
  • Are there any additional nodes (e.g., CSI bridge, camera mux, etc.) I should be aware of to make this work?

Any guidance on properly extending the device tree for enabling the MIPI-CSI camera on X28 would be highly appreciated.

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thanks for the detailed summary of your setup and research. I’m glad to help clarify how to enable a MIPI-CSI camera (like the OV5640) on the Ixora board with the Apalis iMX8QM.

1. Which mipi_csi_x instance maps to X28?

The Ixora Carrier Board provides a single MIPI-CSI connector (X28). On the Apalis iMX8QM, this connector is routed to the first available MIPI-CSI interface of the SoM. In Toradex designs and reference device trees, MIPI-CSI0 (mipi_csi_0: mipi_csi@58227000) is typically associated with X28.

  • mipi_csi_0 → X28 MIPI-CSI connector

You can verify this by cross-referencing the Ixora Carrier Board documentation and reviewing I2C_CAM1 lines and associated signals. The other instance (mipi_csi_1) is not routed to the X28, so you should use mipi_csi_0.


2. Correct way to extend the DTS

Yes, to enable a camera sensor like the OV5640 on X28:

  • Reference and enable the mipi_csi_0 node from imx8-ss-img.dtsi in your custom device tree.
  • Create a camera sensor node under the appropriate I2C controller (usually i2c3 for Ixora), and link it as a port to the mipi_csi_0 node.

For example (pseudocode – adapt as needed):

&i2c3 {
    status = "okay";

    ov5640: camera@3c {
        compatible = "ovti,ov5640";
        reg = <0x3c>;
        // Camera specifics here
        // ...
        port {
            ov5640_to_csi_ep: endpoint {
                remote-endpoint = <&csi_from_ov5640_ep>;
                // Data lane config here
            };
        };
    };
};

&mipi_csi_0 {
    status = "okay";
    port {
        csi_from_ov5640_ep: endpoint {
            remote-endpoint = <&ov5640_to_csi_ep>;
            // Data lane config here
        };
    };
};

3. Additional required nodes (CSI bridge, mux, etc.)

On many i.MX8 designs, the data flow is:
camera → mipi_csi_0 → csi_bridge (if present) → image converter (like ISI) → video nodes

  • CSI Bridge nodes or ISI (image sensor interface) nodes may need to be enabled.

  • You need to check your device tree hierarchy for nodes like:

    • isi_0: isi@... (Image Sensor Interface)
    • csi_bridge: csi-bridge@... or similar bridges between MIPI-CSI and ISI.

    These typically have ports that link to the MIPI-CSI and then onward.

  • The correct phandle links between endpoint nodes are required for the camera pipeline to be described end-to-end.


Quick checklist:

  1. Use mipi_csi_0 for X28.
  2. Add the camera node under i2c3.
  3. Connect endpoints between camera and mipi_csi_0, and then forward if required (to ISI/bridge).
  4. Ensure status = “okay”; for all pipeline components.
  5. Validate cross-references of all endpoints.
  6. Check for any additional power enable GPIO or regulator nodes required by your camera module.

Reference Links

If you need an example device tree snippet for a similar pipeline or have a specific question about the layout of the nodes, feel free to ask!

Best regards,
Toradex AI Assistant.

@ToradexAI
Do we have only 1 mipi-csi connector-X28 in Ixora carrier board. Is it mipi_csi_0 node or mipi_csi_1 node? How do you confirm it? Please provide valid proofs

Thanks for your response.

Please remember to tick the “Solution” checkbox below if my response solves your question. If you have follow-up questions, just continue to tag me using @ToradexAI in your new posts.

Did you like my answer? :+1: :-1:


Hello!

Here’s the clarification based on official documentation and available resources:

  1. Only One MIPI-CSI Connector (X28) on Ixora
    The Ixora Carrier Board (all versions, including V1.3) provides only a single MIPI-CSI camera connector, labeled X28:
  1. Mapping to mipi_csi_0 vs mipi_csi_1
    The board schematic and datasheet do not explicitly map the X28 connector to a MIPI CSI instance by name (e.g., “CSI0” or “mipi_csi_0”). However, certain points strongly indicate the mapping:
  • The Toradex documentation for the CSI Camera Module states:
    “The CSI Camera Module can be connected to the MIPI-CSI connector on the Ixora carrier board V1.1.”
    CSI Camera Module 5MP OV5640 | Toradex Developer Center

  • Default device trees for the Apalis iMX8QM with Ixora only configure one video input (the first camera), suggesting the only available interface is the first (mipi_csi_0).

  • The Apalis iMX8 datasheet and the Ixora schematics show that the MIPI-CSI signals from the SoM route directly to X28. Since only one connector and corresponding set of MIPI-CSI signals are routed, it is industry convention and normal Toradex practice for this to be mipi_csi_0.

  • For the Apalis iMX8 platform device trees, when only one camera input is present, the platform assigns it to mipi_csi_0.

Thus, the X28 MIPI-CSI connector on the Ixora Carrier Board maps to mipi_csi_0.

For these reasons, when enabling or configuring your device tree, you should use the mipi_csi_0 node.

To summarize:

  • There is only one MIPI-CSI connector (X28) on Ixora.
  • It is routed to mipi_csi_0.

References:

Best regards,
Toradex AI Assistant.

Hey @dhatchayani_l,

We have our developer portal that walks you through setting up the OV5640.

Please make sure to enable the device tree as described.

-Eric

@ToradexAI

The CSI data lanes and clock pin’s mxm3 pin numbers in the Ixora carrier board’s datasheet is mapped with the MIPI_CSI1 ball names in the apalis imx8 datasheet.

clarify on this whether we need to use the mipi_csi_1 or mipi_csi_0 ?

Thanks for your response.

Please remember to tick the “Solution” checkbox below if my response solves your question. If you have follow-up questions, just continue to tag me using @ToradexAI in your new posts.

Did you like my answer? :+1: :-1:


Hello,

Your observation is correct and important:
The Ixora carrier board’s camera connector (X28) MIPI-CSI data and clock signals are routed to MXM3 pins that, in the Apalis iMX8 datasheet, are associated with the MIPI_CSI1 signals (with ball names such as MIPI_CSI1_CLK_P, MIPI_CSI1_DATA0_P, etc.).

Therefore:

  • You should use the device tree node mipi_csi_1 for the camera on the X28 connector, not mipi_csi_0.

How to confirm this:

  1. Pin Mapping Proof:

  2. Ixora Schematic and Documentation:

    • Ixora maps the X28 camera connector signals to these MXM3 pins.
  3. Device Tree Mapping:

    • When configuring your camera in the device tree, link your camera endpoint to the mipi_csi_1 node (not mipi_csi_0).

Summary Table:

Ixora X28 / MXM3 Pin Apalis iMX8 Ball Name MIPI CSI Signal Device Tree Node
163 MIPI_CSI1_CLK_P CSI1_CLK+ mipi_csi_1
161 MIPI_CSI1_CLK_N CSI1_CLK- mipi_csi_1
157 MIPI_CSI1_DATA0_P CSI1_D1+ mipi_csi_1
155 MIPI_CSI1_DATA0_N CSI1_D1- mipi_csi_1

Action:

  • Use mipi_csi_1 in your device tree for the camera attached to X28 on Ixora.

References:

If you want to see example device tree snippets, let me know!

Best regards,
Toradex AI Assistant.

Hi @dhatchayani_l ,

Issue resolved for you?

Best regards,