Wednesday 17 July 2013

Everything you ever wanted to know about Minix I2C (and more!)

I just finished posting the last of 3 new pages to the Minix wiki documenting the I2C subsystem on Minix, the I2C driver interface, and I2C device driver development. Without further adieu, here are the links:

  • I2C Subsystem Internals - this page explains how the I2C subsystem works, how device files are named/numbered, what interfaces are provided, userland tools, and much more.
  • I2C Driver Protocol - this page specifies the interface between I2C device drivers and the I2C bus drivers. It explains what Minix IPC message types are accepted by the I2C bus drivers, the fields in the messages, and the possible reply codes. Pretty technical stuff.
  •  I2C Device Driver Programming - this is a step by step guide walking you through creating a new Minix device driver from scratch for an I2C device. I'm hoping it compliments the general Device Driver Programming guide (not written by me) and inspires/helps future Minix developers. At the very least, it will act as a checklist and provide skeleton for future I2C drivers that I develop.
During the rest of this week I will be continuing work on the TDA19988 driver. The main focus of that project is to read the Extended Display Identification Data (EDID). EDID contains the information about the monitor that's connected to the BeagleBone (resolution, etc). I'll be using that data later on to configure the frame buffer driver properly. I've got a stub for that driver built. Now I just have to read the documentation and figure out how to access the EDID.

No comments:

Post a Comment