The best information found is inside the open-source book Linux Device Driver, Third Edition.
I am far away from being an expert, but I learn something! And I wrote down some notes together with some EASY examples. Maybe they can inspire you!
Check the examples in this GitHub repo.
I have tested the examples on a ZCU102 and a Pynq board (they are equipped with Xilinx MPSoC). If you want to recreate the system and run the examples, you can check the script reported in this other GitHub repo to create the entire Linux-based OS from scratch for the ZCU102!
If you need the script to create the system for a Pynq board, you can find some links with the full scripts to re-create the same system surfing on the web (scripts not created by me. Just tested!).
Other examples can be found surfing on the web among open-source git repositories.
Enjoy as I did!