Exemplo n.º 1
0
static void ast_vibrator_enable(struct timed_output_dev *dev, int value)
{
    haptic_vibrator->timeout = value;

	if (IS_ERR(haptic_vibrator->pwm)) {
		printk("haptic_vibrator->pwm error\n");
		return ;
	}

	if(pwm_duty_val != 1)
	{
		haptic_vibrator->duty_cycle=pwm_duty_val;
	}

    if (haptic_vibrator->on_dock == false) {
       	pwm_config(haptic_vibrator->pwm, haptic_vibrator->duty_cycle, 
                   haptic_vibrator->pwm_period);
		pwm_enable(haptic_vibrator->pwm);
        vibrator_enable();
		msleep(value);
    }

    vibrator_disable();
    vibrator_disable_pwm();

    return;
}
Exemplo n.º 2
0
/* Called to disable amp (disable output force) */
IMMVIBESPIAPI VibeStatus ImmVibeSPI_ForceOut_AmpDisable( VibeUInt8 nActuatorIndex )
{
    if (haptic_vibrator->amp_enabled) {
		DbgOut((DBL_VERBOSE, "[ImmVibeSPI] : ImmVibeSPI_ForceOut_AmpDisable\n"));
		
        vibrator_disable();
        vibrator_disable_pwm();
	}

	return VIBE_S_SUCCESS;
}
Exemplo n.º 3
0
static int dock_notify(struct notifier_block *nb, unsigned long state, void *unused)
{
    if (state) {                /* dock inserted, disable vibrator */
        haptic_vibrator->on_dock = true;
        vibrator_disable();
        vibrator_disable_pwm();
    } else {                    /* dock removed*/
        haptic_vibrator->on_dock = false;
    }
    
    return NOTIFY_OK;
}
Exemplo n.º 4
0
// at_param shall be ONLY  INTERGER, do not  (float / pointer / string...)
static int  dsatHandleAT_ARM11(uint32_t at_cmd, uint32_t at_act, uint32_t at_param,struct msm_rpc_server *server)
{
	int result = HANDLE_OK;
#ifdef USE_REPLY_RETSTRING
	int loop = 0;
#endif
	char ret_string[MAX_STRING_RET];
	uint32_t ret_value1 =0;
	uint32_t ret_value2 = 0;
	memset (ret_string, 0, sizeof(ret_string));


	switch (at_cmd)
	{
		// example code
		case ATCMD_FRST:
		{
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;

			sprintf(ret_string, "edcb");
			ret_value1 = 10;
			ret_value2 = 20;
		}
		break;

		case ATCMD_SWV:
		{


		}
		break;

                case ATCMD_AVR: /* 45 */
                {
                        //printk("#### ATCMD_AVR ###### Act: 0x%x, Param: 0x%x\n", at_act, at_param);
			 printk("\n[kschoi] ***** ATCMD_AVR key = %d : rpc_server_misc.c",at_param);	
	         lge_atcmd_report_key(1, at_param);			 
                }
                break;
		case ATCMD_EMT:	//46
		{
			ret_value1 = external_memory_test();
		}
		break;
		
		case ATCMD_NOT_ATMCD_EARSENSE:
		{
		  printk(" ****************** ATCMD_NOT_ATMCD_EARSENSE ****************** \n");
		  printk(" ****************** headset_inserted [%d] ****************** \n",headset_inserted);
			ret_value1 = headset_inserted;
			break;
		}
		case ATCMD_FRSTSTATUS:
			if ( at_act == ATCMD_ACTION )
				ret_value1 = set_kernel_factory_reset_status(at_param);
			else
				ret_value1 = get_kernel_factory_reset_status();
			break;
			
       case ATCMD_MOT:	// 71
       {
       	
#if 1 // def CONFIG_ANDROID_VIBRATOR

       	if (at_act == ATCMD_ACTION){
       		ret_value1 = is_vib_state(); // Check vibrator state
          }
          else if (at_act == ATCMD_ASSIGN) {
				if (at_param== 1) 	{
//					vibrator_set(100);
					vibrator_enable();  // Enable vibrator
					ret_value1 = 1; 	// "MOTOR ON"
				}
				else	{
					vibrator_disable();  // Disabe vibrator
					printk("#### ATCMD_MOT 0###### Act: 0x%x, Param: 0x%x\n", at_act, at_param);
					ret_value1 = 0; 	// "MOTOR OFF"
				}
			}
			else	
#endif

			{
				result = HANLDE_FAIL;
			}
		}
		break;			
		case ATCMD_FKPD:	// 33       	
		{
          if (at_act == ATCMD_ASSIGN) {
				ret_value1 = 1; 
				at_fkpd_cfg(1/*ENABLE FKPD KEY INPUT*/, at_param/*AT INPUT KEY VALUE*/); 

			}
			else if (at_act == ATCMD_QUERY){		//JUST RETURN OK
				ret_value1 = 1;
			}
			else	{
				result = HANLDE_FAIL;
			}
		}
		break;			
			
		case ATCMD_GKPD:	// 34
		{
       	if (at_act == ATCMD_ACTION) {
 				
       		ret_value1 = at_gkpd_cfg(0/* 0 = READ GKPD*/,0/* READ GKPD STATE*/); //READ GKPD STATE
          }
          else if (at_act == ATCMD_ASSIGN) {
				if (at_param== 1) 	
					{
					at_gkpd_cfg(1/*WRITE GKPD*/,1/*WRITE TO SET GKPD BUFF*/); //SET GKPD STATE
					ret_value1 = 1; 	// "GKPD ON"
				}
				else	{
					at_gkpd_cfg(1/*WRITE GKPD*/,0/*DISABLE GKPD BUFF*/);  //DISABLE GKPD STATE
					ret_value1 = 0; 	// "GKPD OFF"
				}
			}
			else if (at_act == ATCMD_QUERY) {	
				ret_value1 = at_gkpd_cfg(0/*READ GKPD*/,1/*READ GKPD BUUFERED VALUE*/); //READ A GKPD BUUFER VALUE
			}
			else	{
				result = HANLDE_FAIL;
			}
		}
			break;

		case ATCMD_BOFF: // 58
		{			
			// To use AT%LCD, uncomment this.

#if defined(CONFIG_MACH_MSM7X27_SWIFT)
			int fd;
			char buf = '0';
			mm_segment_t oldfs;

			oldfs = get_fs();
			set_fs(get_ds());

			fd = sys_open((const char __user *) "/sys/devices/virtual/backlight/rt9393/brightness", O_WRONLY | O_CREAT | O_TRUNC, 0777);
			if (fd < 0) {
				break;
			}

			sys_write(fd, &buf, sizeof(char));
			sys_close(fd);
			set_fs(oldfs);
#endif

#ifdef CONFIG_BACKLIGHT_EVE
			lge_atcmd_boff();
#endif
			ret_value1 = 1;
		}
			break;

		case ATCMD_FC:	// 59
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;

#ifdef CONFIG_ANDROID_HALL_IC
			if (is_slide_open()== 0) 
			{
				set_slide_open(1);  // close slide
				ret_value1 = 1; 	// "FOLDER CLOSE OK"
			}
			else
			{
				ret_value1 = 0; 	// "FOLDER IS ALREADY CLOSED"
			}
#endif
			break;

		case ATCMD_FO:	// 60
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;

#ifdef CONFIG_ANDROID_HALL_IC
			if (is_slide_open() == 0)
			{
				ret_value1 = 1; 	// "FOLDER IS ALREADY OPEN"
			}
			else
			{
				set_slide_open(0);  // open slide
				ret_value1 = 0; 	// "FOLDER OPEN OK"
			}
#endif
			break;
#if 1 // defined (CONFIG_MACH_EVE)-comment
		case ATCMD_VLC:	//36
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "vlc", at_param); //state is up? down?
			}
			else 
			{
				printk("\n[%s] error vlc", __func__ );
			}
			break;
		case ATCMD_SPM:	//40
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "spm", at_param); //state is up? down?
			}
			else 
			{
				printk("\n[%s] error spm", __func__ );
			}
			break;
			
		case ATCMD_ACS:
			if ( at_param != 0 )
				mdelay(1000);
			break;
		case ATCMD_MPT:	//43
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "mpt", at_param); //state is up? down?
	 			mdelay (1000);
			}
			else 
			{
				printk("\n[%s] error mpt", __func__ );
			}
			break;
		case ATCMD_FMR: //42
		       printk("\n[rpc_server_misc] ATCMD_FMR");
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "fmr", at_param); //state is up? down?
			}
			else 
			{
				printk("\n[%s] error fmr", __func__ );
			}
			break;
#endif
        case ATCMD_LCD: /* 69 */
			{	           
	            // To use AT%LCD, uncomment this.
	            lge_atcmd_report_key(ATCMD_LCD_REPORTKEY, at_param);				

				ret_value1 = 1;
        	}
            break;
        case ATCMD_CAM: /* 70 */
	        {
	                //printk("#### ATCMD_CAM ###### Act: 0x%x, Param: 0x%x\n", at_act, at_param);
					printk("\n[kschoi] ***** ATCMD_CAM key = %d: rpc_server_misc.c",at_param);
	                lge_atcmd_report_key(0, at_param);					
	        }
        	break;

		default :
			result = HANDLE_ERROR;
			break;


	}

	// give to RPC server result
	/////////////////////////////////////////////////////////////////
#ifdef USE_REPLY_RETSTRING
	for(loop = 0; loop < MAX_STRING_RET ; loop++)
	{
		server->retvalue.ret_string[loop]= (AT_STR_t)(ret_string[loop]);
	}
	server->retvalue.ret_string[MAX_STRING_RET-1] = 0;
	server->retvalue.ret_value1 = ret_value1;
	server->retvalue.ret_value2 = ret_value2;
#endif
/////////////////////////////////////////////////////////////////
	return result;
}