]> git.hungrycats.org Git - linux/commitdiff
i2c: add i2c sysfs bus support.
authorGreg Kroah-Hartman <greg@kroah.com>
Thu, 13 Mar 2003 04:26:39 +0000 (20:26 -0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Thu, 13 Mar 2003 04:26:39 +0000 (20:26 -0800)
drivers/i2c/i2c-core.c
include/linux/i2c.h

index 238c5a31e4f3c680fe223a123e08faee394b34ea..6165e88a660c7b99f6c70c7458b74e0be903ecdb 100644 (file)
@@ -598,10 +598,37 @@ static void __exit i2cproc_cleanup(void)
 {
        remove_proc_entry("i2c",proc_bus);
 }
+#else
+static int __init i2cproc_init(void) { return 0; }
+static void __exit i2cproc_cleanup(void) { }
+#endif /* CONFIG_PROC_FS */
+
+/* match always succeeds, as we want the probe() to tell if we really accept this match */
+static int i2c_device_match(struct device *dev, struct device_driver *drv)
+{
+       return 1;
+}
+
+struct bus_type i2c_bus_type = {
+       .name =         "i2c",
+       .match =        i2c_device_match,
+};
+
+
+static int __init i2c_init(void)
+{
+       bus_register(&i2c_bus_type);
+       return i2cproc_init();
+}
+
+static void __exit i2c_exit(void)
+{
+       i2cproc_cleanup();
+       bus_unregister(&i2c_bus_type);
+}
 
-module_init(i2cproc_init);
-module_exit(i2cproc_cleanup);
-#endif /* def CONFIG_PROC_FS */
+module_init(i2c_init);
+module_exit(i2c_exit);
 
 /* ----------------------------------------------------
  * the functional interface to the i2c busses.
index 0b293a405341915d84ee3e397a139fa1424b5ee6..8f86852b16d8fdf43950d3af13a486f9eb6c37a9 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/i2c-id.h>
+#include <linux/device.h>      /* for struct device */
 #include <asm/semaphore.h>
 
 /* --- General options ------------------------------------------------        */
@@ -144,6 +145,8 @@ struct i2c_driver {
        int (*command)(struct i2c_client *client,unsigned int cmd, void *arg);
 };
 
+extern struct bus_type i2c_bus_type;
+
 /*
  * i2c_client identifies a single device (i.e. chip) that is connected to an 
  * i2c bus. The behaviour is defined by the routines of the driver. This