Minix I2C Drivers for the BeagleBone Black

The project is to develop a generic I2C driver subsystem for Minix, and then use it to write drivers for I2C devices on the new BeagleBone Black.

The project is to develop a generic I2C driver subsystem for the Minix operating system, and then use it to write drivers for I2C devices on the new BeagleBone Black, BeagleBone White, and BeagleBoard-xM. The primary programming language will be C, and the code will be open source under Minix's BSD-style license. These drivers will enable the BeagleBoard.org community to run Minix on the new BeagleBone with drivers that allow them to take advantage of more of the hardware features. The generic I2C driver will setup the I2C registers, take the I2C module out of reset, initialize the I2C buses, handle interrupts, initiate transfers, and transmit/receive data. An interface to the generic I2C driver will be developed in Minix's libsys. The other drivers will interact with I2C through that interface. The interface will be the same that NetBSD and OpenBSD provide. As a first test to verify that the basics of that interface are working, I will use NetBSD's usr.sbin/i2scan program and import it into Minix's base system. Following that, I will develop a driver for the EEPROM to get information about the board. After that, I will enhance the framebuffer driver to support EDID via the TDA19988. If time permits, I would work on the driver for the power management chip (TPS65217C). The Minix project is eager to get this code written and tested widely. Small commits will be submitted for inclusion to mainline Minix throughout the summer as code becomes production ready rather than waiting until the end of the summer and having one huge patchset.