Index: src/sys/dev/i2c/dbcool.c
===================================================================
RCS file: /cvsroot/src/sys/dev/i2c/dbcool.c,v
retrieving revision 1.43
diff -u -r1.43 dbcool.c
--- src/sys/dev/i2c/dbcool.c    23 Apr 2015 23:23:00 -0000      1.43
+++ src/sys/dev/i2c/dbcool.c    13 Dec 2015 17:36:06 -0000
@@ -731,6 +731,10 @@
CFATTACH_DECL_NEW(dbcool, sizeof(struct dbcool_softc),
    dbcool_match, dbcool_attach, dbcool_detach, NULL);

+static const char * dbcool_compats[] = {
+       "i2c-adm1031",
+       NULL
+};
int
dbcool_match(device_t parent, cfdata_t cf, void *aux)
{
@@ -742,12 +746,19 @@
       dc.dc_readreg = dbcool_readreg;
       dc.dc_writereg = dbcool_writereg;

-       /* no probing if we attach to iic, but verify chip id  and address */
-       if ((ia->ia_addr & DBCOOL_ADDRMASK) != DBCOOL_ADDR)
-               return 0;
-       if (dbcool_chip_ident(&dc) >= 0)
-               return 1;
-
+       /* Direct config - match compats */
+       if (ia->ia_name) {
+               if (ia->ia_ncompat > 0) {
+                       if (iic_compat_match(ia, dbcool_compats))
+                               return 1;
+               }
+       /* Indirect config - check address and chip ID */
+       } else {
+               if ((ia->ia_addr & DBCOOL_ADDRMASK) != DBCOOL_ADDR)
+                       return 0;
+               if (dbcool_chip_ident(&dc) >= 0)
+                       return 1;
+       }
       return 0;
}