From 7c0925eb57785190be3d9f3d173fefb3d791cba0 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Mon, 9 May 2016 18:15:06 +0530 Subject: [PATCH] greybus: gpio: Create separate module Create separate module for gpio gpbridge driver. Tested on EVT 1.5 by inserting GP test module, all the devices were enumerated correctly. Signed-off-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/Makefile | 3 ++- drivers/staging/greybus/gpbridge.c | 7 ------- drivers/staging/greybus/gpbridge.h | 3 --- drivers/staging/greybus/gpio.c | 5 ++++- 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/staging/greybus/Makefile b/drivers/staging/greybus/Makefile index 43c0c9910de1..e5c784db35b4 100644 --- a/drivers/staging/greybus/Makefile +++ b/drivers/staging/greybus/Makefile @@ -18,7 +18,6 @@ gb-phy-y := gpbridge.o \ sdio.o \ uart.o \ pwm.o \ - gpio.o \ i2c.o \ spi.o \ usb.o @@ -40,6 +39,7 @@ gb-audio-manager-y += audio_manager.o gb-audio-manager-y += audio_manager_module.o gb-camera-y := camera.o gb-firmware-y := fw-core.o fw-download.o +gb-gpio-y := gpio.o obj-m += greybus.o obj-m += gb-phy.o @@ -62,6 +62,7 @@ obj-m += gb-audio-gb.o obj-m += gb-audio-apbridgea.o obj-m += gb-audio-manager.o obj-m += gb-firmware.o +obj-m += gb-gpio.o KERNELVER ?= $(shell uname -r) KERNELDIR ?= /lib/modules/$(KERNELVER)/build diff --git a/drivers/staging/greybus/gpbridge.c b/drivers/staging/greybus/gpbridge.c index 4cb587fcf4bc..86226775c5a1 100644 --- a/drivers/staging/greybus/gpbridge.c +++ b/drivers/staging/greybus/gpbridge.c @@ -317,10 +317,6 @@ static int __init gpbridge_init(void) goto error_gpbridge; } - if (gb_gpio_driver_init()) { - pr_err("error initializing gpio driver\n"); - goto error_gpio; - } if (gb_pwm_driver_init()) { pr_err("error initializing pwm driver\n"); goto error_pwm; @@ -359,8 +355,6 @@ error_sdio: error_uart: gb_pwm_driver_exit(); error_pwm: - gb_gpio_driver_exit(); -error_gpio: greybus_deregister(&gb_gpbridge_driver); error_gpbridge: bus_unregister(&gpbridge_bus_type); @@ -377,7 +371,6 @@ static void __exit gpbridge_exit(void) gb_sdio_driver_exit(); gb_uart_driver_exit(); gb_pwm_driver_exit(); - gb_gpio_driver_exit(); greybus_deregister(&gb_gpbridge_driver); bus_unregister(&gpbridge_bus_type); diff --git a/drivers/staging/greybus/gpbridge.h b/drivers/staging/greybus/gpbridge.h index cd5ba9820cb0..a346fa20ffd9 100644 --- a/drivers/staging/greybus/gpbridge.h +++ b/drivers/staging/greybus/gpbridge.h @@ -66,9 +66,6 @@ void gb_##__driver##_exit(void) \ gb_gpbridge_deregister(&__driver); \ } -extern int gb_gpio_driver_init(void); -extern void gb_gpio_driver_exit(void); - extern int gb_pwm_driver_init(void); extern void gb_pwm_driver_exit(void); diff --git a/drivers/staging/greybus/gpio.c b/drivers/staging/greybus/gpio.c index 4f0695b2b20e..adb213fd81b6 100644 --- a/drivers/staging/greybus/gpio.c +++ b/drivers/staging/greybus/gpio.c @@ -747,6 +747,7 @@ static const struct gpbridge_device_id gb_gpio_id_table[] = { { GPBRIDGE_PROTOCOL(GREYBUS_PROTOCOL_GPIO) }, { }, }; +MODULE_DEVICE_TABLE(gpbridge, gb_gpio_id_table); static struct gpbridge_driver gpio_driver = { .name = "gpio", @@ -754,4 +755,6 @@ static struct gpbridge_driver gpio_driver = { .remove = gb_gpio_remove, .id_table = gb_gpio_id_table, }; -gb_gpbridge_builtin_driver(gpio_driver); + +module_gpbridge_driver(gpio_driver); +MODULE_LICENSE("GPL v2"); -- 2.39.5