Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux - Madieu (IEEE, 2003)