static int sunxi_musb_exit(struct musb *musb) { pr_debug("%s():\n", __func__); USBC_DisableDpDmPullUp(musb->mregs); USBC_DisableIdPullUp(musb->mregs); sunxi_usbc_vbus_disable(0); sunxi_usbc_disable(0); return sunxi_usbc_free_resources(0); }
/* ******************************************************************************* * sw_udc_bsp_exit * * Description: * void * * Parameters: * void * * Return value: * void * * note: * void * ******************************************************************************* */ __s32 sw_udc_bsp_exit(__u32 usbc_no, sw_udc_io_t *sw_udc_io) { USBC_DisableDpDmPullUp(sw_udc_io->usb_bsp_hdle); USBC_DisableIdPullUp(sw_udc_io->usb_bsp_hdle); USBC_ForceId(sw_udc_io->usb_bsp_hdle, USBC_ID_TYPE_DISABLE); USBC_ForceVbusValid(sw_udc_io->usb_bsp_hdle, USBC_VBUS_TYPE_DISABLE); USBC_close_otg(sw_udc_io->usb_bsp_hdle); sw_udc_io->usb_bsp_hdle = 0; // USBC_exit(&sw_udc_io->usbc); return 0; }