svn commit: r189280 - head/sys/dev/ofw
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Mon Mar 2 07:22:02 PST 2009
Author: nwhitehorn
Date: Mon Mar 2 15:22:01 2009
New Revision: 189280
URL: http://svn.freebsd.org/changeset/base/189280
Log:
Some Apple I2C buses give the device's I2C address in a property with the
name i2c-address instead of reg. Change the OFW I2C probe to check both
locations for the address.
Submitted by: Marco Trillo
Reported by: Justin Hibbits
Modified:
head/sys/dev/ofw/ofw_iicbus.c
Modified: head/sys/dev/ofw/ofw_iicbus.c
==============================================================================
--- head/sys/dev/ofw/ofw_iicbus.c Mon Mar 2 13:29:18 2009 (r189279)
+++ head/sys/dev/ofw/ofw_iicbus.c Mon Mar 2 15:22:01 2009 (r189280)
@@ -118,8 +118,15 @@ ofw_iicbus_attach(device_t dev)
node = ofw_bus_get_node(dev);
for (child = OF_child(node); child != 0; child = OF_peer(child)) {
- if (OF_getprop(child, "reg", &addr, sizeof(addr)) == -1)
- continue;
+ /*
+ * Try to get the I2C address first from the i2c-address
+ * property, then try the reg property. It moves around
+ * on different systems.
+ */
+
+ if (OF_getprop(child, "i2c-address", &addr, sizeof(addr)) == -1)
+ if (OF_getprop(child, "reg", &addr, sizeof(addr)) == -1)
+ continue;
/*
* Now set up the I2C and OFW bus layer devinfo and add it
More information about the svn-src-all
mailing list