int muic_set_device_none_detect(struct i2c_client *client, unsigned char int_stat_value) { // s32 loop = 0; unsigned char charger_value = 0; unsigned char stat_value = 0; // unsigned char Accessory_value = 0; // unsigned char orginal_value = 0; unsigned char id_register_value = 0; // int i; id_register_value = 0x0f & int_stat_value; dev_info(&client->dev, "muic: %s, muic_retain_mode:%d, Int_Status:%d, INT_STATUS:0x%2x\n", __func__,muic_retain_mode, Int_Status, int_stat_value); if(int_stat_value & VBUS) {// VBUS = High dev_info(&client->dev, "muic: %s: VBUS is High....\n", __func__); if(muic_process_retention_mode(client)) return 0; if(Second_Int == tsu5611_process_reset_muic(client)) return 0; if( (int_stat_value & CHGDET) || (charger_value & CHPORT)) { dev_info(&client->dev, "muic: Charger detection....\n"); muic_i2c_write_byte(client, CONTROL_2, 0x02); mdelay(250); // if charger type then waiting 250ms muic_i2c_read_byte(client, STATUS, &charger_value); // 06H register read muic_i2c_read_byte(client, INT_STATUS1, &stat_value); dev_info(&client->dev, "muic: STATUS register:0x%x, INT_STATUS1 register:0x%x\n", charger_value, stat_value); muic_set_charger_mode(client, charger_value); // Int_Status = First_Int; }else if((id_register_value == IDNO_0010) // 56k + VBUS || (id_register_value == IDNO_1010) // 910k + VBUS || (id_register_value == IDNO_1001)) // 620k + VBUS { muic_set_mode(MUIC_CP_USB); }else if(id_register_value == IDNO_0100){ muic_set_mode(MUIC_CP_UART); }else if(IDNO_0000 ==id_register_value){ muic_set_mode(MUIC_MHL); #if 0 }else if(0){ muic_set_mode(MUIC_AP_UART); #endif }else{ muic_set_mode(MUIC_AP_USB); #if 0 }else{
int muic_set_device_none_detect(struct i2c_client *client,unsigned char int_stat_value) { // s32 loop = 0; unsigned char charger_value = 0; // unsigned char stat_value = 0; // unsigned char Accessory_value = 0; // unsigned char orginal_value = 0; unsigned char id_register_value = 0; // int i; id_register_value = 0x0f & int_stat_value; dev_info(&client->dev, "muic: %s, muic_retain_mode:%d, Int_Status:%d, INT_STATUS:0x%2x\n", __func__,muic_retain_mode, Int_Status, int_stat_value); if(int_stat_value & VBUS) {// VBUS = High dev_info(&client->dev, "muic: %s: VBUS is High.... id_register_value:%d\n", __func__,id_register_value); if(muic_process_retention_mode(client)) return 0; //if(Second_Int == max14526_process_reset_muic(client)) //return 0; if(id_register_value == IDNO_0010 /*56k + VBUS*/) { muic_set_mode(MUIC_CP_USB); } else if(id_register_value == IDNO_1010 /*910k + VBUS*/) { muic_set_mode(MUIC_CP_USB); } else if(id_register_value == IDNO_1001 /*620k + VBUS*/) { muic_set_mode(MUIC_CP_USB); } else if(id_register_value == IDNO_0100)/*130k + VBUS*/ { muic_set_mode(MUIC_CP_UART); } #if defined(CONFIG_MHL) else if(id_register_value==IDNO_0000) { muic_set_mode(MUIC_MHL); } #endif else if(id_register_value == IDNO_0101)/*180k + VBUS LG proprietary TA Detected*/ { //muic_set_mode(MUIC_LG_TA); muic_set_mode(MUIC_AP_USB);//lg usb calble\C0\C7 int_stat_value =0x15 \B7\CE \B5\BF\C0۵Ǿ\EE, \C0Ϲ\DD usb cable\B7\CE \BC\F6\C1\A4 \C7\D4. } else// if(charger_value & CHPORT) { dev_info(&client->dev, "muic: Charger detection....\n"); muic_i2c_write_byte(client,SW_CONTROL, COMP2_TO_HZ | COMN1_TO_C1COMP); //muic_mdelay(2);//mdelay(250); // if charger type then waiting 250ms //muic_i2c_read_byte(client, INT_STAT, &stat_value); muic_i2c_read_byte(client,STATUS, &charger_value); dev_info(&client->dev, "muic: charger_value :0x%x\n",charger_value); //muic_set_charger_mode(client, charger_value); //else if( (stat_value & CHGDET)&&((id_register_value & IDNO) == IDNO_1011))//stat_value==0x9B \C0Ϲ\DD \C3\E6\C0\FC\B1\E2 #ifdef CONFIG_FORCE_FAST_CHARGE if((int_stat_value & CHGDET) || (force_fast_charge != 0)) { muic_i2c_write_byte(client,SW_CONTROL, COMP2_TO_HZ | COMN1_TO_HZ); muic_set_mode(MUIC_LG_TA); } #else if(int_stat_value & CHGDET) { muic_i2c_write_byte(client,SW_CONTROL, COMP2_TO_HZ | COMN1_TO_HZ); muic_set_mode(MUIC_LG_TA); } #endif else if (charger_value & DCPORT) { /* Not used actually. Special TA for North America.*/ muic_i2c_write_byte(client,SW_CONTROL, COMP2_TO_HZ | COMN1_TO_HZ); muic_set_mode(MUIC_NA_TA); } else if (charger_value & CHPORT) { //muic_i2c_write_byte(client,SW_CONTROL, COMP2_TO_HZ | COMN1_TO_HZ); muic_set_mode(MUIC_AP_USB); } else if (charger_value & C1COMP) {//MUIC_LG_TA , CHARGING_LG_TA muic_i2c_write_byte(client,SW_CONTROL, COMP2_TO_HZ | COMN1_TO_HZ); muic_set_mode(MUIC_LG_TA); //muic_path = MUIC_LG_TA; //charging_mode = CHARGING_LG_TA; } else //stat_value==0x1B \C0Ϲ\DD UBS\C4\C9\C0̺\ED { //set_max14526_ap_usb_mode(); muic_set_mode(MUIC_AP_USB); //muic_path = MUIC_AP_USB; //charging_mode = CHARGING_USB; } } } else { muic_set_mode(MUIC_NONE); } return 0; }