Constantine Shulyupin posted the Linux Driver Template (LDT) for merging into the mainline Linux kernel and it can be used as a starting point for new drivers. The basic driver demonstrates file operations including mmap and ioctl and blocking modes and polling, KFIFO, completion, interrupts, Tasklets, work, kthreads, timer, simple misc devices, multiple char devices, Device Model, configfs, UART, hardware loopback, software loopback, and ftracer. There's also an accompanying user-mode test script and utility.
Those wanting to look at this simple Linux device driver sample code can find it currently on the Linux mailing list. There's also other Linux kernel samples on eLinux.org for device drivers.