diff options
Diffstat (limited to 'driver/main.c')
-rw-r--r-- | driver/main.c | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/driver/main.c b/driver/main.c index 92ff9aa..2097edd 100644 --- a/driver/main.c +++ b/driver/main.c @@ -1,13 +1,9 @@ -// #include <linux/cdev.h> #include <linux/init.h> -#include <linux/io.h> -#include <linux/module.h> -#include <linux/platform_device.h> +#include <linux/i2c.h> #include "main.h" #include "platform.h" -// struct cdev *cdev; struct device *dev; struct class *class; dev_t node = 0; // do not register /dev/lork @@ -30,30 +26,14 @@ static int mod_init(void) { } // create platform driver - err = platform_driver_register(&lork_driver); + err = i2c_add_driver(&lork_driver); if (err) goto free_platform_driver; - // create driver attribute under /sys/bus/platform/drivers/gpio-extern - err = driver_create_file(&lork_driver.driver, &drv_attr_int); - if (err) goto free_drv_attr_int; - - // create device attributes under /sys/class - err = device_create_file(dev, &dev_attr_int); - if (err) goto free_dev_attr_int; - err = device_create_file(dev, &dev_attr_str); - if (err) goto free_dev_attr_str; - printk("%s() OK\n", __PRETTY_FUNCTION__); return 0; -free_dev_attr_str: - device_remove_file(dev, &dev_attr_str); -free_dev_attr_int: - device_remove_file(dev, &dev_attr_int); -free_drv_attr_int: - driver_remove_file(&lork_driver.driver, &drv_attr_int); free_platform_driver: - platform_driver_unregister(&lork_driver); + i2c_del_driver(&lork_driver); free_device: device_destroy(class, node); free_class: @@ -63,10 +43,7 @@ free_class: } static void mod_exit(void) { - device_remove_file(dev, &dev_attr_str); - device_remove_file(dev, &dev_attr_int); - driver_remove_file(&lork_driver.driver, &drv_attr_int); - platform_driver_unregister(&lork_driver); + i2c_del_driver(&lork_driver); device_destroy(class, node); class_destroy(class); printk("%s()\n", __PRETTY_FUNCTION__); |