Calling all Embedd Linux gurus!

I have very little Linux experience but am by no means a complete software novice! However I cannot seem to find a simple answer on the net about how to cross compile a driver (a kernel module?) for an ARM9 Atmel device from Cygwin.

I have the arm-linux-gcc toolchain installed on Cygwin and have been happily finding my way through user-space application programming for the past few weeks. However I am now faced with the arduous task of trying to get an I2C driver running via a GPIO interface on my dev board. This is a bit out of my league so I need some help!

1. (most important question) How to cross-compile driver source code to a .ko file from Cygwin for the ARM9? Simple laymans terms and an example would be greatly appreciated.

2. Does anybody out there have experience of I2C drivers over a GPIO interface? Again, I would very much appreciate a simple explanation of the steps involved with a solid example.

Many thanks,
Deeks