aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rpmsg
diff options
context:
space:
mode:
authorFugang Duan <B38611@freescale.com>2014-04-30 02:24:58 -0400
committerWolfram Sang <wsa@the-dreams.de>2014-06-02 13:18:18 -0400
commit054b62d9f25c903958749e4cea25261324a7a2a4 (patch)
tree6b9abde90746233a1a35c3a766b6986489397a64 /drivers/rpmsg
parent3d99beabf17506b9d48461d1677a61a430000ad7 (diff)
i2c: imx: fix the i2c bus hang issue when do repeat restart
Test i2c device Maxim max44009, datasheet is located at: http://www.maximintegrated.com/datasheet/index.mvp/id/7175 The max44009 support repeat operation like: read -> repeat restart -> read/write The current i2c imx host controller driver don't support this operation that causes i2c bus hang due to "MTX" is cleared in .i2c_imx_read(). If "read" is the last message there have no problem, so the current driver supports all SMbus operation like: write -> repeat restart -> read/write IMX i2c controller for master receiver has some limitation: - If it is the last byte for one operation, it must generate STOP signal before read I2DR to prevent controller from generating another clock cycle. - If it is the last byte in the read, and then do repeat restart, it must set "MTX" before read I2DR to prevent controller from generating another extra clock cycle. The patch is to fix the issue. Signed-off-by: Fugang Duan <B38611@freescale.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/rpmsg')
0 files changed, 0 insertions, 0 deletions