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
This commit is contained in:
parent
f1c7376075
commit
7fc852ff0a
@ -110,14 +110,18 @@ iic_identify(driver_t *driver, device_t parent)
|
||||
{
|
||||
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user