diff options
author | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-06-02 13:09:29 +0200 |
---|---|---|
committer | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-06-02 13:09:29 +0200 |
commit | c6da2cfeb05178a11c6d062a06f8078150ee492f (patch) | |
tree | f3b4021d252c52d6463a9b3c1bb7245e399b009c /drivers/sensor/sensors_core.c | |
parent | c6d7c4dbff353eac7919342ae6b3299a378160a6 (diff) | |
download | kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.zip kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.tar.gz kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.tar.bz2 |
samsung update 1
Diffstat (limited to 'drivers/sensor/sensors_core.c')
-rw-r--r-- | drivers/sensor/sensors_core.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/drivers/sensor/sensors_core.c b/drivers/sensor/sensors_core.c new file mode 100644 index 0000000..a414492 --- /dev/null +++ b/drivers/sensor/sensors_core.c @@ -0,0 +1,75 @@ +/* + * /driver/sensors/sensors_core.c + * + * Copyright (C) 2011 Samsung Electronics Co.Ltd + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/module.h> +#include <linux/device.h> +#include <linux/list.h> +#include <linux/err.h> +#include <linux/sensor/sensors_core.h> + +struct class *sensors_class; + +/** +* sensors_classdev_register - create new sensor device in sensors_class. +* @dev: The device to register. +*/ +struct device *sensors_classdev_register(char *sensors_name) +{ + struct device *dev; + int retval = -ENODEV; + + dev = device_create(sensors_class, NULL, 0, + NULL, "%s", sensors_name); + if (IS_ERR(dev)) + return ERR_PTR(retval); + + printk(KERN_INFO "Registered sensors device: %s\n", sensors_name); + return dev; +} +EXPORT_SYMBOL_GPL(sensors_classdev_register); + +/** +* sensors_classdev_unregister - unregisters a object of sensor device. +* +*/ +void sensors_classdev_unregister(struct device *dev) +{ + device_unregister(dev); +} +EXPORT_SYMBOL_GPL(sensors_classdev_unregister); + +static int __init sensors_class_init(void) +{ + sensors_class = class_create(THIS_MODULE, "sensors"); + if (IS_ERR(sensors_class)) { + pr_err("Failed to create class(sensors)!\n"); + return PTR_ERR(sensors_class); + } + + return 0; +} + +static void __exit sensors_class_exit(void) +{ + class_destroy(sensors_class); +} + +subsys_initcall(sensors_class_init); +module_exit(sensors_class_exit); + +MODULE_DESCRIPTION("Universal sensors core class"); +MODULE_AUTHOR("Samsung Electronics"); +MODULE_LICENSE("GPL"); |