On 10/10/2016 21:45, Michael Gmelin wrote:
> I see three tasks here: - Andriy finishes his change, moving things from
> smbus to iicbus, adding some workaround to keep the user experience like it
> is - Someone else implements the device table mechanism for auto detection -
> Someone else ports HDI over I2C to allow implementing drivers for devices
> like the elan touchpad Matthias is referring to
> Makes sense?

It does to me.
Also, I can suggest another task related to SMBus / I2C.

Looking at the code in the Linux chromeos_laptop driver I see that on some
models some sensors are actually attached to SMBus rather that to I2C.  And, for
example, cyapa can be attached to either bus.  But there is a quirk.  cyapa
won't work over a standard SMBus, it needs some extensions that are typically
provided by Intel chipsets.  I specifically mean the so called "I2C Block Read"
and the transaction that results from the Block Write command when the I2C bit
is set in the SMBus controller's configuration register.  Neither of these modes
is supported by our ichsmb(4) driver.  But on Linux they are both supported and
exposed as I2C_SMBUS_I2C_BLOCK_DATA transaction type.

For one reference please see Mobile 4th Generation IntelĀ® CoreTM
Processor Family I/O Datasheet, section
And, just in case, ig4(4) is about the controllers described in section 5.22 of
that document.

Perhaps, I2C_SMBUS_I2C_BLOCK_DATA served as an inspiration (and perhaps a source
of confusion) for Matt when he added smbus_trans().

Right now I do not have any good suggestion on how to expose that 90% SMBus, 10%
I2C functionality in the FreeBSD model.

Andriy Gapon
freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to