Device Drivers
They run in kernel space. They let userspace apps work with the hardware device.
- It must implement the standard VFS methods, such as open(), read(), write(), ioctl().
- These methods read the initial config from the device registers.
- They write data to buffers and read data from buffers.
- They update the device registers, such as the volume for audio devices.
high level explanation
This is a high level idea of device drivers. You still need to know the role of each component.

controller driver
The controller driver is usually not called out on its own. It's part of the device driver. The controller driver talks to the device through the device controller chip on the motherboard.
Example - say a USB audio device is plugged in. The device driver uses the USB controller driver. It then controls the device over the USB bus.