Hardware IDs
I though about how hardware IDs should work. First, they should be renamed from "compats" because a compatible string is for the device driver, not for the detect. Then, hardware IDs should be unique for all detects. This has already been done with the PCI detector, which includes bus, slot, and function fields. This is so there can be a function that takes in a hardware ID and returns an appropriate device and unit pair. Here are some hardware IDs that I came up with for BDA (BIOS Data Area) and Raspberry Pi detects:
bda()lpt(0)pclpt() bda()com(0)nsuart() rpi()com(0)nsuart() rpi()spi(0)bcmspi()
Notice how it goes detector()type(number)device(). I find this to be a good way of doing things.