Hardware access often follows patterns. These can be abstracted to higher level "commands".
The most simple example would be a memory-address access that can be translated to a register access. For known memory-address regions (like a memory-mapped PCI config space) this could be translated into a device number + register offset.
More complex device access can be translated, too. For instance, access to a device over SMBus often involves a longer sequence to operate a controller. However, change of state of the controller is not really interesting, only the resulting access to SMBus would matter.