diff options
-rw-r--r-- | sys/dev/iicbus/htu21.c | 12 |
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 |