Colibri iMX7D


  1. Built in RN5T618 PMIC reboot issue. No atomic I2C transfer handler. The same on 5.0.0-build 3 and and on the latest monthly 5.1.0:

    root@colibri-imx7:~# [   29.518686] reboot: Restarting system
    [   29.522466] ------------[ cut here ]------------
    [   29.527182] WARNING: CPU: 0 PID: 1 at drivers/i2c/i2c-core.h:40 i2c_transfer+0xfc/0x108
    [   29.535320] No atomic I2C transfer handler for 'i2c-0'
    [   29.540543] Modules linked in: rfcomm bnep btusb btintel imx_sdma virt_dma mcp251x snd_soc_sgtl5000 can_dev secvio bluetooth libcomposite configfs
    [   29.553913] CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted 5.4.47-5.0.0+git.9e7307657fc1 #1
    [   29.562489] Hardware name: Freescale i.MX7 Dual (Device Tree)
    [   29.568350] [<8010e09c>] (unwind_backtrace) from [<8010af48>] (show_stack+0x10/0x14)
    [   29.576232] [<8010af48>] (show_stack) from [<80901f64>] (dump_stack+0x90/0xa4)
    [   29.583585] [<80901f64>] (dump_stack) from [<80123e40>] (__warn+0xbc/0xd8)
    [   29.590582] [<80123e40>] (__warn) from [<80123ee0>] (warn_slowpath_fmt+0x84/0x94)
    [   29.598197] [<80123ee0>] (warn_slowpath_fmt) from [<8063ded4>] (i2c_transfer+0xfc/0x108)
    [   29.606430] [<8063ded4>] (i2c_transfer) from [<80584cfc>] (regmap_i2c_read+0x4c/0x68)
    [   29.614399] [<80584cfc>] (regmap_i2c_read) from [<80580fd4>] (_regmap_raw_read+0xec/0x150)
    [   29.622809] [<80580fd4>] (_regmap_raw_read) from [<80581070>] (_regmap_bus_read+0x38/0x60)
    [   29.631218] [<80581070>] (_regmap_bus_read) from [<8058022c>] (_regmap_read+0x60/0xb8)
    [   29.639273] [<8058022c>] (_regmap_read) from [<80580620>] (_regmap_update_bits+0x8c/0xc4)
    [   29.647594] [<80580620>] (_regmap_update_bits) from [<80581570>] (regmap_update_bits_base+0x4c/0x70)
    [   29.695765] [<80581570>] (regmap_update_bits_base) from [<8058bec8>] (rn5t618_trigger_poweroff_sequence+0x5c/0x64)
    [   29.747773] [<8058bec8>] (rn5t618_trigger_poweroff_sequence) from [<8058bedc>] (rn5t618_restart+0xc/0x2c)
    [   29.797551] [<8058bedc>] (rn5t618_restart) from [<801424d4>] (notifier_call_chain+0x48/0x84)
    [   29.846282] [<801424d4>] (notifier_call_chain) from [<8014254c>] (atomic_notifier_call_chain+0x1c/0x24)
    [   29.896233] [<8014254c>] (atomic_notifier_call_chain) from [<80109aa0>] (machine_restart+0x78/0x7c)
    [   29.946145] [<80109aa0>] (machine_restart) from [<80143d44>] (__do_sys_reboot+0xf8/0x1bc)
    [   29.995220] [<80143d44>] (__do_sys_reboot) from [<80101000>] (ret_fast_syscall+0x0/0x54)
    [   30.044494] Exception stack(0x8c05ffa8 to 0x8c05fff0)
    [   30.070013] ffa0:                   00478bc0 00000000 fee1dead 28121969 01234567 01234567
    [   30.118705] ffc0: 00478bc0 00000000 00000000 00000058 00000003 00000000 00000000 004785fc
    [   30.167128] ffe0: 00000058 7ed4cc6c 76d15e35 76c9abe6
    [   30.192059] ---[ end trace 90a6992ed82142da ]---

The same issue due to missing atomic I2C handler on 5.1.0.

  1. Small issue with DT:

    [    0.001524] arch_timer: multiple nodes in dt, skipping

Looks like timer is defined twice in the root of DT / and in /soc . One time in imx7s.dtsi, and the 2nd time in imx7d.dtsi, which includes imx7s.dtsi.

Hi @Edward

Thanks for writing to the Toradex Community!

This is known bug with handling of Watchdog driver, which will be corrected in near Future.

Best regards,

Hi @jaski.tx,

Are you sure it’s due to Watchdog? New version of this RNT5xxx PMIC uses atomic transfer handler from I2C driver, which current Toradex kernel lacks in i2c-imx.c driver. I tried fixing it my self using i2c-imx.c from other source. Reboot issue went away. So are you sure it’s watchdog issue?


Yes, we are using the PMIC Watchdog as Watchdog for iMX7. Perfect that you find a solution. We got a fix which should be integrated in our nightly builds.

Best regards,

Hi @jaski.tx

Thank you very much for fixes.
Yes, sorry, this PMIC is multifunction device including watchdog.

Best Regards,

You are welcome.

Best regards,

HI @pravin

You will need this patch for the kernel.

Best regards,

Do you mind sharing this device tree patch. i have same problem with my imx7d-colibri-emmc-eval-v3.dtb

Thanks Jaski. I used this to backport and it did fix my patched kernel based on Toradex imx7d-colibri-emmc-eval.

Perfect that your issue is solved.

Best regards,