ADE9000 Linux driver availability in Torizon OS

Hello Toradex Team and Community,

I am working with a Verdin i.MX8M Mini module running Torizon OS and I would like to ask about support for the Analog Devices ADE9000 IC.

From my investigation:

  • ADE9000 support was merged * upstream into the Linux kernel starting with v6.18 as an IIO (Industrial I/O) ADC driver.

  • The driver depends on new IIO core ABI additions (power/energy modifiers, RMS channels, new events).

  • Current Torizon OS releases for i.MX8M Mini are based on Linux 5.15 or Linux 6.1, where this driver is not available.

My questions are:

  1. Is ADE9000 supported in any current or planned Torizon OS release?

  2. If yes:

    • Which Torizon OS version and kernel version includes it?
  3. If not:

    • Is there any plan to backport the ADE9000 driver to an LTS kernel used by Torizon (e.g. 6.1 or later)?

    • Or is the recommended approach to use userspace SPI (spidev) for ADE9000 on Torizon?

I would appreciate guidance on the officially supported way to use ADE9000 with Toradex platforms.

Thank you very much for your support.

Best regards,
Mehrdad

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Hello Mehrdad,

Thank you for your detailed question about ADE9000 support on Torizon OS. Let me address your questions based on the available information.

Current ADE9000 Support Status

The ADE9000 driver you’re referring to is not currently available in Torizon OS releases (1). To check if a specific kernel configuration is available on Torizon OS, you can run the following command on your device (1):

zcat /proc/config.gz | grep ADE9000

(1)

If this returns no results, the driver is not included in your current Torizon OS image.

Recommended Approaches

1. External Kernel Module Approach

Since the ADE9000 driver is not available in current Torizon OS releases, you can add it as an external kernel module using TorizonCore Builder (1). This approach allows you to add out-of-tree kernel modules without rebuilding the entire OS from scratch (1).

The process involves (1):

  • Obtaining the ADE9000 driver source code
  • Using TorizonCore Builder to compile the module against the kernel source
  • Creating a custom Torizon OS image with the module included

However, as noted in community discussions, compiling single modules with complex dependencies (like IIO ADC modules) can be challenging due to includes and dependencies that may not be easily resolved (2).

2. Userspace SPI Approach

For immediate implementation, you can use userspace SPI access through the spidev interface (3). Torizon OS treats peripheral devices as files, and SPI devices are accessible through the /dev directory (3).

To access SPI devices from userspace (3):

  • Locate your SPI bus in /sys/bus/spi/devices/
  • Use standard read/write functions in your programming language to communicate with the peripheral
  • Mount the appropriate device paths into your container for access

3. Container Implementation

When implementing either approach, you’ll need to properly expose hardware access to your containers (4). For SPI access, you need to mount the device directories into your container (3):

docker run --rm -it -v <device-absolute-path>:<container-path-destination> <container-image>

(3)

Next Steps

  1. Check current kernel configuration: Run the zcat command mentioned above to confirm ADE9000 availability
  2. Evaluate complexity: Determine if the external module approach is feasible for your specific use case
  3. Consider userspace implementation: This may be the most practical approach for immediate development

For the most up-to-date information on kernel versions and driver availability in specific Torizon OS releases, I recommend checking the kernel configuration on your target device and reviewing the TorizonCore Builder documentation for external module integration.

Best regards,
Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Thanks for the reply.

Just to clarify: the ADE9000 driver was merged upstream starting with Linux v6.18 and depends on new IIO core ABI changes. Because of this, it does not seem feasible to add it as an out‑of‑tree kernel module on current Torizon kernels (5.15 / 6.1).

Could you please confirm whether:

  • Any Torizon OS release plans to use a kernel ≥ 6.18, or

  • The recommended and supported approach for ADE9000 on Torizon is userspace SPI (spidev)?

Thanks for the clarification.

Best regards,
Mehrdad

Hello Mehrdad,

Thank you for the clarification. You’re absolutely correct about the ADE9000 driver requirements and dependencies.

Kernel Version Roadmap

Based on the available information sources, I don’t have specific details about future Torizon OS kernel version roadmaps or when kernel ≥ 6.18 might be adopted (1). The documentation focuses on current capabilities rather than future release plans.

Recommended Approach for ADE9000

Given the technical constraints you’ve identified, userspace SPI (spidev) is indeed the recommended approach for ADE9000 integration on current Torizon OS releases (1).

Why Userspace SPI is Suitable

Torizon OS treats peripheral devices as files, allowing them to be opened, read, and written like regular files (1). These device files are located in the /dev directory and serve as an interface to device drivers (1).

For SPI communication specifically:

  • SPI devices are accessible through the standard Linux spidev interface (1)
  • You can access SPI devices directly from userspace applications (1)
  • This approach avoids kernel module dependencies and IIO framework requirements

Container Integration

When implementing userspace SPI access, you’ll need to properly expose hardware to containers (1). For SPI devices, you can use Docker run options such as:

  • --device: Makes a specific device accessible from a container (1)
  • --device-cgroup-rule: Allows access to devices with specific major and minor numbers (1)

Example for SPI device access:

docker run -it --rm --device /dev/spidev0.0 <container_namespace>

(1)

Summary

For your ADE9000 implementation on Torizon OS:

  1. Userspace SPI (spidev) is the officially supported approach given current kernel limitations
  2. This method provides direct hardware access without kernel module dependencies
  3. It integrates well with Torizon’s container-based architecture
  4. You can implement the ADE9000 communication protocol entirely in userspace

This approach will give you reliable, supported access to the ADE9000 while working within the current Torizon OS framework.

Best regards,
Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Greetings @Mehrdad,

As you have already noted current releases use an older Linux kernel version and do not support this driver.

The next major version of Torizon OS (8.x) may use the 6.18 kernel. In which case, this driver support would be available naturally then. However, the next major version is still in planning and the final decision on Linux kernel version is tentative and could change. Keep this in mind.

Tentatively we’re planning to have the first release of the next major version in either Q4 2026, or Q1 2027.

I’m not sure how well this fits into your own project timeline.

Best Regards,
Jeremias