aboutsummaryrefslogtreecommitdiff
path: root/driver/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/main.c')
-rw-r--r--driver/main.c31
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__);