A reusable software block is adapted to control multiple instantiations of
a peripheral device within a system. A device hardware abstraction layer
defines offset values for registers of the peripheral device and a data
structure for the peripheral device. A platform hardware abstraction
layer defines an address map of the system, and is adapted to initialize
each instantiation of the peripheral device via calls to the device
hardware abstraction layer.