[PATCH 0/1] mfd: da9063: Support SMBus and I2C mode

From: Mark Jonas
Date: Tue Jan 26 2021 - 01:16:39 EST


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