I don't know how drivers are implemented but I assume they are async and state machines.
Do you have a shell?