diff options
author | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2013-06-18 17:55:27 +0200 |
---|---|---|
committer | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2013-06-18 17:55:27 +0200 |
commit | 855d6a6c1f7c54ef073caac3f6c5f9b1ed72eb4d (patch) | |
tree | 89b8db35d4eb326263a0f9827c5186467d6d289e /drivers/sensor/sensors_core.c | |
parent | a8c0a4a5b062a56e5494894aa86b89a21a86ea3e (diff) | |
download | kernel_samsung_smdk4412-855d6a6c1f7c54ef073caac3f6c5f9b1ed72eb4d.tar.gz kernel_samsung_smdk4412-855d6a6c1f7c54ef073caac3f6c5f9b1ed72eb4d.tar.bz2 kernel_samsung_smdk4412-855d6a6c1f7c54ef073caac3f6c5f9b1ed72eb4d.zip |
u1: port sensors and modem interface from smdk4210 kernel
Change-Id: Ifa0a332a0413f4ceb3c70e96573786ae576a2ae0
Diffstat (limited to 'drivers/sensor/sensors_core.c')
-rw-r--r-- | drivers/sensor/sensors_core.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/drivers/sensor/sensors_core.c b/drivers/sensor/sensors_core.c index a4144926252..e003652ea8a 100644 --- a/drivers/sensor/sensors_core.c +++ b/drivers/sensor/sensors_core.c @@ -26,6 +26,20 @@ struct class *sensors_class; * sensors_classdev_register - create new sensor device in sensors_class. * @dev: The device to register. */ + +static void set_sensor_attr(struct device *dev, + struct device_attribute *attributes[]) +{ + int i; + + for (i = 0; attributes[i] != NULL; i++) { + if ((device_create_file(dev, attributes[i])) < 0) { + printk(KERN_ERR"[SENSOR CORE] create_file attributes %d\n", + i); + } + } +} + struct device *sensors_classdev_register(char *sensors_name) { struct device *dev; @@ -51,6 +65,37 @@ void sensors_classdev_unregister(struct device *dev) } EXPORT_SYMBOL_GPL(sensors_classdev_unregister); +int sensors_register(struct device *dev, void *drvdata, + struct device_attribute *attributes[], char *name) +{ + int ret = 0; + if (!sensors_class) { + sensors_class = class_create(THIS_MODULE, "sensors"); + if (IS_ERR(sensors_class)) + return PTR_ERR(sensors_class); + } + + dev = device_create(sensors_class, NULL, 0, drvdata, "%s", name); + + if (IS_ERR(dev)) { + ret = PTR_ERR(dev); + printk(KERN_ERR "[SENSORS CORE] device_create failed! [%d]\n", + ret); + return ret; + } + + set_sensor_attr(dev, attributes); + + return 0; +} +EXPORT_SYMBOL_GPL(sensors_register); + +void sensors_unregister(struct device *dev) +{ + device_unregister(dev); +} +EXPORT_SYMBOL_GPL(sensors_unregister); + static int __init sensors_class_init(void) { sensors_class = class_create(THIS_MODULE, "sensors"); |