Beispiel #1
0
static int capella_cm3602_enable(struct capella_cm3602_data *data)
{
	int rc;
	int irq = data->pdata->irq;

	IPS("%s\n", __func__);
	if (data->enabled) {
		DPS("%s: already enabled\n", __func__);
	return 0;
}

	/* dummy report */
	input_report_abs(data->input_dev, ABS_DISTANCE, -1);
	input_sync(data->input_dev);

	data->pdata->power(PS_PWR_ON, 1);

	rc = gpio_direction_output(data->pdata->p_en, 0);

	msleep(220);

	data->enabled = !rc;
	if (!rc)
		capella_cm3602_report(data);

	enable_irq(irq);
	rc = irq_set_irq_wake(irq, 1);
	if (rc < 0)
		EPS("%s: failed to set irq %d as a wake interrupt\n",
			__func__, irq);

	return rc;
}
static int capella_cm3602_enable(struct capella_cm3602_data *data)
{
	int rc;
	D("%s\n", __func__);
	//time_enable = true;
	if (data->enabled) {
		D("%s: already enabled\n", __func__);
		return 0;
	}
/*	gpio_direction_output(pdata->pwd_out_pin, SPI_GPIO_OUT);
	gpio_set_value(pdata->pwd_out_pin, SPI_GPIO_LOW);		//CM3605_PWD output
	gpio_direction_output(pdata->ps_shutdown_pin, SPI_GPIO_OUT);
	gpio_set_value(pdata->ps_shutdown_pin, SPI_GPIO_LOW);		//CM3605_PS_SHUTDOWN
*/
	data->pdata->power(1);
	data->enabled = !rc;
	if (!rc)
		capella_cm3602_report(data);
	return rc;
}
Beispiel #3
0
static irqreturn_t capella_cm3602_irq_handler(int irq, void *data)
{
	struct capella_cm3602_data *ip = data;
	capella_cm3602_report(ip);
	return IRQ_HANDLED;
}