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;
		}
	}
}
예제 #2
0
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);
        }


}