static int android_vibrator_probe(struct platform_device *pdev) { int ret = 0; vibe_data = (struct android_vibrator_platform_data *)pdev->dev.platform_data; atomic_set(&vibe_gain,vibe_data->amp_value); vibe_data->pwm_set(1, 32); if (android_vibrator_intialize() < 0) { printk(KERN_ERR "Android Vibrator Initialization was failed\n"); return -1; } android_vibrator_force_set(0); /* disable vibrator */ hrtimer_init(&android_vibrator_data.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); android_vibrator_data.timer.function = vibrator_timer_func; spin_lock_init(&android_vibrator_data.lock); ret = timed_output_dev_register(&android_vibrator_data.dev); if (ret < 0) { timed_output_dev_unregister(&android_vibrator_data.dev); return -ENODEV; } ret = device_create_file(android_vibrator_data.dev.dev, &dev_attr_amp); if (ret < 0) { timed_output_dev_unregister(&android_vibrator_data.dev); device_remove_file(android_vibrator_data.dev.dev, &dev_attr_amp); return -ENODEV; } printk(KERN_INFO "LGE: Android Vibrator Initialization was done\n"); return 0; }
static int android_vibrator_probe(struct platform_device *pdev) { int ret = 0; vibe_data = (struct lge_vibrator_platform_data *)pdev->dev.platform_data; atomic_set(&vibe_gain,vibe_data->amp_value); if (android_vibrator_intialize() < 0) { printk(KERN_ERR "Android Vibrator Initialization was failed\n"); return -1; } #ifdef CONFIG_VIB_USE_HIGH_VOL_OVERDRIVE INIT_WORK(&qcoin_overdrive_off_queue, vib_qcoin_off_work); #endif #if defined(CONFIG_VIB_USE_WORK_QUEUE) INIT_WORK(&vib_power_set_work_queue, vib_power_set_work); atomic_set(&nForce, 0); schedule_work(&vib_power_set_work_queue); /* disable vibrator */ #else /* CONFIG_VIB_USE_WORK_QUEUE */ android_vibrator_force_set(0); /* disable vibrator */ #endif hrtimer_init(&android_vibrator_data.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); android_vibrator_data.timer.function = vibrator_timer_func; spin_lock_init(&android_vibrator_data.lock); ret = timed_output_dev_register(&android_vibrator_data.dev); if (ret < 0) { timed_output_dev_unregister(&android_vibrator_data.dev); return -ENODEV; } #ifdef CONFIG_VIB_USE_HIGH_VOL_OVERDRIVE ret = device_create_file(android_vibrator_data.dev.dev, &dev_attr_rtime); ret = device_create_file(android_vibrator_data.dev.dev, &dev_attr_ftime); #endif ret = device_create_file(android_vibrator_data.dev.dev, &dev_attr_amp); if (ret < 0) { timed_output_dev_unregister(&android_vibrator_data.dev); device_remove_file(android_vibrator_data.dev.dev, &dev_attr_amp); return -ENODEV; } printk(KERN_INFO "LGE: Android Vibrator Initialization was done\n"); return 0; }
static int android_vibrator_resume(struct platform_device *pdev) { printk(KERN_INFO "LGE: Android Vibrator Driver Resume\n"); android_vibrator_intialize(); return 0; }