@@ -221,6 +221,17 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
spi_unregister_driver)
/**
+ * initcall_spi_driver() - Helper macro for registering a SPI driver
+ * for buid-in module with doing nothing special in driver
+ * xxx_initcall/module_exit. This eliminates a lot of boilerplate.
+ * @__type: initcall type
+ * @__spi_driver: spi_driver struct
+ */
+#define initcall_spi_driver(__type, __spi_driver) \
+ initcall_driver(__type, __spi_driver, spi_register_driver, \
+ spi_unregister_driver)
+
+/**
* struct spi_master - interface to SPI master controller
* @dev: device interface to this driver
* @list: link with the global spi_master list
Introduce a helper macro initcall_spi_driver() which based on initcall_driver() for spi driver to eliminate boilerplate code. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> --- include/linux/spi/spi.h | 11 +++++++++++ 1 file changed, 11 insertions(+)