diff options
author | sbrissen <sbrissen@hotmail.com> | 2013-08-13 07:43:12 -0400 |
---|---|---|
committer | sbrissen <sbrissen@hotmail.com> | 2013-08-13 07:44:50 -0400 |
commit | 9c135abddcf1b3f7a30104d7171c9488f63881f9 (patch) | |
tree | 1b9ee723950214aa1b64c5e84dd8d92b4da60850 | |
parent | fcd2c1e6345d7bc73305365fb86eada6f4d5c448 (diff) | |
download | kernel_samsung_smdk4412-9c135abddcf1b3f7a30104d7171c9488f63881f9.zip kernel_samsung_smdk4412-9c135abddcf1b3f7a30104d7171c9488f63881f9.tar.gz kernel_samsung_smdk4412-9c135abddcf1b3f7a30104d7171c9488f63881f9.tar.bz2 |
isa1200: move sysfs node for pwm level
Change-Id: I50b353531a1ee581217305b257d30317ce73b0c7
-rw-r--r-- | drivers/motor/isa1200_vibrator.c | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/drivers/motor/isa1200_vibrator.c b/drivers/motor/isa1200_vibrator.c index 4b26dc3..0f2da51 100644 --- a/drivers/motor/isa1200_vibrator.c +++ b/drivers/motor/isa1200_vibrator.c @@ -269,7 +269,7 @@ static void isa1200_vibrator_enable(struct timed_output_dev *_dev, int value) spin_unlock_irqrestore(&data->lock, flags); } -static ssize_t pwm_val_show(struct device *dev, +static ssize_t pwm_value_show(struct device *dev, struct device_attribute *attr, char *buf) { int count; @@ -277,19 +277,19 @@ static ssize_t pwm_val_show(struct device *dev, pwm_val = ((isapwm_duty - 500) * 100) / 500; count = sprintf(buf, "%lu\n", pwm_val); - pr_debug("[VIB] pwm_val: %lu\n", pwm_val); + pr_debug("[VIB] pwm_value: %lu\n", pwm_val); return count; } -ssize_t pwm_val_store(struct device *dev, +ssize_t pwm_value_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) { if (kstrtoul(buf, 0, &pwm_val)) - pr_err("[VIB] %s: error on storing pwm_val\n", __func__); + pr_err("[VIB] %s: error on storing pwm_value\n", __func__); - pr_info("[VIB] %s: pwm_val=%lu\n", __func__, pwm_val); + pr_info("[VIB] %s: pwm_value=%lu\n", __func__, pwm_val); isapwm_duty = (pwm_val * 500) / 100 + 500; @@ -307,26 +307,8 @@ ssize_t pwm_val_store(struct device *dev, return size; } -static DEVICE_ATTR(pwm_val, S_IRUGO | S_IWUSR, - pwm_val_show, pwm_val_store); - -static int create_vibrator_sysfs(void) -{ - int ret; - struct kobject *vibrator_kobj; - vibrator_kobj = kobject_create_and_add("vibrator", NULL); - if (unlikely(!vibrator_kobj)) - return -ENOMEM; - - ret = sysfs_create_file(vibrator_kobj, - &dev_attr_pwm_val.attr); - if (unlikely(ret < 0)) { - pr_err("[VIB] sysfs_create_file failed: %d\n", ret); - return ret; - } - - return 0; -} +static DEVICE_ATTR(pwm_value, S_IRUGO | S_IWUSR, + pwm_value_show, pwm_value_store); static int __devinit isa1200_vibrator_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) @@ -373,12 +355,16 @@ static int __devinit isa1200_vibrator_i2c_probe(struct i2c_client *client, ddata->duty = pdata->duty; ddata->period = pdata->period; + /* User controllable pwm level */ + ret = device_create_file(ddata->dev.dev, &dev_attr_pwm_value); + if (ret < 0) { + pr_err("[VIB] create sysfs fail: pwm_value\n"); + } + ddata->dev.name = "vibrator"; ddata->dev.get_time = isa1200_vibrator_get_time; ddata->dev.enable = isa1200_vibrator_enable; - create_vibrator_sysfs(); - hrtimer_init(&ddata->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); ddata->timer.function = isa1200_vibrator_timer_func; INIT_WORK(&ddata->work, isa1200_vibrator_work); |