//[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; }
static void board_vibrator_ctrl(int on) { int ret = 0; static int nStatus = 0; unsigned int vib_voltage = 0; printk("%s on = %d nStatus = %d\n", __func__, on, nStatus); if(nStatus == on) { printk("%s set already!\n", __func__); return VIBE_E_FAIL; } else { nStatus = on; } vib_voltage = 3100; if(on) { ret = pmic_vib_mot_set_volt(vib_voltage); } else { ret = pmic_vib_mot_set_volt(0); } printk("%s status = %d\n", __func__, ret); return VIBE_S_SUCCESS; }
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); } }
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); }
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 vibrator_control( struct vibrator_classdev *classdev, int state ) { struct vib_driver_data *driver_data = container_of( classdev, struct vib_driver_data, classdev ); if( pmic_vib_mot_set_volt( state ? driver_data->level : 0 ) < 0 ) printk( KERN_ERR "VIB : Vibrator(%s) set voltage level failed\n", classdev->name ); else printk( "VIB : Vibrator(%s) %s\n", classdev->name, state ? "on" : "off" ); }
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__); }
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"); } }
static int debug_vib_mot_set_volt(char *buf, int size) { int vol; int cnt; cnt = sscanf(buf, "%d", &vol); if (cnt < 1) { printk(KERN_ERR "%s: sscanf failed cnt=%d" , __func__, cnt); return -EINVAL; } if (pmic_vib_mot_set_volt(vol) < 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; } /* 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__); }
static int hcit_ioctl(struct inode *ino, struct file *filp, unsigned int cmd, unsigned long arg) { int err = 0; switch (cmd) { case HCIT_IOCTL_KEYLED_ON: printk("[HCIT] HCIT_IOControl : IOCTL_GPIO_KEYLEDON \r\n"); pmic_set_led_intensity(LED_KEYPAD, PMIC_LED_LCD__LEVEL4); break; case HCIT_IOCTL_KEYLED_OFF: printk("[HCIT] HCIT_IOControl : IOCTL_GPIO_KEYLEDOFF\r\n"); pmic_set_led_intensity(LED_KEYPAD, PMIC_LED_LCD__LEVEL0); break; case HCIT_IOCTL_VIB_ON: { int time_ms; time_ms = *((int *)arg); pmic_vib_mot_set_volt(VIBRATOR_MOTOR_ON_VOLT); if (time_ms > 0) { msleep(time_ms); pmic_vib_mot_set_volt(VIBRATOR_MOTOR_OFF_VOLT); } } break; case HCIT_IOCTL_VIB_OFF: pmic_vib_mot_set_volt(VIBRATOR_MOTOR_OFF_VOLT); break; case HCIT_IOCTL_LCD_BACKLIGHT_ON: printk ("[HCIT] HCIT_IOControl : HCIT_IOCTL_LCD_BACKLIGHT_ON \r\n"); gpio_direction_output(29, 1); break; case HCIT_IOCTL_LCD_BACKLIGHT_OFF: printk ("[HCIT] HCIT_IOControl : HCIT_IOCTL_LCD_BACKLIGHT_OFF \r\n"); gpio_direction_output(29, 0); break; case HCIT_IOCTL_GPIOLED_ON: case HCIT_IOCTL_GPIOLED_OFF: printk ("[HCIT] HCIT_IOControl : HCIT_IOCTL_GPIOLED_ON / OFF\r\n"); hcit_gpioled_ctl(arg); break; case HCIT_IOCTL_BLUETOOTH_ON: err = bluetooth_power(1); printk ("[HCIT] HCIT_IOControl : HCIT_IOCTL_BLUETOOTH_ON err<%d>\r\n", err); break; case HCIT_IOCTL_BLUETOOTH_OFF: err = bluetooth_power(0); printk ("[HCIT] HCIT_IOControl : HCIT_IOCTL_BLUETOOTH_OFF err<%d>\r\n", err); break; default: printk("[HCIT] HCIT_IOControl : unknown cmd=%d\r\n", cmd); break; } return 0; }