summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2011-11-16 10:13:36 +0100
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-04-16 03:49:23 -0700
commit1e0269efe4c107a9bae415cb6b18fb2ab3866cda (patch)
treef1aae8166e1142c335ba07036ee3b6abb6090bc3 /include/linux
parente05aca5fe7209a88c6af141cac4dd93365d1abf9 (diff)
I2C: Add helper macro for i2c_driver boilerplate
This patch introduces the module_i2c_driver macro which is a convenience macro for I2C driver modules similar to module_platform_driver. It is intended to be used by drivers which init/exit section does nothing but register/unregister the I2C driver. By using this macro it is possible to eliminate a few lines of boilerplate code per I2C driver. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Acked-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> (cherry picked from mainline commit 7c92784a546d2945b6d6973a30f7134be78eb7a4) Change-Id: Ic4ea530ae9c00de75e154eba0f74ff93712c81cf Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: http://git-master/r/95641 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/i2c.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 0bd9ea2b62ea..8d3eab3226ad 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -468,6 +468,19 @@ static inline int i2c_adapter_id(struct i2c_adapter *adap)
{
return adap->nr;
}
+
+/**
+ * module_i2c_driver() - Helper macro for registering a I2C driver
+ * @__i2c_driver: i2c_driver struct
+ *
+ * Helper macro for I2C drivers which do not do anything special in module
+ * init/exit. This eliminates a lot of boilerplate. Each module may only
+ * use this macro once, and calling it replaces module_init() and module_exit()
+ */
+#define module_i2c_driver(__i2c_driver) \
+ module_driver(__i2c_driver, i2c_add_driver, \
+ i2c_del_driver)
+
#endif /* I2C */
#endif /* __KERNEL__ */