/* ** Called to enable amp (enable output force) */ IMMVIBESPIAPI VibeStatus ImmVibeSPI_ForceOut_AmpEnable(VibeUInt8 nActuatorIndex) { /*printk(KERN_ERR"[VIBRATOR]ImmVibeSPI_ForceOut_AmpEnable is called\n");*/ #if 0 if (!g_bAmpEnabled) { DbgOut((KERN_DEBUG "ImmVibeSPI_ForceOut_AmpEnable.\n")); g_bAmpEnabled = true; /* Generate PWM CLK with proper frequency(ex. 22400Hz) and 50% duty cycle.*/ /* Enable amp */ } #endif if (!g_bAmpEnabled) { #if !defined(CONFIG_MACH_P4NOTE) vibtonz_en(true); #endif g_bAmpEnabled = true; regulator_hapticmotor_enabled = 1; printk(KERN_DEBUG "Motor:tspdrv: %s (%d)\n", __func__, regulator_hapticmotor_enabled); } return VIBE_S_SUCCESS; }
/* ** Called to disable amp (disable output force) */ IMMVIBESPIAPI VibeStatus ImmVibeSPI_ForceOut_AmpDisable(VibeUInt8 nActuatorIndex) { /*printk(KERN_ERR"[VIBRATOR] ImmVibeSPI_ForceOut_AmpDisable is called\n");*/ #if 0 if (g_bAmpEnabled) { DbgOut((KERN_DEBUG "ImmVibeSPI_ForceOut_AmpDisable.\n")); g_bAmpEnabled = false; /* Disable amp */ /* Disable PWM CLK */ } #endif if (g_bAmpEnabled) { g_bAmpEnabled = false; #if !defined(CONFIG_MACH_P4NOTE) vibtonz_pwm(0); vibtonz_en(false); #endif if (regulator_hapticmotor_enabled == 1) { regulator_hapticmotor_enabled = 0; printk(KERN_DEBUG "Motor:tspdrv: %s (%d)\n", __func__, regulator_hapticmotor_enabled); } } return VIBE_S_SUCCESS; }
/* ** Called to enable amp (enable output force) */ IMMVIBESPIAPI VibeStatus ImmVibeSPI_ForceOut_AmpEnable(VibeUInt8 nActuatorIndex) { if (!g_bAmpEnabled) { vibtonz_en(true); g_bAmpEnabled = true; regulator_hapticmotor_enabled = 1; } return VIBE_S_SUCCESS; }
/* ** Called to disable amp (disable output force) */ IMMVIBESPIAPI VibeStatus ImmVibeSPI_ForceOut_AmpDisable(VibeUInt8 nActuatorIndex) { if (g_bAmpEnabled) { g_bAmpEnabled = false; vibtonz_pwm(0); vibtonz_en(false); if (regulator_hapticmotor_enabled == 1) { regulator_hapticmotor_enabled = 0; } } return VIBE_S_SUCCESS; }
static int set_vibetonz(int timeout) { if(!timeout) { printk("[VIBETONZ] DISABLE\n"); #if defined (CONFIG_KOR_MODEL_SHV_E110S) if (get_hw_rev() > 0x00 ){ vib_isa1200_onoff(0); vibtonz_en(0); } else { gpio_set_value(VIB_EN, VIBRATION_OFF); } #elif defined (CONFIG_KOR_SHV_E120L_HD720) || defined(CONFIG_KOR_MODEL_SHV_E120K) || defined(CONFIG_KOR_MODEL_SHV_E120S) || defined(CONFIG_KOR_MODEL_SHV_E160S) || defined(CONFIG_KOR_MODEL_SHV_E160K) || defined(CONFIG_KOR_MODEL_SHV_E160L) || defined (CONFIG_KOR_MODEL_SHV_E120L) vib_isa1200_onoff(0); vibtonz_en(0); #elif defined (CONFIG_USA_MODEL_SGH_T989)|| defined (CONFIG_USA_MODEL_SGH_I727) || defined (CONFIG_USA_MODEL_SGH_T769) if (get_hw_rev() > 0x04 ){ vib_isa1200_onoff(0); vibtonz_en(0); } else { gpio_set_value(VIB_EN, VIBRATION_OFF); } #elif defined (CONFIG_USA_MODEL_SGH_I717) || defined(CONFIG_USA_MODEL_SGH_I757) || defined(CONFIG_USA_MODEL_SGH_I577) vib_isa1200_onoff(0); vibtonz_en(0); #elif defined (CONFIG_JPN_MODEL_SC_03D) if (get_hw_rev() > 0x00 ){ vib_isa1200_onoff(0); vibtonz_en(0); } else { gpio_set_value(VIB_EN, VIBRATION_OFF); } #else gpio_set_value(VIB_EN, VIBRATION_OFF); #endif } else { printk("[VIBETONZ] ENABLE\n"); #if defined (CONFIG_KOR_MODEL_SHV_E110S) if (get_hw_rev() > 0x00 ){ vibtonz_en(1); vibe_set_pwm_freq(258); vib_isa1200_onoff(1); } else { gpio_set_value(VIB_EN, VIBRATION_ON); } #elif defined (CONFIG_KOR_SHV_E120L_HD720) || defined(CONFIG_KOR_MODEL_SHV_E120K) || defined(CONFIG_KOR_MODEL_SHV_E120S) || defined(CONFIG_KOR_MODEL_SHV_E160S) || defined(CONFIG_KOR_MODEL_SHV_E160K) || defined(CONFIG_KOR_MODEL_SHV_E160L) || defined (CONFIG_KOR_MODEL_SHV_E120L) vibtonz_en(1); vibe_set_pwm_freq(258); vib_isa1200_onoff(1); #elif defined (CONFIG_USA_MODEL_SGH_T989)|| defined (CONFIG_USA_MODEL_SGH_I727) || defined (CONFIG_USA_MODEL_SGH_T769) if (get_hw_rev() > 0x04 ){ vibtonz_en(1); vibe_set_pwm_freq(258); vib_isa1200_onoff(1); } else { gpio_set_value(VIB_EN, VIBRATION_ON); } #elif defined (CONFIG_USA_MODEL_SGH_I717) || defined(CONFIG_USA_MODEL_SGH_I757) || defined(CONFIG_USA_MODEL_SGH_I577) vibtonz_en(1); vibe_set_pwm_freq(258); vib_isa1200_onoff(1); #elif defined (CONFIG_JPN_MODEL_SC_03D) if (get_hw_rev() > 0x00 ){ vibtonz_en(1); vibe_set_pwm_freq(258); vib_isa1200_onoff(1); } else { gpio_set_value(VIB_EN, VIBRATION_ON); } #else gpio_set_value(VIB_EN, VIBRATION_ON); #endif } vibrator_value = timeout; return 0; }