//[Arima Edison] add exception for charger usage++
static ssize_t enable_vibrator(struct device *dev,
					struct device_attribute *attr,
					const char *buf, size_t count)
{

	static unsigned long keep_time_data;
	int rc;

	if (strict_strtoul(buf, 10, &keep_time_data))
		return -EINVAL;

	hrtimer_cancel(&vibe_timer);

	keep_time_data = (keep_time_data > 300 ? 300 : keep_time_data);
	rc = pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__MANUAL);

	if(keep_time_data == 0)
	{
		rc = pmic_vib_mot_set_volt(0);
	}
	else {
		rc = pmic_vib_mot_set_volt(3000);
		mdelay( keep_time_data );
		rc = pmic_vib_mot_set_volt(0);

	}

	return count;
}
예제 #2
0
static void set_pmic_vibrator(int on)
{
	if (on){
		pmic_vib_mot_set_polarity(PM_VIB_MOT_POL__ACTIVE_LOW);
		pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__DBUS2);
		pmic_vib_mot_set_volt(PMIC_VIBRATOR_ON_LEV);
	}else{
		pmic_vib_mot_set_volt(0);
	}
}
예제 #3
0
static void set_pmic_vibrator(int on)
{
	mutex_lock(&sh_vibrator_pmic_mutex);
	if (on){
		pmic_vib_mot_set_polarity(PM_VIB_MOT_POL__ACTIVE_LOW);
		pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__DBUS2);
		pmic_vib_mot_set_volt(PMIC_VIBRATOR_ON_LEV);
		pr_debug("[shvibrator] PMIC vibrator On.\n");
	}else{
		pr_debug("[shvibrator] PMIC vibrator Off.\n");
		pmic_vib_mot_set_volt(0);
	}
	mutex_unlock(&sh_vibrator_pmic_mutex);
}
예제 #4
0
static void set_pmic_vibrator(int on)
{
	int rc = 0;

	rc = pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__MANUAL);
	if (rc < 0) {
		printk(KERN_ERR "vib set mode rpc failed!\n");
	}

	rc = pmic_vib_mot_set_volt(on?PMIC_VIBRATOR_LEVEL:0);
	if (rc < 0) {
		printk(KERN_ERR "vib set volt rpc failed!\n");
	}
}
예제 #5
0
static int debug_vib_mot_set_mode(char *buf, int size)
{
	int mode;
	int	cnt;

	cnt = sscanf(buf, "%d", &mode);
	if (cnt < 1) {
		printk(KERN_ERR "%s: sscanf failed cnt=%d" , __func__, cnt);
		return -EINVAL;
	}
	if (pmic_vib_mot_set_mode(mode) < 0)
		return -EFAULT;

	return size;
}
static void set_pmic_vibrator(int on)
{
	int rc;

	rc = pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__MANUAL);
	if (rc) {
		pr_err("%s: Vibrator set mode failed", __func__);
		return;
	}

	if (on)
		rc = pmic_vib_mot_set_volt(PMIC_VIBRATOR_LEVEL);
	else
		rc = pmic_vib_mot_set_volt(0);

	if (rc)
		pr_err("%s: Vibrator set voltage level failed", __func__);
}
static void set_pmic_vibrator(int on)
{
	int rc;

	rc = pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__MANUAL);
	if (rc) {
		pr_err("%s: Vibrator set mode failed", __func__);
		return;
	}

	if (on)
		rc = pmic_vib_mot_set_volt(vibrator_duration_value);
	else
		rc = pmic_vib_mot_set_volt(0);
#if 0
	if (rc)
		pr_err("%s: Vibrator set voltage level failed", __func__);
#endif
}
static void set_pmic_vibrator(int on)
{
	int rc;
	/*++ Kevin Shiu - 20121003 Save intensity using liked list ++*/
	vibrator_list *vibrator = NULL;
	/*-- Kevin Shiu - 20121003 Save intensity using liked list --*/

	rc = pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__MANUAL);
	if (rc) {
		pr_err("%s: Vibrator set mode failed", __func__);
		return;
	}

	/*++ Kevin Shiu - 20121003 Save intensity using liked list ++*/
	if(on && (vibrator_list_head.next == &vibrator_list_head)){
		pr_err("%s: list_head is invalid", __func__);
		return;
	}

	if(on){
		//get vibrator_list pointer
		vibrator = list_entry(vibrator_list_head.next , vibrator_list , list);
		rc = pmic_vib_mot_set_volt(vibrator->vibrator_level);

        //if ture, it means that only creates a structure.
		if(vibrator->list.next == vibrator->list.prev){
			list_del_rcu(&vibrator_list_head);
			INIT_LIST_HEAD(&vibrator_list_head);
		}else{	
			list_del_rcu(&vibrator->list);
		}

		//free
		kfree(vibrator);
	}else{
		rc = pmic_vib_mot_set_volt(0);
	}
    /*-- Kevin Shiu - 20121003 Save intensity using liked list --*/

	if (rc)
		pr_err("%s: Vibrator set voltage level failed", __func__);
}
예제 #9
0
static void set_pmic_vibrator(int on)
{
	int rc;

	rc = pmic_vib_mot_set_mode(PM_VIB_MOT_MODE__MANUAL);
	if (rc) {
		pr_err("%s: Vibrator set mode failed", __func__);
		return;
	}

/* LGE_CHANGE,
 * Apply changed voltage to operate vibrator
 * 2011-08-20, [email protected]
*/
	if (on)
		/* rc = pmic_vib_mot_set_volt(PMIC_VIBRATOR_LEVEL); */ /* origin code */
		rc = pmic_vib_mot_set_volt(voltage);
/* LGE_CHANGE End */
	else
		rc = pmic_vib_mot_set_volt(0);

	if (rc)
		pr_err("%s: Vibrator set voltage level failed", __func__);
}