Пример #1
0
//[*]--------------------------------------------------------------------------------------------------[*]
static void 	touch_input_close(struct input_dev *input)
{
	struct touch 	*ts = input_get_drvdata(input);

	touch_disable(ts);

//	printk("%s\n", __func__);
}
Пример #2
0
//[*]--------------------------------------------------------------------------------------------------[*]
// firmware version display
//[*]--------------------------------------------------------------------------------------------------[*]
static	ssize_t show_fw_version			(struct device *dev, struct device_attribute *attr, char *buf)
{
	struct touch 	*ts = dev_get_drvdata(dev);

	if(!err_mask(ts->fw_status) && !(ts->fw_status & STATUS_BOOT_MODE))	{
		touch_disable(ts);
		touch_wake_control(ts);
		touch_i2c_read(ts->client, REG_TS_FIRMWARE_ID, 1, &ts->fw_version);
		touch_enable(ts);
	}

	return sprintf(buf, "%d\n", ts->fw_version);
}
Пример #3
0
//[*]--------------------------------------------------------------------------------------------------[*]
static	ssize_t store_disable			(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
	struct touch 	*ts = dev_get_drvdata(dev);
	unsigned long 	val;
	int 			err;

	if ((err = strict_strtoul(buf, 10, &val)))	return err;

	if (val) 	touch_disable(ts);	// interrupt disable
	else		touch_enable(ts);	// interrupt enable

	return count;
}
Пример #4
0
//[*]--------------------------------------------------------------------------------------------------[*]
//[*]--------------------------------------------------------------------------------------------------[*]
//   disablel (1 -> disable irq, cancel work, 0 -> enable irq), show irq state
//[*]--------------------------------------------------------------------------------------------------[*]
static	ssize_t show_idle				(struct device *dev, struct device_attribute *attr, char *buf)
{
	struct touch 	*ts = dev_get_drvdata(dev);
	unsigned char	idle = 0;

	if(!err_mask(ts->fw_status) && !(ts->fw_status & STATUS_BOOT_MODE))	{
		touch_disable(ts);
		touch_wake_control(ts);
		if(touch_i2c_read(ts->client, REG_TS_IDLE_RD, 1, &idle) == 1)		{
			touch_enable(ts);
			return sprintf(buf, "%d\n", idle);
		}
		touch_enable(ts);
	}
	return sprintf(buf, "%d\n", -1);
}
Пример #5
0
//[*]--------------------------------------------------------------------------------------------------[*]
static	ssize_t store_idle			(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
	struct touch 	*ts = dev_get_drvdata(dev);
	unsigned long 	val  = 0;
	unsigned char	idle = 0;
	int 			err;

	if ((err = strict_strtoul(buf, 10, &val)))	return err;

	if (val > 255 && val < 0)	idle = 0;
	else	{
		idle = (unsigned char)val;
		if(!err_mask(ts->fw_status) && !(ts->fw_status & STATUS_BOOT_MODE))	{
			touch_disable(ts);
			touch_wake_control(ts);
			touch_i2c_write(ts->client, REG_TS_IDLE_WR, 1, &idle);
			touch_enable(ts);
		}
	}

	return count;
}
Пример #6
0
				void 	touch_suspend			(struct device *dev)
#endif		
{
	#ifdef	CONFIG_HAS_EARLYSUSPEND
		struct touch *ts = container_of(h, struct touch, power);
	#else	
		struct touch *ts = dev_get_drvdata(dev);
	#endif	

		int ret;
	//printk( KERN_INFO "LDC3001B_suspend().....\n");//Remove debug log
	/*[BEGIN] 2011-12-19 Jack: Disable IRQ Firstly*/
	touch_disable(ts);
	/*[END] 2011-12-19 Jack: Disable IRQ Firstly*/
	/*[BEGIN] 2011-12-19 Jack: Cut Touch VDD when system suspend*/
	ret = ts->pdata->lgd_power_save(0);
	if(ret < 0){
		printk( KERN_INFO "lgd power open off failed\n");
	}
	/*[END] 2011-12-19 Jack: Cut Touch VDD when system suspend*/

}