An I2C driver template and implementation for some embedded systems targets. The driver is blocking, synchronous and limited to sending/receiving single byte at a time. It's made with time tirggered design in mind.
The pattern is taken from the book Patterns for Time-Triggered Embedded Systems by Michael J. Pont