aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/iicbus/htu21.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/dev/iicbus/htu21.c b/sys/dev/iicbus/htu21.c
index 5c59ebe8f54a..aa8507bf7437 100644
--- a/sys/dev/iicbus/htu21.c
+++ b/sys/dev/iicbus/htu21.c
@@ -458,11 +458,17 @@ static int
htu21_probe(device_t dev)
{
uint8_t addr;
+ int rc;
#ifdef FDT
- if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data)
+ if (!ofw_bus_status_okay(dev))
return (ENXIO);
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data)
+ rc = BUS_PROBE_GENERIC;
+ else
#endif
+ rc = BUS_PROBE_NOWILDCARD;
+
addr = iicbus_get_addr(dev);
if (addr != (HTU21_ADDR << 1)) {
device_printf(dev, "non-standard slave address 0x%02x\n",
@@ -470,7 +476,7 @@ htu21_probe(device_t dev)
}
device_set_desc(dev, "HTU21 temperature and humidity sensor");
- return (BUS_PROBE_GENERIC);
+ return (rc);
}
static int
@@ -516,6 +522,4 @@ static devclass_t htu21_devclass;
DRIVER_MODULE(htu21, iicbus, htu21_driver, htu21_devclass, 0, 0);
MODULE_DEPEND(htu21, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER);
MODULE_VERSION(htu21, 1);
-#ifdef FDT
IICBUS_FDT_PNP_INFO(compat_data);
-#endif