i.MX8Dx I2C disable in Linux Yocto

Hi Folks,

Can someone help me with how I can disable the I2C in Linux OS via DTS (by using overlay[dtbo]) without creating a new image by creating some recipe for it?

you can find the required information down here:

Software summary

Bootloader: U-Boot
Kernel version: 5.15.148-6.7.0-devel+git.bfdbfb2c85fb #1 SMP PREEMPT Thu Jun 20 15:59:41 UTC 2024
Kernel command line: root=PARTUUID=fde2e373-02 ro rootwait console=tty1 console=ttyLP3,115200 consoleblank=0 earlycon video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off
Distro name: NAME=“TDX Wayland with XWayland”
Distro version: VERSION_ID=6.7.0-devel-20240704105404-build.0
Distro variant: -

Hardware info

HW model: Toradex Colibri iMX8DX on Colibri Evaluation Board V3
Toradex version: 0052 V1.0D
Processor arch: aarch64

Regards

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


To disable the I2C interface on your Toradex Colibri iMX8DX platform using a Device Tree Source (DTS) overlay without creating a new image or recipe, you can follow these steps:

  1. Create a Device Tree Overlay (DTBO): You need to create a DTS file that modifies the I2C node properties by setting the status property to disabled. Here is an example of what your overlay file might look like:

    /dts-v1/;
    /plugin/;
    / {
        fragment@0 {
            target-path = "/i2c@xxxx";
            __overlay__ {
                status = "disabled";
            };
        };
    };
    

    Replace xxxx with the appropriate address of the I2C controller for your specific hardware setup.

  2. Compile the Overlay: Use the device tree compiler (DTC) to compile your DTS file into a DTBO file. You can do this with a command like:

    dtc -I dts -O dtb -o my_overlay.dtbo my_overlay.dts
    
  3. Load the Overlay at Boot: Ensure that your compiled DTBO file is placed in a location where U-Boot can access it. You will need to modify the U-Boot environment variables to load this overlay during the boot process. This typically involves adding a line to your U-Boot configuration that points to your DTBO file.

  4. Verify the Changes: After rebooting, verify that the I2C interface is disabled by checking the system logs or using tools like i2cdetect to ensure that no I2C devices are detected.

This approach allows you to disable the I2C interface dynamically at runtime without recompiling the entire kernel or creating a new image, which should meet your requirements. Make sure your kernel version supports device tree overlays, and refer to Toradex documentation for any specific configurations related to the I2C interface on your platform.

Please, also check if these links can help you solve your problem:

Touch I2C for Goodix GT928.