Re: [PATCH v2 0/2] i2c:dw: Add APM X-Gene ACPI I2C device support

Ken Xue
2015-12-23T09:59:49Z

On Wed, 2015-12-23 at 11:52 +0200, Mika Westerberg wrote:
> On Wed, Dec 23, 2015 at 05:34:01PM +0800, Ken Xue wrote:
> > 1) Regarding
> > https://msdn.microsoft.com/en-us/library/windows/hardware/dn919852(v=vs.85).aspx
> > , Window I2C driver should pass MITT test. There are 5 I2C devices
> > connect to one I2C bus for test. And those devices defined different
> > "ConnectionSpeed" over the I2C bus by ACPI resource "I2CSerialBus".
> >
> > During test, I2C bus should run in different "ConnectionSpeed" of
> > device.
> >
> > That means windows driver can modify I2C bus speed to match the
> > "ConnectionSpeed" of device on-the-fly. Static value from SSCN and FMCN
> > can not work for WITT test cases.
>
> That is why there are *CNT methods for all supported I2C modes:
>
> - SSCN() - returns for standard mode (100kHz)
> - FMCN() - returns for fast mode (400kHz)
> - FPCN() - returns for fast mode+ (1MHz)
>
> for High-speed mode I'm not sure what the method name is ;-)
>
> Then the Windows driver switches between those based on what the
> ConnectionSpeed is in the ACPI I2C connector.

Window driver can set Bus speed based on "ConnectionSpeed". But Current
Linux driver only sets Bus speed during probe. How can Linux diver
determine which Bus speed should be applied, if all *CNT methods return
non-zero?