diff options
author | Andriy Gapon <avg@FreeBSD.org> | 2021-11-04 11:56:12 +0000 |
---|---|---|
committer | Andriy Gapon <avg@FreeBSD.org> | 2021-11-06 17:24:44 +0000 |
commit | a75159eabc90dc35af68c92f7d5eb72e087f6131 (patch) | |
tree | 360824698e7a9f2981070c5bc9d3cd3b0778e890 | |
parent | 6354154ef520d359492badf0de9c8ae5d7080ae7 (diff) | |
download | src-a75159eabc90dc35af68c92f7d5eb72e087f6131.tar.gz src-a75159eabc90dc35af68c92f7d5eb72e087f6131.zip |
htu21: allow configuration via hints on FDT-based systems
On-board devices should be configured via the FDT and overlays.
Hints are primarily useful for external and temporarily attached devices.
Adding hints is much easier and faster than writing and compiling
an overlay.
MFC after: 1 week
-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 |