[PATCH v2 0/3] ARM: mediatek: Add driver for Mediatek I2C controller
xudong.chen at mediatek.com
Tue Nov 18 02:07:01 PST 2014
On Fri, 2014-11-14 at 11:12 +0800, xudong chen wrote:
> On Thu, 2014-11-13 at 19:31 +0100, Wolfram Sang wrote:
> > > 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
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.
More information about the linux-arm-kernel