Framos driver on custom board

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 information and for sharing your device tree and module setup. Based on your logs and the output from your media controller, it looks like your IMX662 sensor is being successfully detected and registered as a V4L2 subdevice. However, your media pipeline—according to the media controller output—is incomplete: it seems the sensor subdevice is not actually being linked through to the rest of the processing chain (ISP, DWE, etc.), and the entities (subdevices) are not forming the expected connections. Here are some steps and pointers to help you debug this further:

1. Kernel Module Loading Order

The Vivante VVCAM stack often requires modules to be loaded in a specific order for the media graph to set up properly. As a rule of thumb:

  • Remove all media-related modules, especially the custom ones (VVCAM ISP, DWE, etc.).
  • Insert the camera sensor driver (in your case, imx662) first.
  • Re-insert or load ISP, DWE, and VVCAM modules afterwards.

This ordering allows the drivers to register their entities so that the kernel can establish links in the media graph between them automatically.

More on module handling:

2. Review Your Device Tree

Your device tree fragments look comprehensive, but be sure to:

  • Double-check the compatible string (“framos,imx662”) matches what your driver expects.
  • Ensure all supplies and GPIOs (especially rst-gpios) are right for your board’s hardware design.
  • Review the remote-endpoint entries on both sides (CSI and camera sensor). Typos or mismatched labels will prevent link creation.
  • Data lane mapping (data-lanes = <1 2 3 4>;) should match your hardware wiring and what the driver expects.

3. Media Pipeline Link Creation

The media controller does not show links between the sensor → CSI → ISP → DWE → video node. This normally happens via the drivers during module probe. If links are not being created, possible reasons include:

  • The endpoints don’t reference each other correctly in the device tree.
  • A required driver/module failed to initialize, or isn’t loaded.
  • The sensor or ISP driver is missing formats or operations required for link creation.
  • Device tree fragments or .dtbo not applied at boot (check using dmesg or ls /proc/device-tree/).

Here is a general resource on how cameras are handled in the media pipeline:

4. Required Kernel Configuration

Check that you have all required kernel options enabled. At a minimum, you need:

  • CONFIG_VIDEO_V4L2
  • Drivers for the IMX662, CSI, ISP, DWE, and VVCAM framework (imx8_media_dev)
  • Media controller support, and subdev support

Sometimes, vendor-specific drivers require additional configs. You can check your current config with:

zcat /proc/config.gz | grep V4L

Look for lines related to your sensor, CSI, ISP, and media controller.

5. Module/Driver Probing and Logs

Reboot, ensure all required modules are in place, and check dmesg for errors or warnings from any media/video driver. See if you have any “probe failed” or “could not create link” messages.

6. Test With Video4Linux Tools

When the links are set up correctly, running:

media-ctl -p -d /dev/media0

should show a pipeline linking the sensor to the video device. If not, try manually linking entities (if your stack supports it), but normally this is handled automatically by the drivers.

Summary of Actions

  • Review and, if needed, reorder your module loading.
  • Double-check all device tree endpoint references for typos.
  • Confirm all required kernel config options are enabled.
  • Examine dmesg logs immediately after boot or module reload for any media/driver errors.
  • Use media-ctl to inspect your pipeline.
  • If possible, test using a known-working sensor/device tree setup to rule out hardware issues.

Would you like to share the output of media-ctl -p -d /dev/media0 and any related dmesg logs after following the above steps? I can help further interpret what is happening.

Best regards,
Toradex AI Assistant.

[1] Can't register /dev/videoX
[2] Cameras on Toradex System on Modules | Toradex Developer Center