GPIO driver with optional ISR support. Allows for multiple GPIO peripherals to be specified at an arbitrary addresses.