Linux Device Drivers document: http://www.makelinux.net/ldd3
Download PDF: https://lwn.net/Kernel/LDD3/
Title page PDF Copyright and credits PDF Table of Contents PDF Preface PDF Chapter 1: An Introduction to Device Drivers PDF Chapter 2: Building and Running Modules PDF Chapter 3: Char Drivers PDF Chapter 4: Debugging Techniques PDF Chapter 5: Concurrency and Race Conditions PDF Chapter 6: Advanced Char Driver Operations PDF Chapter 7: Time, Delays, and Deferred Work PDF Chapter 8: Allocating Memory PDF Chapter 9: Communicating with Hardware PDF Chapter 10: Interrupt Handling PDF Chapter 11: Data Types in the Kernel PDF Chapter 12: PCI Drivers PDF Chapter 13: USB Drivers PDF Chapter 14: The Linux Device Model PDF Chapter 15: Memory Mapping and DMA PDF Chapter 16: Block Drivers PDF [sbull] Chapter 17: Network Drivers PDF Chapter 18: TTY Drivers PDF Index PDF
The Linux kernel Primer: doc/The_Linux_Kernel_Primer.md