Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Feb 2012 01:35:21 +0000 (UTC)
From:      Damjan Marion <dmarion@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r232282 - in projects/armv6/sys/arm/ti: . am335x
Message-ID:  <201202290135.q1T1ZLjX001311@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dmarion
Date: Wed Feb 29 01:35:21 2012
New Revision: 232282
URL: http://svn.freebsd.org/changeset/base/232282

Log:
  Probe i2c devices based on FDT data.
  Patch provided by gonzo.
  
  Approved by:  cognet (mentor)

Modified:
  projects/armv6/sys/arm/ti/am335x/files.am335x
  projects/armv6/sys/arm/ti/ti_i2c.c

Modified: projects/armv6/sys/arm/ti/am335x/files.am335x
==============================================================================
--- projects/armv6/sys/arm/ti/am335x/files.am335x	Wed Feb 29 01:32:09 2012	(r232281)
+++ projects/armv6/sys/arm/ti/am335x/files.am335x	Wed Feb 29 01:35:21 2012	(r232282)
@@ -23,4 +23,6 @@ arm/ti/am335x/am335x_dmtimer.c		standard
 arm/ti/am335x/if_cpsw.c				standard
 arm/ti/am335x/am335x_scm_padconf.c	standard
 
+dev/ofw/ofw_iicbus.c				optional iicbus
+
 dev/uart/uart_dev_ns8250.c			optional	uart

Modified: projects/armv6/sys/arm/ti/ti_i2c.c
==============================================================================
--- projects/armv6/sys/arm/ti/ti_i2c.c	Wed Feb 29 01:32:09 2012	(r232281)
+++ projects/armv6/sys/arm/ti/ti_i2c.c	Wed Feb 29 01:35:21 2012	(r232282)
@@ -154,6 +154,9 @@ static int ti_i2c_attach(device_t dev);
 static int ti_i2c_detach(device_t dev);
 static void ti_i2c_intr(void *);
 
+/* OFW routine */
+static phandle_t ti_i2c_get_node(device_t bus, device_t dev);
+
 /* helper routines */
 static int ti_i2c_activate(device_t dev);
 static void ti_i2c_deactivate(device_t dev);
@@ -1137,12 +1140,25 @@ ti_i2c_detach(device_t dev)
 	return (0);
 }
 
+
+static phandle_t
+ti_i2c_get_node(device_t bus, device_t dev)
+{
+	/* 
+	 * Share controller node with iibus device
+	 */
+	return ofw_bus_get_node(bus);
+}
+
 static device_method_t ti_i2c_methods[] = {
 	/* Device interface */
 	DEVMETHOD(device_probe,		ti_i2c_probe),
 	DEVMETHOD(device_attach,	ti_i2c_attach),
 	DEVMETHOD(device_detach,	ti_i2c_detach),
 
+	/* OFW methods */
+	DEVMETHOD(ofw_bus_get_node,	ti_i2c_get_node),
+
 	/* iicbus interface */
 	DEVMETHOD(iicbus_callback,	ti_i2c_callback),
 	DEVMETHOD(iicbus_reset,		ti_i2c_reset),
@@ -1151,7 +1167,7 @@ static device_method_t ti_i2c_methods[] 
 };
 
 static driver_t ti_i2c_driver = {
-	"ti_iic",
+	"iichb",
 	ti_i2c_methods,
 	sizeof(struct ti_i2c_softc),
 };



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202290135.q1T1ZLjX001311>