Moved initialization code into configure hook

This is to allow the drivers to already communicate with the device
in the configure hook.

Cleaned-up doubled error checks in the process.
Don't agree with removing this one. It has to fail early here.