static void gsl_sw_init(struct i2c_client *client)
{
	struct gsl_ts_data *ts = i2c_get_clientdata(client);
	int rc;
	if(ts->sw_init_flag == 1)
		return;
	ts->sw_init_flag = 1;
	disable_irq(client->irq);
	gsl_ts_shutdown_low();	
	msleep(20); 	
	gsl_ts_shutdown_high();	
	msleep(20); 		
	rc = gsl_test_i2c(client);
	if(rc < 0)
	{
		ts->sw_init_flag = 0;
		printk("------gsl_ts test_i2c error------\n");
		enable_irq(client->irq);
		return;
	}

	gsl_clear_reg(client);
	gsl_reset_core(client);
	gsl_load_fw(client,gsl_cfg_table[gsl_cfg_index].fw,
		gsl_cfg_table[gsl_cfg_index].fw_size);
	gsl_start_core(client);
	gsl_reset_core(client);
	gsl_start_core(client);
	ts->sw_init_flag = 0;
	enable_irq(client->irq);
}
Пример #2
0
static void gsl_sw_init(void)
{
	gsl_clear_reg();
	gsl_reset_core();
    gsl_load_fw(GSLX68X_FW,val_len);
}