diff options
author | Dino Li <Dino.Li@ite.com.tw> | 2022-10-13 16:42:39 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-10-20 06:11:04 +0000 |
commit | 4b98e1b902cadeae7ef5f0ff750920b2fe989c24 (patch) | |
tree | 9039e56251ae52ed1f735e3a9e06b756156a5b21 /zephyr/projects/corsola/prj_magikarp.conf | |
parent | b65e11f66f7636d35068ea6fa5c6f85fc84170e1 (diff) | |
download | chrome-ec-4b98e1b902cadeae7ef5f0ff750920b2fe989c24.tar.gz |
krabby/tentacruel: enable i2c fifo mode on i2c1
I2C clock stretching allow devices to hold clock down to block
communication temporarily when they are busy.
And there is no limit for the duration for clock stretching.
Most devices support this feature.
But smart battery gauge ICs follow SMBus specification not i2c
specification. SMBus spec is not allowed clock low over 25ms.
If timeout is over 25ms, master might read the wrong data
(eg. 0xff, because device has released data line).
This change enables FIFO mode on i2c1 and disable i2c2’s FIFO mode.
Because they share the same FIFO module. Only one port can use the
FIFO module at a time.
With FIFO mode enabled, EC only needs to set how much data will be
send or receive to i2c controller. The controller will process
transaction automatically without CPU intervention. So clock
stretching between bytes on i2c1 can be eliminated.
This change also disable CONFIG_PLATFORM_EC_SMBUS_PEC to perform
single transfer for i2c read/write/write to read.
BRANCH=none
BUG=b:253349747, b:250746976
TEST=On tentacruel, EC will not stretch clock more than 25ms on i2c1.
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: Idb4433bf1d54b2c684268e88c64b0b37a8294921
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3950277
Reviewed-by: Eric Yilun Lin <yllin@google.com>
Diffstat (limited to 'zephyr/projects/corsola/prj_magikarp.conf')
0 files changed, 0 insertions, 0 deletions