> How difficult is it to code a driver? Just curious.
Well, it depends on the complexity of the hardware (if the HW does only a few things, then you probably don't need much code to talk to it, but more glue to get what you want -- on the other hand, if it's complex, you'll end up with much management code for the HW, but might gain performance and simplicity on the higher levels), on your skills and very much on your experience ("been there, done that.").
Sometimes, the hardware driver is just the easiest part compared to the software layers above

If you ever have written a library or device, used and handled interrupts in all variations, do message passing while sleeping, know the caveats of parallel execution and multithreading, well, then it's probably not that hard.
Does this help? Probably not...