Für I²C verwende ich die Appnote 315 (Master) und 311 (Slave) von Atmel.
Die Appnotes sind zwar für den IAR Compiler, aber ich hab irgendwo
schon nen angepassten Code für den avr-gcc gepostet.
Da waren auch Beispiele für die Ansteuerung dabei.

Alles andere wie PWM, ADC und Interrupts wird in vielen Tutorials erklärt.
Besonders gut auf http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial

Allgemein gibt es für fast jedes Problem (PS2 Tastatur, UART) schon eine
Appnote von Atmel, lohnt sich da mal durchzublättern.