Composite PCI devices in FreeBSD (mfd in Linux)

Anthony Jenkins Scoobi_doo at
Wed Dec 12 03:36:56 UTC 2018

On 12/11/18 9:02 AM, Emiel Kollof wrote:
> Anthony Jenkins schreef op 2018-12-10 18:00:
>> Hi all,
>> I'm trying to port an Intel PCI I2C controller from Linux to 
>> FreeBSD.  Linux represents this device as an MFD (multi-function 
>> device), meaning it has these "sub-devices" that can be handed off to 
>> other drivers to actually attach devices to the system. The Linux 
>> "super" PCI device is the intel-lpss-pci.c, and the "sub" device is 
>> i2c-designware-platdrv.c, which represents the DesignWare driver's 
>> "platform" attachment to the Linux system. FreeBSD also has a 
>> DesignWare I2C controller driver, ig4(4), but it only has PCI and 
>> ACPI bus attachment implementations.
> Might this also be relevant for i2c-hid devices, like some touchpads 
> (Elantech for example)?

Theoretically, yes.  Once this I2C controller is added, then the 
parallel effort to add support for I2C HID devices should add support 
for Elantech I2C touchpads.

The bit I'm doing (support for an Intel MFD I2C controller) is based on 
an old thread on mobile at .  I just recently obtained a laptop that has a 
couple such I2C controllers (touchpad works, but touchscreen doesn't).

Original Elantech touchpad support thread -
FreeBSD i2c-hid support -


> Cheers,
> Emiel

More information about the freebsd-current mailing list