svn commit: r187321 - head/sys/dev/iicbus
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Thu Jan 15 15:15:00 PST 2009
Author: nwhitehorn
Date: Thu Jan 15 23:14:59 2009
New Revision: 187321
URL: http://svn.freebsd.org/changeset/base/187321
Log:
Revert revision 186833 and try a different strategy to allow this device to
work when the bus attaches its own children. Instead of hardcoding a unit
number and returning BUS_PROBE_NOWILDCARD, which will break multiple iicbus
systems, check in the probe routine whether the device address is 0. Real
I2C devices will never have this address, but devices added with
BUS_ADD_CHILD() will.
Requested by: jhb
Reviewed by: jhb
Modified:
head/sys/dev/iicbus/iic.c
Modified: head/sys/dev/iicbus/iic.c
==============================================================================
--- head/sys/dev/iicbus/iic.c Thu Jan 15 23:11:02 2009 (r187320)
+++ head/sys/dev/iicbus/iic.c Thu Jan 15 23:14:59 2009 (r187321)
@@ -110,14 +110,18 @@ iic_identify(driver_t *driver, device_t
{
if (device_find_child(parent, "iic", -1) == NULL)
- BUS_ADD_CHILD(parent, 0, "iic", 0);
+ BUS_ADD_CHILD(parent, 0, "iic", -1);
}
static int
iic_probe(device_t dev)
{
+ if (iicbus_get_addr(dev) > 0)
+ return (ENXIO);
+
device_set_desc(dev, "I2C generic I/O");
- return (BUS_PROBE_NOWILDCARD);
+
+ return (0);
}
static int
More information about the svn-src-all
mailing list