For linux driver development you can start by reading “Linux Device Drivers, Third Edition” pdf.
It is free and give you an idea about how everything works.
The real learning is by reading and using the linux kernel api doc or directly the source code of the api you want to call.
Source : i did this for a school project where i had to implement multiple kernel modules.