void FSA9480_ProcessDevice(u8 dev1, u8 dev2, u8 attach) { DEBUG_FSA9480("[FSA9480] %s (dev1 : 0x%x, dev2 : 0x%x)\n", __func__, dev1, dev2); if(!attach && !chip_error && (mtp_mode_on == 1)) chip_error = 0xAE; if(dev1) { switch(dev1) { case FSA9480_DEV_TY1_AUD_TY1: DEBUG_FSA9480("Audio Type1 "); if(attach & FSA9480_INT1_ATTACH) DEBUG_FSA9480("FSA9480_DEV_TY1_AUD_TY1 --- ATTACH\n"); else DEBUG_FSA9480("FSA9480_DEV_TY1_AUD_TY1 --- DETACH\n"); break; case FSA9480_DEV_TY1_AUD_TY2: DEBUG_FSA9480("Audio Type2 "); break; case FSA9480_DEV_TY1_USB: DEBUG_FSA9480("USB attach or detach: %d\n",attach); if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY1_USB --- ATTACH\n"); MicroUSBStatus = 1; log_via_usb = log_usb_enable; #if 0 if(connectivity_switching_init_state) s3c_usb_cable(1); #endif usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; uUSB_check_finished = 1; // finished } else if(attach & FSA9480_INT1_DETACH) { MicroUSBStatus = 0; inaskonstatus = 0; chip_error = 0; #if 0 if(connectivity_switching_init_state) s3c_usb_cable(0); #endif UsbIndicator(0); askon_gadget_disconnect(); DEBUG_FSA9480("FSA9480_DEV_TY1_USB --- DETACH\n"); uUSB_check_finished = 0; // finished } break; case FSA9480_DEV_TY1_UART: DEBUG_FSA9480("UART\n"); break; case FSA9480_DEV_TY1_CAR_KIT: DEBUG_FSA9480("Carkit\n"); break; case FSA9480_DEV_TY1_USB_CHG: DEBUG_FSA9480("USB\n"); break; case FSA9480_DEV_TY1_DED_CHG: { if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("Dedicated Charger ATTACH\n"); uUSB_check_finished = 1; // finished //A9480_ChangePathToAudio(TRUE); } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("Dedicated Charger DETACH\n"); uUSB_check_finished = 0; // finished //A9480_ChangePathToAudio(FALSE); } } break; case FSA9480_DEV_TY1_USB_OTG: DEBUG_FSA9480("USB OTG\n"); break; default: DEBUG_FSA9480("Unknown device\n"); break; } } if(dev2) { switch(dev2) { case FSA9480_DEV_TY2_JIG_USB_ON: DEBUG_FSA9480("JIG USB ON attach or detach: %d",attach); if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_ON --- ATTACH\n"); MicroJigUSBOnStatus = 1; #if 0 if(connectivity_switching_init_state) s3c_usb_cable(1); #endif usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_ON --- DETACH\n"); chip_error = 0; MicroJigUSBOnStatus = 0; inaskonstatus = 0; #if 0 if(connectivity_switching_init_state) s3c_usb_cable(0); #endif UsbIndicator(0); askon_gadget_disconnect(); } break; case FSA9480_DEV_TY2_JIG_USB_OFF: if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_OFF --- ATTACH\n"); MicroJigUSBOffStatus = 1; #if 0 if(connectivity_switching_init_state) s3c_usb_cable(1); #endif usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_OFF --- DETACH\n"); chip_error = 0; MicroJigUSBOffStatus = 0; inaskonstatus = 0; #if 0 if(connectivity_switching_init_state) s3c_usb_cable(0); #endif UsbIndicator(0); askon_gadget_disconnect(); } DEBUG_FSA9480("JIG USB OFF \n"); break; case FSA9480_DEV_TY2_JIG_UART_ON: if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_ON --- ATTACH\n"); set_dock_state((int)CAR_DOCK_INSERTED); g_dock = CAR_DOCK_INSERTED; } else { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_ON --- DETACH\n"); set_dock_state((int)DOCK_REMOVED); g_dock = DOCK_REMOVED; } DEBUG_FSA9480("JIG UART ON\n"); break; case FSA9480_DEV_TY2_JIG_UART_OFF: if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_OFF --- ATTACH\n"); MicroJigUARTOffStatus = 1; uart_insert_switch_state(); } else { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_OFF --- DETACH\n"); MicroJigUARTOffStatus = 0; uart_remove_switch_state(); } DEBUG_FSA9480("JIT UART OFF\n"); break; case FSA9480_DEV_TY2_PDD: DEBUG_FSA9480("PPD \n"); break; case FSA9480_DEV_TY2_TTY: DEBUG_FSA9480("TTY\n"); break; case FSA9480_DEV_TY2_AV: DEBUG_FSA9480("AudioVideo\n"); if (attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("FSA9480_disable_spk\n"); set_dock_state((int)DOCK_REMOVED); g_dock = DOCK_REMOVED; } else { DEBUG_FSA9480("FSA9480_enable_spk\n"); set_dock_state((int)HOME_DOCK_INSERTED); FSA9480_Enable_SPK(1); g_dock = HOME_DOCK_INSERTED; } break; default: DEBUG_FSA9480("Unknown device\n"); break; } } if((attach == FSA9480_INT1_ATTACH) && (chip_error == 0xAE) && (mtp_mode_on == 1)) { ap_usb_power_on(1); chip_error = 0; } }
static void FSA9480_ProcessDevice(u8 dev1, u8 dev2, u8 attach) { DEBUG_FSA9480("[FSA9480] %s (dev1 : 0x%x, dev2 : 0x%x)\n", __func__, dev1, dev2); if(dev1) { switch(dev1) { case FSA9480_DEV_TY1_AUD_TY1: // DEBUG_FSA9480("Audio Type1 "); if(attach & FSA9480_INT1_ATTACH) DEBUG_FSA9480("FSA9480_DEV_TY1_AUD_TY1 --- ATTACH\n"); else DEBUG_FSA9480("FSA9480_DEV_TY1_AUD_TY1 --- DETACH\n"); break; case FSA9480_DEV_TY1_AUD_TY2: DEBUG_FSA9480("Audio Type2 "); break; case FSA9480_DEV_TY1_USB: // DEBUG_FSA9480("USB attach or detach: %d\n",attach); if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY1_USB --- ATTACH\n"); MicroUSBStatus = 1; usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; uUSB_check_finished = 1; // finished } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("FSA9480_DEV_TY1_USB --- DETACH\n"); MicroUSBStatus = 0; UsbIndicator(0); askon_gadget_disconnect(); uUSB_check_finished = 0; // finished } break; case FSA9480_DEV_TY1_UART: DEBUG_FSA9480("UART\n"); break; case FSA9480_DEV_TY1_CAR_KIT: DEBUG_FSA9480("Carkit\n"); break; case FSA9480_DEV_TY1_USB_CHG: DEBUG_FSA9480("USB\n"); break; case FSA9480_DEV_TY1_DED_CHG: { if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("Dedicated Charger ATTACH\n"); uUSB_check_finished = 1; // finished //A9480_ChangePathToAudio(TRUE); } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("Dedicated Charger DETACH\n"); uUSB_check_finished = 0; // finished //A9480_ChangePathToAudio(FALSE); } } break; case FSA9480_DEV_TY1_USB_OTG: DEBUG_FSA9480("USB OTG\n"); break; default: DEBUG_FSA9480("Unknown device\n"); break; } } if(dev2) { switch(dev2) { case FSA9480_DEV_TY2_JIG_USB_ON: // DEBUG_FSA9480("JIG USB ON attach or detach: %d\n",attach); if(HWREV >= 13) { // To support JIG_USB_ON (Above Rev0.7) if(maxim_lpm_chg_status()) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_ON --- ATTACH (VBUS)\n"); MicroJigUSBOnStatus = 1; usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; uUSB_check_finished = 1; // finished } else { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_ON --- DETACH (VBUS)\n"); MicroJigUSBOnStatus = 0; inaskonstatus = 0; UsbIndicator(0); askon_gadget_disconnect(); uUSB_check_finished = 0; // finished } } else { if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_ON --- ATTACH\n"); MicroJigUSBOnStatus = 1; usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_ON --- DETACH\n"); MicroJigUSBOnStatus = 0; inaskonstatus = 0; UsbIndicator(0); askon_gadget_disconnect(); } } break; case FSA9480_DEV_TY2_JIG_USB_OFF: // DEBUG_FSA9480("JIG USB OFF attach or detach: %d\n",attach); if(HWREV >= 13) { // To support JIG_USB_OFF (Above Rev0.7) if(maxim_lpm_chg_status()) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_OFF --- ATTACH (VBUS)\n"); MicroJigUSBOnStatus = 1; usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; uUSB_check_finished = 1; // finished } else { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_OFF --- DETACH (VBUS)\n"); MicroJigUSBOnStatus = 0; inaskonstatus = 0; UsbIndicator(0); askon_gadget_disconnect(); uUSB_check_finished = 0; // finished } } else { if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_OFF --- ATTACH\n"); MicroJigUSBOffStatus = 1; usb_switch_state(); if(!askonstatus) UsbIndicator(1); else inaskonstatus = 0; } else if(attach & FSA9480_INT1_DETACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_USB_OFF --- DETACH\n"); MicroJigUSBOffStatus = 0; inaskonstatus = 0; UsbIndicator(0); askon_gadget_disconnect(); } } break; case FSA9480_DEV_TY2_JIG_UART_ON: if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_ON --- ATTACH\n"); // car_vps_status_change(1); } else { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_ON --- DETACH\n"); // car_vps_status_change(0); } // DEBUG_FSA9480("JIG UART ON\n"); break; case FSA9480_DEV_TY2_JIG_UART_OFF: if(attach & FSA9480_INT1_ATTACH) { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_OFF --- ATTACH\n"); MicroJigUARTOffStatus = 1; uart_insert_switch_state(); } else { DEBUG_FSA9480("FSA9480_DEV_TY2_JIG_UART_OFF --- DETACH\n"); MicroJigUARTOffStatus = 0; uart_remove_switch_state(); } // DEBUG_FSA9480("JIT UART OFF\n"); break; case FSA9480_DEV_TY2_PDD: DEBUG_FSA9480("PPD \n"); break; case FSA9480_DEV_TY2_TTY: DEBUG_FSA9480("TTY\n"); break; case FSA9480_DEV_TY2_AV: // DEBUG_FSA9480("AudioVideo\n"); if(attach & FSA9480_INT1_ATTACH) DEBUG_FSA9480("FSA9480_DEV_TY2_AV --- ATTACH\n"); else DEBUG_FSA9480("FSA9480_DEV_TY2_AV --- DETACH\n"); break; default: DEBUG_FSA9480("Unknown device\n"); break; } } }