Really nice! I did this for my laptop as well and it was one of the most rewarding projects I've ever done. This article would've helped me a lot back then.
Do you think the Linux kernel would accept the drivers? That way the device would work out of the box. Reading comments on existing drivers gave me the impression they prefer to keep code out of the kernel and in user space if possible...