Date: Tue, 21 Jun 2016 15:39:04 +0200 From: Imre Vadasz <imre@vdsz.com> To: freebsd-current@freebsd.org Cc: johannes@brilliantservice.co.jp Subject: Re: Intel Atom I2C Message-ID: <20160621133904.GA677128@albireo.intra.vdsz.de>
next in thread | raw e-mail | index | archive | help
Hi, No driver for the DMA controller is needed for using the I2C controllers. On many devices the I2C controllers are only mapped as ACPI devices, and not as PCI-devices, but the existing ichiic driver can trivially be adapted to attach via acpi, which is already done by DragonFly's ichiic: https://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/sys/bus/smbus/ichiic/ig4_acpi.c On many Cherryview devices, the I2C controller driver needs to install a handler for ACPI accesses to I2cSerialBus fields inside of GenericSerialBus operation regions. I have already committed the I2cSerialBus operation region Field handling to DraognFly master (implemented by the smbacpi(4) driver which attaches as a child to ichiic: https://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/sys/bus/smbus/smbacpi/smbacpi.c) The I2cSerialBus operation region Field handling is e.g. needed on the HP X2 210 tablet/detachable for the AC adapter and ACPI battery devices, as well as for activating power on the external micro-sd card slot via the sdhc controller's _PS0 ACPI-method. Peripheral devices hanging on the I2c busses usually are detected as ACPI devices, which have I2cSerialBus resource entries. On current Cherryview devices the I2c peripheral devices usually aren't explicitly child devices of the I2c-Controller devices, but the I2cSerialBus resources contain a string which can be dereferenced to get the corresponding I2c-bus device. The same mechanism is used for mapping GPIO pins and GPIO interrupts (with the GpioInt and GpioIo resource entries). Also, since the I2c peripheral devices usually are no longer children of the I2c-bus, the correct device attachement/initialization order needs to be derived via the _DEP acpi methods.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160621133904.GA677128>