CSI, Cameras, etc

Greetings, I seem to be lost in a swarm of information trying to understand how the CSI interface works. I understand that only the OV5640 camera works/supported, but I cannot find a reason why. What is it about that specific camera that makes it supported? Any information that could help me understand would be great. At the moment, I’m running a custom build armbian with a 5.4.23 kernel, and trying to figure out: How does the kernel see the CSI port, or does it only see the i2c part? sunxi_cedrus seems to load, and create a /dev/video0, but I don’t know what this is, as I thought only the camera driver created the video0 device.

Thanks for any clarifications!