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; }