MIPI-CSI drivers

Hey,

I saw the imx6 has the MIPI-CSI(2) interface, and was wondering whether that could be “abused” as a data streaming channel from a custom device (FPGA) to the iMX6.

Apart from obviously needing an IP core for the FPGA which implements this - what about the CPU end? Is there such a thing as a generic CSI driver for Linux which can be opened to receive raw data, or does every application need an custom driver?

I so far have only seen that one Toradex partner makes a camera module, and that one seems to have a custom driver (I found the module in my linux installation on the iMX6).
But does it have to be this way?

Regards,
sk

I saw the imx6 has the MIPI-CSI(2) interface, and was wondering whether that could be “abused” as a data streaming channel from a custom device (FPGA) to the iMX6.

Sure, why not?

Apart from obviously needing an IP core for the FPGA which implements this - what about the CPU end? Is there such a thing as a generic CSI driver for Linux which can be opened to receive raw data, or does every application need an custom driver?

No, this is usually abstracted by Video for Linux 2 (V4L2) which consists of a camera controller driver (e.g. for the IP inside the SoC aka what you call CPU end) as well as a sensor driver (e.g. to configure the sensor like the OV5640 on our CSI camera module). For sensor-less applications, one may use the generic platform sensor driver.

I so far have only seen that one Toradex partner makes a camera module, and that one seems to have a custom driver (I found the module in my linux installation on the iMX6). But does it have to be this way?

I’m not exactly sure what you mean by “custom driver”. It’s really just a camera sensor driver which is camera sensor specific but usually has not mutch to do with CSI-2 apart from just configuring the sensor to output in the desired format and such.

Ah, thanks.

You are welcome. Thanks for the feedback.