I am not entirely sure what you mean by "device drive development"...do you mean device
driver development?
If so, my only suggestion there in, is to find a hardware compatibility list for the Linux kernel (there is one here, at LQ.org) and if you can find a device that is not supported, have at it!
As far as tools - that is your choice. My suggestion is just a text editor with syntax highlighting, and despite my being an Emacs fan, if you are doing kernel development just use Vim - only because if you are doing kernel development you will need to adhere to the Linux Kernel Coding Standards, and Vim's default indentation rules, and such, already jive with the standard. More on the documentation front, go to
The Linux Documentation Project and look for the guide (or HOWTO) on writing kernel modules.
However, you might find it easier to work with an IDE like Eclipse (and the CDT plugin) especially for just managing your code within the kernel tree, and staying up-to-date with it.
I hope this helps.