On an NXP i.MX6 Solo processor we are running an application which makes use of real-time threads (SCHED_RR). In combination with a DA9063 we experienced (rare) random shut-downs and reboots. We found that the issue was caused by a combination of the (default) DA9063 SMBus mode and non-atomic I2C transactions of the i.MX6 I2C driver. Because a transaction could be idle for longer than the SMBus clock time-out due to a real-time thread the DA9063 would time-out and receive the second half of the transaction as an unintended message. The solution we are giving to review in this patch is to allow using the I2C mode of the DA9063. We kindly ask for feedback and eventually hope for an integration to the mainline. Because we are on a vendor kernel we were not able to test this patch on the current mainline kernel. Though, we tested a (very similar) patch on our (close to mainline) Linux 4.14 and 5.4 vendor kernels. Hubert Streidl (1): mfd: da9063: Support SMBus and I2C mode Documentation/devicetree/bindings/mfd/da9063.txt | 7 +++++++ drivers/mfd/da9063-core.c | 9 +++++++++ drivers/mfd/da9063-i2c.c | 13 +++++++++++++ include/linux/mfd/da9063/core.h | 1 + include/linux/mfd/da9063/registers.h | 3 +++ 5 files changed, 33 insertions(+) -- 2.25.1