static void usb_pmic_mod_exit(void) { PMIC_STATUS rs; pmic_convity_set_mode(pmic_handle, RS232_1); pmic_convity_clear_callback(pmic_handle); if (pmic_handle != (PMIC_CONVITY_HANDLE) NULL) { rs = pmic_convity_close(pmic_handle); if (rs != PMIC_SUCCESS) { printk(KERN_ERR "pmic_convity_close() returned error %d", rs); } else { pmic_handle = (PMIC_CONVITY_HANDLE) NULL; } } }
void mxc_pmic_mod_exit(struct otg_instance *otg) { PMIC_STATUS rc; if (pmic_work_task) { otg_task_exit(pmic_work_task); pmic_work_task = NULL; } if (pmic_otg_task) { otg_task_exit(pmic_otg_task); pmic_otg_task = NULL; } //while (PENDING_WORK_ITEM(pmic_work_bh)) { // printk(KERN_ERR "%s: waiting for mc13783_work_bh\n", // __FUNCTION__); // schedule_timeout(10 * HZ); //} //while (PENDING_WORK_ITEM(pmic_otg_wq)) { // printk(KERN_ERR "%s: waiting for mc13783_otg_wq\n", // __FUNCTION__); // schedule_timeout(10 * HZ); //} pmic_convity_set_mode(pmic_handle, RS232_1); pmic_convity_usb_otg_set_config(pmic_handle, USB_PULL_OVERRIDE); pmic_convity_usb_otg_set_config(pmic_handle, USB_OTG_SE0CONN); pmic_convity_usb_otg_clear_config(pmic_handle, USB_USBCNTRL); pmic_convity_usb_otg_clear_config(pmic_handle, USB_PU); pmic_convity_usb_otg_clear_config(pmic_handle, USB_UDP_PD); pmic_convity_usb_otg_clear_config(pmic_handle, USB_UDM_PD); pmic_convity_clear_callback(pmic_handle); rc = pmic_convity_close(pmic_handle); if (rc != PMIC_SUCCESS) { pr_debug("pmic_convity_close() returned error %d", rc); } }