Support for broadcoms multifunctional devices

Supersedes #227.

I have shown what I think is a better test,
and merged with master to be mergeable,
What about `drivers.empty?` ?