Thread (11 messages) 11 messages, 3 authors, 2014-11-18

Re: [PATCH v2 0/3] ARM: mediatek: Add driver for Mediatek I2C controller

From: xudong chen <hidden>
Date: 2014-11-18 10:07:21
Also in: linux-arm-kernel, linux-i2c, lkml

On Fri, 2014-11-14 at 11:12 +0800, xudong chen wrote:
On Thu, 2014-11-13 at 19:31 +0100, Wolfram Sang wrote:
quoted
quoted
MTK I2C HW has some limitation.
1. If the i2c_msg number is more than one, STOP will be issued instead of
RS(Repeat Start) between each message.

2. Mediatek I2C controller support WRRD(write then read) mode, in WRRD
mode the Repeat Start will be issued between 2 messages.
In this driver if 2 messages is first write then read, the driver will
combine 2 messages using Write-Read mode so the RS will be issued between
the 2 messages.
Ex: W/R/R, driver will combine first W/R and then R.

3. Due to HW limitation, in this version the max transfer data length is 255
in one message.
This looks to me more like an SMBUS controller instead of I2C. Maybe you
should populate smbus_xfer rather than master_xfer?
This is the HW limitation, we will try to workaround this in the
separate patch.
Except limited RS and limited length support, our HW follow I2C protocol
spec.
The length is compatible with most I2C devices, only a few I2C devices
need transfer more than 255 bytes.
The future Mediatek IC will fix the RS and length limitation.

Thanks!

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help