Beispiel #1
0
static long proximity_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{

	struct gp2a_data *gp2a = dev_get_drvdata(switch_cmd_dev);
	int ret=0;
	switch(cmd) {

		case SHARP_GP2AP_OPEN:
			{
				printk(KERN_INFO "[PROXIMITY] %s : case OPEN\n", __FUNCTION__);
				gp2a_on(gp2a,PROXIMITY);
				proximity_enable =1;
				
			}
			break;

		case SHARP_GP2AP_CLOSE:
			{
				printk(KERN_INFO "[PROXIMITY] %s : case CLOSE\n", __FUNCTION__);
				gp2a_off(gp2a,PROXIMITY);
				proximity_enable=0;
			}
			break;

		default:
			printk(KERN_INFO "[PROXIMITY] unknown ioctl %d\n", cmd);
			ret = -1;
			break;
	}
	return ret;
}
static ssize_t lightsensor_file_cmd_store(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t size)
{
	struct gp2a_data *gp2a = dev_get_drvdata(dev);
	int value;
    sscanf(buf, "%d", &value);

	printk(KERN_INFO "[LIGHT_SENSOR] in lightsensor_file_cmd_store, input value = %d \n",value);

	if(value==1 && light_enable == OFF)
	{
		light_init_period = 4;
		gp2a_on(gp2a,LIGHT);
		value = ON;
	}
	else if(value==0 && light_enable ==ON) 
	{
		gp2a_off(gp2a,LIGHT);
		value = OFF;
	}

	/* temporary test code for proximity sensor */
	else if(value==3 && proximity_enable == OFF)
	{
		gp2a_on(gp2a,PROXIMITY);
		printk("[PROXIMITY] Temporary : Power ON\n");


	}
	else if(value==2 && proximity_enable == ON)
	{
		gp2a_off(gp2a,PROXIMITY);
		printk("[PROXIMITY] Temporary : Power OFF\n");

	}
	/* for factory simple test mode */
	if(value==7 && light_enable == OFF)
	{
		light_init_period = 2;
		gp2a_on(gp2a,LIGHT);
		value = 7;
	}

	return size;
}
Beispiel #3
0
static int light_open(struct inode *ip, struct file *fp)
{
	struct gp2a_data *gp2a = dev_get_drvdata(switch_cmd_dev);

	gprintk("[%s] \n",__func__);
	gp2a_on(gp2a,LIGHT);
	return 0;

}
Beispiel #4
0
static ssize_t gp2a_onoff_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	unsigned long value = simple_strtoul(buf, NULL, 10);												  
	struct gp2a_data *gp2a = dev_get_drvdata(dev);

	value?gp2a_on(gp2a):gp2a_off(gp2a);
	
	return size;
}
static long proximity_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{

	struct gp2a_data *gp2a = dev_get_drvdata(switch_cmd_dev);
	int ret=0;
	switch(cmd) {

		case SHARP_GP2AP_OPEN:
			{
				if(!proximity_enable)
				{
					printk(KERN_INFO "[PROXIMITY] %s : case OPEN\n", __FUNCTION__);
					gp2a_on(gp2a,PROXIMITY);
				}
				else
					printk(KERN_INFO "[PROXIMITY] Warning!! Proximity is already power on\n");
				
			}
			break;

		case SHARP_GP2AP_CLOSE:
			{
				if(proximity_enable)
				{
					printk(KERN_INFO "[PROXIMITY] %s : case CLOSE\n", __FUNCTION__);
					gp2a_off(gp2a,PROXIMITY);
		   			wake_lock_timeout(&prx_wake_lock,3 * HZ);
				}
				else
					printk(KERN_INFO "[PROXIMITY] Warning!! Proximity is already power off\n");
			}
			break;

		default:
			printk(KERN_INFO "[PROXIMITY] unknown ioctl %d\n", cmd);
			ret = -1;
			break;
	}
	return ret;
}
Beispiel #6
0
static ssize_t proxsensor_onoff_ctrl_store(struct device *dev, struct device_attribute *attr, char *buf, size_t size)
{
    struct gp2a_data *gp2a = dev_get_drvdata(switch_cmd_dev);
    unsigned int onoff;
    int ret = 0;

    sscanf(buf,"%d\n",&onoff);
    printk("Set Proximity Sensor OnOff : %d\n",onoff);

    if(onoff == 1)
    {
        ret = gp2a_on(gp2a,PROXIMITY);
        if(ret == 0)
            proximity_enable =1;
    }
    else
    {
        ret = gp2a_off(gp2a,PROXIMITY);
        if(ret == 0)      
            proximity_enable =0;
    }

    return size;
}
Beispiel #7
0
static ssize_t lightsensor_file_cmd_store(struct device *dev,
        struct device_attribute *attr, const char *buf, size_t size)
{
	struct gp2a_data *gp2a = dev_get_drvdata(dev);
	int value;
    sscanf(buf, "%d", &value);
	int ret;

	printk(KERN_INFO "[LIGHT_SENSOR] in lightsensor_file_cmd_store, input value = %d, light_enable = %d \n",value, light_enable);
	switch(value){		// iamaj  add case 8, 9 for  enable light sensor without autobrightness
#ifdef LIGHT_SENSOR_ENABLED
		case 0 :
		{
			if(light_enable == ON)
			{
				gp2a_off(gp2a,LIGHT); //Light sensor is always on
			}
			lightsensor_test = 0;
			value = OFF;
			printk(KERN_INFO "[LIGHT_SENSOR] *#0589# test end, input value = %d \n",value);
			break;
		}
		case 1 : 
		{
			if(light_enable == OFF)
			{
				gp2a_on(gp2a,LIGHT);  //Light sensor is always on
			}
			lightsensor_test = 1;
			value = ON;
			printk(KERN_INFO "[LIGHT_SENSOR] *#0589# test start, input value = %d \n",value);
			break;
		}
#endif
	/* temporary test code for proximity sensor */
		case 2 :
		{
			if(proximity_enable == ON)
			{
				ret = gp2a_off(gp2a,PROXIMITY);
				if(ret==0) proximity_enable =0;
				printk("[PROXIMITY] Temporary : Power OFF\n");
			}
			break;
		}		
		case 3 :
		{
			if(proximity_enable == OFF){
				ret = gp2a_on(gp2a,PROXIMITY);
				if(ret==0) proximity_enable =1;
				printk("[PROXIMITY] Temporary : Power ON\n");
				}
			break;
		}
#ifdef LIGHT_SENSOR_ENABLED
		case 7 :
		{
			if(light_enable == OFF)
			{
				light_init_period = 2;
				gp2a_on(gp2a,LIGHT);
				value = 7;
			}
			break;
		}		
#endif
		default :
			break;
		}
				
	return size;
}