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); }
static void gsl_sw_init(void) { gsl_clear_reg(); gsl_reset_core(); gsl_load_fw(GSLX68X_FW,val_len); }