svn commit: r290373 - head/sys/dev/ofw
Andreas Tobler
andreast at FreeBSD.org
Wed Nov 4 22:46:31 UTC 2015
Author: andreast
Date: Wed Nov 4 22:46:30 2015
New Revision: 290373
URL: https://svnweb.freebsd.org/changeset/base/290373
Log:
Add a compile time switch to distinguish between 7-bit and 8-bit I2C address
usage. The comment in the code should explain the situation.
Discussed with: ian@
Modified:
head/sys/dev/ofw/ofw_iicbus.c
Modified: head/sys/dev/ofw/ofw_iicbus.c
==============================================================================
--- head/sys/dev/ofw/ofw_iicbus.c Wed Nov 4 19:09:42 2015 (r290372)
+++ head/sys/dev/ofw/ofw_iicbus.c Wed Nov 4 22:46:30 2015 (r290373)
@@ -148,10 +148,16 @@ ofw_iicbus_attach(device_t dev)
if (dinfo == NULL)
continue;
/*
- * OFW uses 7-bit I2C address format (see ePAPR),
- * but system expect 8-bit.
+ * FreeBSD drivers expect I2C addresses to be expressed as
+ * 8-bit values. Apple OFW data contains 8-bit values, but
+ * Linux FDT data contains 7-bit values, so shift them up to
+ * 8-bit format.
*/
+#ifdef AIM
+ dinfo->opd_dinfo.addr = paddr;
+#else
dinfo->opd_dinfo.addr = paddr << 1;
+#endif
if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) !=
0) {
free(dinfo, M_DEVBUF);
More information about the svn-src-all
mailing list