aboutsummaryrefslogtreecommitdiff
path: root/drivers/i2c/ast_i2c.h
diff options
context:
space:
mode:
authorLukasz Majewski <lukma@denx.de>2019-04-04 12:35:34 +0200
committerHeiko Schocher <hs@denx.de>2019-04-11 15:21:33 +0200
commita40fe217d19fdb9804fdc88342ce4bb0a0440c84 (patch)
tree07fc2927d51569ad0614579c3e22f947e3eb8851 /drivers/i2c/ast_i2c.h
parent3c99166441bf3ea325af2da83cfe65430b49c066 (diff)
downloadu-boot-a40fe217d19fdb9804fdc88342ce4bb0a0440c84.zip
u-boot-a40fe217d19fdb9804fdc88342ce4bb0a0440c84.tar.gz
u-boot-a40fe217d19fdb9804fdc88342ce4bb0a0440c84.tar.bz2
DM: I2C: Introduce 'u-boot, i2c-transaction-bytes' property
The 'u-boot,i2c-transaction-bytes' device tree property provides information regarding number of bytes transferred by a device in a single transaction. This change is necessary to avoid hanging devices after soft reset. One notable example is communication with MC34708 device: 1. Reset when communicating with MC34708 via I2C. 2. The u-boot (after reboot -f) tries to setup the I2C and then calls force_idle_bus. In the same time MC34708 still has some data to be sent (as it transfers data in 24 bits chunks). 3. The force_idle_bus() is not able to make the bus idle as 8 SCL clocks may be not enough to have the full transmission. 4. We end up with I2C inconsistency with MC34708. This PMIC device requires 24+ SCL cycles to make finish any pending I2C transmission. Signed-off-by: Lukasz Majewski <lukma@denx.de>
Diffstat (limited to 'drivers/i2c/ast_i2c.h')
0 files changed, 0 insertions, 0 deletions