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